MaximumLikelihoodAmplitudeEstimation#

class qiskit.algorithms.MaximumLikelihoodAmplitudeEstimation(evaluation_schedule, minimizer=None, quantum_instance=None, sampler=None)[ソース]#

ベースクラス: 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.

参照

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

バージョン 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.

パラメータ:
  • 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.

例外:

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

Attributes

quantum_instance#

Deprecated. Get the quantum instance.

バージョン 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.

戻り値:

The quantum instance used to run this algorithm.

sampler#

Get the sampler primitive.

戻り値:

The sampler primitive to evaluate the circuits.

Methods

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.

パラメータ:
  • 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.

戻り値:

The specified confidence interval.

例外:
戻り値の型:

tuple[float, float]

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.

パラメータ:
  • 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.

戻り値:

The MLE for the provided result object.

戻り値の型:

float | tuple[float, list[float]]

construct_circuits(estimation_problem, measurement=False)[ソース]#

Construct the Amplitude Estimation w/o QPE quantum circuits.

パラメータ:
  • 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.

戻り値:

A list with the QuantumCircuit objects for the algorithm.

戻り値の型:

list[QuantumCircuit]

estimate(estimation_problem)[ソース]#

Run the amplitude estimation algorithm on provided estimation problem.

パラメータ:

estimation_problem (EstimationProblem) – The estimation problem.

戻り値:

An amplitude estimation results object.

例外:
戻り値の型:

MaximumLikelihoodAmplitudeEstimationResult