-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Description
What should we add?
Recently a novel efficient algorithm was proposed for preparation of uniform quantum superposition states, which was published in Quantum Information Processing journal. The algorithm tries to solve the problem of preparation of a uniform superposition state of the form
where
Below I have provided the implementation of this algorithm.
import numpy as np
from qiskit import QuantumCircuit , QuantumRegister
""" Input: A positive integer M with 2 < M < 2^n, M not equal to 2^r for any natural number r.
Output: A quantum circuit that creates the uniform superposition state:
$\frac{1}{\sqrt{M}} \sum_{j=0}^{M-1} \ket{j} $. Number of qubits: Using n = np.ceil(np.log2(M)), creates the uniform superposition state with the least number of qubits.
"""
def uniform_superposition(M, n):
N = [int(x) for x in list(np.binary_repr(M))][::-1]
k = len(N)
L = [index for (index ,item) in enumerate(N) if item ==1] #Locations of '1's
qreg = QuantumRegister(n, 'q')
quantum_circuit = QuantumCircuit(qreg)
quantum_circuit.x(qreg[L[1:k]])
Mcurrent = 2**(L[0])
theta = -2*np.arccos(np.sqrt(Mcurrent/M))
if L[0]>0: #if M is even
quantum_circuit.h(qreg[0:L[0]])
quantum_circuit.ry(theta , qreg[L[1]])
quantum_circuit.ch(qreg[L[1]], qreg[L[0]:L[1]], ctrl_state='0')
for m in range(1,len(L) -1):
theta = -2*np.arccos(np.sqrt (2**L[m]/ (M- Mcurrent)))
quantum_circuit.cry(theta , qreg[L[m]], qreg[L[m+1]], ctrl_state='0')
quantum_circuit.ch(qreg[L[m+1]], qreg[L[m]:L[m+1]], ctrl_state='0')
Mcurrent = Mcurrent + 2**(L[m])
return quantum_circuit
If there's interest, it could be added to the circuit library, since it already some state preparation logic example.
The research paper used for creating this algorithm.
-- [An efficient quantum algorithm for preparation of uniform quantum superposition states][1]
[1]: Shukla, A., Vedula, P. An efficient quantum algorithm for preparation of uniform quantum superposition states. Quantum Inf Process 23, 38 (2024). https://doi.org/10.1007/s11128-024-04258-4