---
title: MaximumLikelihoodAmplitudeEstimation (v0.46)
description: API reference for qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation in qiskit v0.46
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/0.46/qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation
---

# MaximumLikelihoodAmplitudeEstimation

*class* `qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation(evaluation_schedule, minimizer=None, quantum_instance=None, sampler=None)`

[GitHub](https://github.com/qiskit/qiskit/tree/stable/0.46/qiskit/algorithms/amplitude_estimators/mlae.py)

Bases: [`AmplitudeEstimator`](/docs/api/qiskit/0.46/qiskit.algorithms.AmplitudeEstimator "qiskit.algorithms.amplitude_estimators.amplitude_estimator.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](https://arxiv.org/abs/1904.10246).

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

Quantum Amplitude Amplification and Estimation. [arXiv:quant-ph/0005055](http://arxiv.org/abs/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](https://qisk.it/algo_migration) for a migration guide.

**Parameters**

- **evaluation\_schedule** ([*list*](https://docs.python.org/3/library/stdtypes.html#list)*\[*[*int*](https://docs.python.org/3/library/functions.html#int)*] |* [*int*](https://docs.python.org/3/library/functions.html#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*](/docs/api/qiskit/0.46/qiskit.utils.QuantumInstance "qiskit.utils.QuantumInstance")  *|*[*Backend*](/docs/api/qiskit/0.46/qiskit.providers.Backend "qiskit.providers.Backend") *| None*) – Deprecated: Quantum Instance or Backend
- **sampler** ([*BaseSampler*](/docs/api/qiskit/0.46/qiskit.primitives.BaseSampler "qiskit.primitives.BaseSampler") *| None*) – A sampler primitive to evaluate the circuits.

**Raises**

[**ValueError**](https://docs.python.org/3/library/exceptions.html#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](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*](/docs/api/qiskit/0.46/qiskit.algorithms.MaximumLikelihoodAmplitudeEstimationResult "qiskit.algorithms.amplitude_estimators.mlae.MaximumLikelihoodAmplitudeEstimationResult")) – A maximum likelihood amplitude estimation result.
- **alpha** ([*float*](https://docs.python.org/3/library/functions.html#float)) – The confidence level.
- **kind** ([*str*](https://docs.python.org/3/library/stdtypes.html#str)) – The method to compute the confidence interval. Defaults to ‘fisher’, which computes the theoretical Fisher information.
- **apply\_post\_processing** ([*bool*](https://docs.python.org/3/library/functions.html#bool)) – If True, apply post-processing to the confidence interval.

**Returns**

The specified confidence interval.

**Raises**

- [**AlgorithmError**](/docs/api/qiskit/0.46/algorithms#qiskit.algorithms.AlgorithmError "qiskit.algorithms.AlgorithmError") – If run() hasn’t been called yet.
- [**NotImplementedError**](https://docs.python.org/3/library/exceptions.html#NotImplementedError) – If the method kind is not supported.

**Return type**

[tuple](https://docs.python.org/3/library/stdtypes.html#tuple)\[[float](https://docs.python.org/3/library/functions.html#float), [float](https://docs.python.org/3/library/functions.html#float)]

### 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*](https://docs.python.org/3/library/stdtypes.html#list)*\[*[*dict*](https://docs.python.org/3/library/stdtypes.html#dict)*\[*[*str*](https://docs.python.org/3/library/stdtypes.html#str)*,* [*int*](https://docs.python.org/3/library/functions.html#int)*] | np.ndarray]*) – A list of circuit outcomes. Can be counts or statevectors.
- **estimation\_problem** ([*EstimationProblem*](/docs/api/qiskit/0.46/qiskit.algorithms.EstimationProblem "qiskit.algorithms.EstimationProblem")) – The estimation problem containing the evaluation schedule and the number of likelihood function evaluations used to find the minimum.
- **num\_state\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int) *| None*) – The number of state qubits, required for statevector simulations.
- **return\_counts** ([*bool*](https://docs.python.org/3/library/functions.html#bool)) – If True, returns the good counts.

**Returns**

The MLE for the provided result object.

**Return type**

[float](https://docs.python.org/3/library/functions.html#float) | [tuple](https://docs.python.org/3/library/stdtypes.html#tuple)\[[float](https://docs.python.org/3/library/functions.html#float), [list](https://docs.python.org/3/library/stdtypes.html#list)\[[float](https://docs.python.org/3/library/functions.html#float)]]

### construct\_circuits

`construct_circuits(estimation_problem, measurement=False)`

Construct the Amplitude Estimation w/o QPE quantum circuits.

**Parameters**

- **estimation\_problem** ([*EstimationProblem*](/docs/api/qiskit/0.46/qiskit.algorithms.EstimationProblem "qiskit.algorithms.amplitude_estimators.estimation_problem.EstimationProblem")) – The estimation problem for which to construct the QAE circuit.
- **measurement** ([*bool*](https://docs.python.org/3/library/functions.html#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**

[list](https://docs.python.org/3/library/stdtypes.html#list)\[[qiskit.circuit.quantumcircuit.QuantumCircuit](/docs/api/qiskit/0.46/qiskit.circuit.QuantumCircuit "qiskit.circuit.quantumcircuit.QuantumCircuit")]

### estimate

`estimate(estimation_problem)`

Run the amplitude estimation algorithm on provided estimation problem.

**Parameters**

**estimation\_problem** ([*EstimationProblem*](/docs/api/qiskit/0.46/qiskit.algorithms.EstimationProblem "qiskit.algorithms.amplitude_estimators.estimation_problem.EstimationProblem")) – The estimation problem.

**Returns**

An amplitude estimation results object.

**Raises**

- [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError) – A quantum instance or Sampler must be provided.
- [**AlgorithmError**](/docs/api/qiskit/0.46/algorithms#qiskit.algorithms.AlgorithmError "qiskit.algorithms.AlgorithmError") – If state\_preparation is not set in estimation\_problem.
- [**AlgorithmError**](/docs/api/qiskit/0.46/algorithms#qiskit.algorithms.AlgorithmError "qiskit.algorithms.AlgorithmError") – Sampler job run error

**Return type**

[*MaximumLikelihoodAmplitudeEstimationResult*](/docs/api/qiskit/0.46/qiskit.algorithms.MaximumLikelihoodAmplitudeEstimationResult "qiskit.algorithms.amplitude_estimators.mlae.MaximumLikelihoodAmplitudeEstimationResult")
