141 lines
6.5 KiB
Plaintext
141 lines
6.5 KiB
Plaintext
---
|
||
title: MaximumLikelihoodAmplitudeEstimation
|
||
description: API reference for qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation
|
||
---
|
||
|
||
# MaximumLikelihoodAmplitudeEstimation
|
||
|
||
<Class id="qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.18/qiskit/algorithms/amplitude_estimators/mlae.py" signature="MaximumLikelihoodAmplitudeEstimation(evaluation_schedule, minimizer=None, quantum_instance=None)" modifiers="class">
|
||
Bases: `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).
|
||
|
||
**Parameters**
|
||
|
||
* **evaluation\_schedule** (`Union`\[`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** (`Optional`\[`Callable`\[\[`Callable`\[\[`float`], `float`], `List`\[`Tuple`\[`float`, `float`]]], `float`]]) – 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** (`Union`\[`Backend`, `BaseBackend`, `QuantumInstance`, `None`]) – Quantum Instance or Backend
|
||
|
||
**Raises**
|
||
|
||
**ValueError** – If the number of oracle circuits is smaller than 1.
|
||
|
||
## Methods
|
||
|
||
### compute\_confidence\_interval
|
||
|
||
<Function id="qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation.compute_confidence_interval" signature="MaximumLikelihoodAmplitudeEstimation.compute_confidence_interval(result, alpha, kind='fisher', apply_post_processing=False)" modifiers="static">
|
||
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.
|
||
|
||
**Return type**
|
||
|
||
`Tuple`\[`float`, `float`]
|
||
|
||
**Returns**
|
||
|
||
The specified confidence interval.
|
||
|
||
**Raises**
|
||
|
||
* [**AlgorithmError**](qiskit.algorithms.AlgorithmError "qiskit.algorithms.AlgorithmError") – If run() hasn’t been called yet.
|
||
* **NotImplementedError** – If the method kind is not supported.
|
||
</Function>
|
||
|
||
### compute\_mle
|
||
|
||
<Function id="qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation.compute_mle" signature="MaximumLikelihoodAmplitudeEstimation.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** (`Union`\[`List`\[`Dict`\[`str`, `int`]], `List`\[`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** (`Optional`\[`int`]) – The number of state qubits, required for statevector simulations.
|
||
* **return\_counts** (`bool`) – If True, returns the good counts.
|
||
|
||
**Return type**
|
||
|
||
`Union`\[`float`, `Tuple`\[`float`, `List`\[`float`]]]
|
||
|
||
**Returns**
|
||
|
||
The MLE for the provided result object.
|
||
</Function>
|
||
|
||
### construct\_circuits
|
||
|
||
<Function id="qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation.construct_circuits" signature="MaximumLikelihoodAmplitudeEstimation.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.
|
||
|
||
**Return type**
|
||
|
||
`List`\[`QuantumCircuit`]
|
||
|
||
**Returns**
|
||
|
||
A list with the QuantumCircuit objects for the algorithm.
|
||
</Function>
|
||
|
||
### estimate
|
||
|
||
<Function id="qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation.estimate" signature="MaximumLikelihoodAmplitudeEstimation.estimate(estimation_problem)">
|
||
Run the amplitude estimation algorithm.
|
||
|
||
**Parameters**
|
||
|
||
**estimation\_problem** (`EstimationProblem`) – An `EstimationProblem` containing all problem-relevant information such as the state preparation and the objective qubits.
|
||
|
||
**Return type**
|
||
|
||
`MaximumLikelihoodAmplitudeEstimationResult`
|
||
</Function>
|
||
|
||
## Attributes
|
||
|
||
### quantum\_instance
|
||
|
||
<Attribute id="qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation.quantum_instance">
|
||
Get the quantum instance.
|
||
|
||
**Return type**
|
||
|
||
`Optional`\[`QuantumInstance`]
|
||
|
||
**Returns**
|
||
|
||
The quantum instance used to run this algorithm.
|
||
</Attribute>
|
||
</Class>
|
||
|