Skip to main contentIBM Quantum Documentation
You are viewing the API reference for an old version of Qiskit SDK. Switch to latest version

AmplitudeEstimation

AmplitudeEstimation(num_eval_qubits, phase_estimation_circuit=None, iqft=None, quantum_instance=None, sampler=None)

GitHub(opens in a new tab)

Bases: qiskit.algorithms.amplitude_estimators.amplitude_estimator.AmplitudeEstimator

The Quantum Phase Estimation-based Amplitude Estimation algorithm.

This class implements the original Quantum Amplitude Estimation (QAE) algorithm, introduced by [1]. This canonical version uses quantum phase estimation along with a set of mm additional evaluation qubits to find an estimate a~\tilde{a}, that is restricted to the grid

a~{sin2(πy/2m):y=0,...,2m1}\tilde{a} \in \{\sin^2(\pi y / 2^m) : y = 0, ..., 2^{m-1}\}

More evaluation qubits produce a finer sampling grid, therefore the accuracy of the algorithm increases with mm.

Using a maximum likelihood post processing, this grid constraint can be circumvented. This improved estimator is implemented as well, see [2] Appendix A for more detail.

References

[1]: Brassard, G., Hoyer, P., Mosca, M., & Tapp, A. (2000).

Quantum Amplitude Amplification and Estimation. arXiv:quant-ph/0005055(opens in a new tab).

[2]: Grinko, D., Gacon, J., Zoufal, C., & Woerner, S. (2019).

Iterative Quantum Amplitude Estimation. arXiv:1912.05559(opens in a new tab).

Parameters

  • num_eval_qubits (int) – The number of evaluation qubits.
  • phase_estimation_circuit (QuantumCircuit | None) – The phase estimation circuit used to run the algorithm. Defaults to the standard phase estimation circuit from the circuit library, qiskit.circuit.library.PhaseEstimation when None.
  • iqft (QuantumCircuit | None) – The inverse quantum Fourier transform component, defaults to using a standard implementation from qiskit.circuit.library.QFT when None.
  • quantum_instance (QuantumInstance |Backend | None) – Pending deprecation: The backend (or QuantumInstance) to execute the circuits on.
  • sampler (BaseSampler | None) – A sampler primitive to evaluate the circuits.

Raises

ValueError – If the number of evaluation qubits is smaller than 1.


Methods

compute_confidence_interval

static AmplitudeEstimation.compute_confidence_interval(result, alpha=0.05, kind='likelihood_ratio')

Compute the (1 - alpha) confidence interval.

Parameters

  • result – An amplitude estimation result for which to compute the confidence interval.
  • alpha – Confidence level: compute the (1 - alpha) confidence interval.
  • kind – The method to compute the confidence interval, can be ‘fisher’, ‘observed_fisher’ or ‘likelihood_ratio’ (default)

Returns

The (1 - alpha) confidence interval of the specified kind.

Raises

  • AquaError – If ‘mle’ is not in self._ret.keys() (i.e. run was not called yet).
  • NotImplementedError – If the confidence interval method kind is not implemented.

compute_mle

static AmplitudeEstimation.compute_mle(result, apply_post_processing=False)

Compute the Maximum Likelihood Estimator (MLE).

Parameters

  • result (AmplitudeEstimationResult) – An amplitude estimation result object.
  • apply_post_processing (bool) – If True, apply the post processing to the MLE before returning it.

Return type

float

Returns

The MLE for the provided result object.

construct_circuit

AmplitudeEstimation.construct_circuit(estimation_problem, measurement=False)

Construct the Amplitude Estimation quantum circuit.

Parameters

  • estimation_problem (EstimationProblem) – The estimation problem for which to construct the QAE circuit.
  • measurement (bool) – Boolean flag to indicate if measurements should be included in the circuit.

Return type

QuantumCircuit

Returns

The QuantumCircuit object for the constructed circuit.

estimate

AmplitudeEstimation.estimate(estimation_problem)

Run the amplitude estimation algorithm on provided estimation problem.

Parameters

estimation_problem (EstimationProblem) – The estimation problem.

Return type

AmplitudeEstimationResult

Returns

An amplitude estimation results object.

Raises

  • ValueError – If state_preparation or objective_qubits are not set in the estimation_problem.
  • ValueError – A quantum instance or sampler must be provided.
  • AlgorithmError – Sampler job run error.

evaluate_measurements

AmplitudeEstimation.evaluate_measurements(circuit_results, threshold=1e-06)

Evaluate the results from the circuit simulation.

Given the probabilities from statevector simulation of the QAE circuit, compute the probabilities that the measurements y/gridpoints a are the best estimate.

Parameters

  • circuit_results – The circuit result from the QAE circuit. Can be either a counts dict or a statevector or a quasi-probabilities dict.
  • threshold – Measurements with probabilities below the threshold are discarded.

Returns

Dictionaries containing the a gridpoints with respective probabilities and

y measurements with respective probabilities, in this order.


Attributes

quantum_instance

Pending deprecation; Get the quantum instance.

Return type

QuantumInstance | None

Returns

The quantum instance used to run this algorithm.

sampler

Get the sampler primitive.

Return type

BaseSampler | None

Returns

The sampler primitive to evaluate the circuits.

Was this page helpful?
Report a bug or request content on GitHub.