# qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation¶

class MaximumLikelihoodAmplitudeEstimation(evaluation_schedule, minimizer=None, quantum_instance=None)[código fonte]

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.

Referências

[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.

Parâmetros
• 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

Levanta

ValueError – If the number of oracle circuits is smaller than 1.

__init__(evaluation_schedule, minimizer=None, quantum_instance=None)[código fonte]
Parâmetros
• 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

Levanta

ValueError – If the number of oracle circuits is smaller than 1.

Methods

 __init__(evaluation_schedule[, minimizer, …]) type evaluation_schedule Union[List[int], int] compute_confidence_interval(result, alpha[, …]) Compute the alpha confidence interval using the method kind. compute_mle(circuit_results, estimation_problem) Compute the MLE via a grid-search. construct_circuits(estimation_problem[, …]) Construct the Amplitude Estimation w/o QPE quantum circuits. estimate(estimation_problem) Run the amplitude estimation algorithm.

Attributes

 quantum_instance Get the quantum instance.
static compute_confidence_interval(result, alpha, kind='fisher', apply_post_processing=False)[código fonte]

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.

Parâmetros
• 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.

Tipo de retorno

Tuple[float, float]

Retorna

The specified confidence interval.

Levanta
• AlgorithmError – If run() hasn’t been called yet.

• NotImplementedError – If the method kind is not supported.

compute_mle(circuit_results, estimation_problem, num_state_qubits=None, return_counts=False)[código fonte]

Compute the MLE via a grid-search.

This is a stable approach if sufficient gridpoints are used.

Parâmetros
• 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.

Tipo de retorno

Union[float, Tuple[float, List[float]]]

Retorna

The MLE for the provided result object.

construct_circuits(estimation_problem, measurement=False)[código fonte]

Construct the Amplitude Estimation w/o QPE quantum circuits.

Parâmetros
• 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.

Tipo de retorno

List[QuantumCircuit]

Retorna

A list with the QuantumCircuit objects for the algorithm.

estimate(estimation_problem)[código fonte]

Run the amplitude estimation algorithm.

Parâmetros

estimation_problem (EstimationProblem) – An EstimationProblem containing all problem-relevant information such as the state preparation and the objective qubits.

Tipo de retorno

MaximumLikelihoodAmplitudeEstimationResult

property quantum_instance

Get the quantum instance.

Tipo de retorno

Optional[QuantumInstance]

Retorna

The quantum instance used to run this algorithm.