-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Inclusion of the new efficient algorithm for preparing uniform quantum superposition states. #11735
Comments
Should I close the issue @woodsp-ibm , because it does not seem people are interested unfortunately. |
@Hirmay Is this something you would want to contribute an implementation is it's wanted? @jakelishman @mtreinish I had suggested the author create this as a feature request here - they had done so originally in qiskit algorithms but to me this looked more fundamental something perhaps that circuit library could have, analogous to the StatePreparation there. Do you think this is something that would be of interest here, assuming an implementation was consistent with other library circuits, rather than perhaps just the function shown above. or should they just go ahead and close this off. |
Certainly, it would be interesting to contribute an implementation that aligns with other library circuits. However, having someone with experience in these matters join me could expedite the process. |
This is the kind of thing I'd usually think of Julien (@Cryoris) to supervise, but since he's on leave for the time being, I can try and do my best Julien impression. I think this equal-superpositions creation could have a sensible place in |
Hi @jakelishman, could you please advise on my next steps? Should I proceed with modifying the code to create a |
@Hirmay my suggestion, given its not a whole lot of code, and probably relatively quick to do something based on what you had done, would be to take a shot at it and create some code as suggested. Take a look at StatePreparation as a reference for how things are done like that. You can do a PR and mark it Draft, to indicate its not yet ready. Having concrete code to look at will enable someone to give more relevant feedback and it will help you understand what is there, and if not, it's likely to be something more specific that's easier to address. If it turns out fine it would need unit test(s) - you could already add some at this draft stage to show things working. And eventually it would need a release note - but that can come later once its more ready. Does that sound ok? |
Okay, @woodsp-ibm, sounds good! Thanks for your helpful suggestion! |
@jakelishman's impression is on point, thanks for opening the PR @Hirmay ! 🙂 |
Pleasure is all mine, @Cryoris! In the PR done under the guidance of Steve, I have incorporated all the changes that Jake suggested, but he is currently on a vacation. If you get time, can you please review the PR? Otherwise, I'll wait for Jake to return. |
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$M$ denotes the number of distinct states in the superposition state and $2 ≤ M ≤ 2^n$ . They also show that the superposition state can be efficiently prepared, using a deterministic approach, with a gate complexity and circuit depth of only $O(log_2 M)$ for all $M$ . This demonstrates an exponential reduction in gate complexity in comparison with other existing deterministic approaches (including qiskit's) in the literature for the general case of this problem. Another advantage of the proposed approach is that it requires only $n =\lceil log 2 M \rceil$ qubits. Furthermore, neither ancilla qubits nor any quantum gates with multiple controls are needed in their approach for creating the uniform superposition state $|\psi>$ .
Below I have provided the implementation of this algorithm.
If there's interest, it could be added to the circuit library, since it already some state preparation logic example.
The text was updated successfully, but these errors were encountered: