About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
MaximumLikelihoodAmplitudeEstimation
class qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation(evaluation_schedule, minimizer=None, quantum_instance=None, sampler=None)
Bases: AmplitudeEstimator
The Maximum Likelihood Amplitude Estimation algorithm.
This class implements the quantum amplitude estimation (QAE) algorithm without phase estimation, as introduced in [1]. In comparison to the original QAE algorithm [2], this implementation relies solely on different powers of the Grover operator and does not require additional evaluation qubits. Finally, the estimate is determined via a maximum likelihood estimation, which is why this class in named MaximumLikelihoodAmplitudeEstimation
.
References
[1]: Suzuki, Y., Uno, S., Raymond, R., Tanaka, T., Onodera, T., & Yamamoto, N. (2019).
Amplitude Estimation without Phase Estimation. arXiv:1904.10246.
[2]: Brassard, G., Hoyer, P., Mosca, M., & Tapp, A. (2000).
Quantum Amplitude Amplification and Estimation. arXiv:quant-ph/0005055.
Deprecated since version 0.24.0
qiskit.algorithms.amplitude_estimators.mlae.MaximumLikelihoodAmplitudeEstimation.__init__()
’s argument quantum_instance
is deprecated as of qiskit-terra 0.24.0. It will be removed no earlier than 3 months after the release date. Instead, use the sampler
argument. See https://qisk.it/algo_migration for a migration guide.
Parameters
- evaluation_schedule (list[int] | int) – If a list, the powers applied to the Grover operator. The list element must be non-negative. If a non-negative integer, an exponential schedule is used where the highest power is 2 to the integer minus 1: [id, Q^2^0, …, Q^2^(evaluation_schedule-1)].
- minimizer (MINIMIZER | None) – A minimizer used to find the minimum of the likelihood function. Defaults to a brute search where the number of evaluation points is determined according to
evaluation_schedule
. The minimizer takes a function as first argument and a list of (float, float) tuples (as bounds) as second argument and returns a single float which is the found minimum. - quantum_instance (QuantumInstance |Backend | None) – Deprecated: Quantum Instance or Backend
- sampler (BaseSampler | None) – A sampler primitive to evaluate the circuits.
Raises
ValueError – If the number of oracle circuits is smaller than 1.
Attributes
quantum_instance
Deprecated. Get the quantum instance.
Deprecated since version 0.24.0
The property qiskit.algorithms.amplitude_estimators.mlae.MaximumLikelihoodAmplitudeEstimation.quantum_instance
is deprecated as of qiskit-terra 0.24.0. It will be removed no earlier than 3 months after the release date. See https://qisk.it/algo_migration for a migration guide.
Returns
The quantum instance used to run this algorithm.
sampler
Get the sampler primitive.
Returns
The sampler primitive to evaluate the circuits.
Methods
compute_confidence_interval
static compute_confidence_interval(result, alpha, kind='fisher', apply_post_processing=False)
Compute the alpha confidence interval using the method kind.
The confidence level is (1 - alpha) and supported kinds are ‘fisher’, ‘likelihood_ratio’ and ‘observed_fisher’ with shorthand notations ‘fi’, ‘lr’ and ‘oi’, respectively.
Parameters
- result (MaximumLikelihoodAmplitudeEstimationResult) – A maximum likelihood amplitude estimation result.
- alpha (float) – The confidence level.
- kind (str) – The method to compute the confidence interval. Defaults to ‘fisher’, which computes the theoretical Fisher information.
- apply_post_processing (bool) – If True, apply post-processing to the confidence interval.
Returns
The specified confidence interval.
Raises
- AlgorithmError – If run() hasn’t been called yet.
- NotImplementedError – If the method kind is not supported.
Return type
compute_mle
compute_mle(circuit_results, estimation_problem, num_state_qubits=None, return_counts=False)
Compute the MLE via a grid-search.
This is a stable approach if sufficient gridpoints are used.
Parameters
- circuit_results (list[dict[str, int] | np.ndarray]) – A list of circuit outcomes. Can be counts or statevectors.
- estimation_problem (EstimationProblem) – The estimation problem containing the evaluation schedule and the number of likelihood function evaluations used to find the minimum.
- num_state_qubits (int | None) – The number of state qubits, required for statevector simulations.
- return_counts (bool) – If True, returns the good counts.
Returns
The MLE for the provided result object.
Return type
construct_circuits
construct_circuits(estimation_problem, measurement=False)
Construct the Amplitude Estimation w/o QPE quantum circuits.
Parameters
- estimation_problem (EstimationProblem) – The estimation problem for which to construct the QAE circuit.
- measurement (bool) – Boolean flag to indicate if measurement should be included in the circuits.
Returns
A list with the QuantumCircuit objects for the algorithm.
Return type
estimate
estimate(estimation_problem)
Run the amplitude estimation algorithm on provided estimation problem.
Parameters
estimation_problem (EstimationProblem) – The estimation problem.
Returns
An amplitude estimation results object.
Raises
- ValueError – A quantum instance or Sampler must be provided.
- AlgorithmError – If state_preparation is not set in estimation_problem.
- AlgorithmError – Sampler job run error
Return type
Was this page helpful?
Report a bug or request content on GitHub.