Skip to content
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

[from qiskit] Two small improvements for EstimationProblem #54

Open
ElePT opened this issue Aug 22, 2023 · 1 comment
Open

[from qiskit] Two small improvements for EstimationProblem #54

ElePT opened this issue Aug 22, 2023 · 1 comment

Comments

@ElePT
Copy link
Collaborator

ElePT commented Aug 22, 2023

What should we add?

Hello,
I would like to suggest two small improvements:

  • The EstimationProblem, when not explicitely given a Grover oracle, automatically produces one. Unfortunately, this standard oracle uses the multi-controlled NOT with 'noancillas' mode (lines 168 and 172), which is highly inefficient in terms of circuit depth (it scales as 2**n, where n is the number of qubits, while other implementations scale as n, at the expense of a higher width - refer to mcx). This behavior is very bad as it may strongly affect the performances in applications. I suggest we expose the mcx_mode in the EstimationProblem function, as currently done in GroverOperator. We shall also discuss which value should be the default for mcx_mode: 'noancillas' for backward compatibility?
  • The EstimationProblem has a parameter is_good_state, but the standard QAE is not able to handle it, for obvious reasons. This fact is very confusing. I think we should have a variable to keep trace whether is_good_state is not the default one, and AmplitudeEstimation should throw an exception if given an EstimationProblem with a user-defined is_good_state

I can contribute with the code, if you agree.

@ElePT
Copy link
Collaborator Author

ElePT commented Aug 22, 2023

Opened by @gabrieleagl
Original issue & discussion: Qiskit/qiskit#8721

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant