MaximumLikelihoodAmplitudeEstimation¶

class
MaximumLikelihoodAmplitudeEstimation
(num_oracle_circuits, state_preparation=None, grover_operator=None, objective_qubits=None, post_processing=None, a_factory=None, q_factory=None, i_objective=None, likelihood_evals=None, quantum_instance=None)[소스]¶ 기반 클래스:
qiskit.aqua.algorithms.amplitude_estimators.ae_algorithm.AmplitudeEstimationAlgorithm
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:quantph/0005055.
 매개변수
num_oracle_circuits (
int
) – The number of circuits applying different powers of the Grover oracle Q. The (num_oracle_circuits + 1) executed circuits will be [id, Q^2^0, …, Q^2^{num_oracle_circuits1}] A 0>, where A is the problem unitary encoded in the argument a_factory. Has a minimum value of 1.state_preparation (
Union
[QuantumCircuit
,CircuitFactory
,None
]) – A circuit preparing the input state, referred to as \(\mathcal{A}\).grover_operator (
Union
[QuantumCircuit
,CircuitFactory
,None
]) – The Grover operator \(\mathcal{Q}\) used as unitary in the phase estimation circuit.objective_qubits (
Optional
[List
[int
]]) – A list of qubit indices. A measurement outcome is classified as ‘good’ state if all objective qubits are in state \(1\rangle\), otherwise it is classified as ‘bad’.post_processing (
Optional
[Callable
[[float
],float
]]) – A mapping applied to the estimate of \(0 \leq a \leq 1\), usually used to map the estimate to a target interval.a_factory (
Optional
[CircuitFactory
]) – The CircuitFactory subclass object representing the problem unitary.q_factory (
Optional
[CircuitFactory
]) – The CircuitFactory subclass object representing. an amplitude estimation sample (based on a_factory)i_objective (
Optional
[int
]) – The index of the objective qubit, i.e. the qubit marking ‘good’ solutions with the state 1> and ‘bad’ solutions with the state 0>likelihood_evals (
Optional
[int
]) – The number of gridpoints for the maximum search of the likelihood functionquantum_instance (
Union
[QuantumInstance
,Backend
,BaseBackend
,None
]) – Quantum Instance or Backend
Methods
Compute the alpha confidence interval using the method kind.
Construct the Amplitude Estimation w/o QPE quantum circuits.
Determine whether a given state is a good state.
Post processing of the raw amplitude estimation output \(0 \leq a \leq 1\).
Execute the algorithm with selected backend.
Sets backend with configuration.
Attributes

a_factory
¶ Get the A operator encoding the amplitude a that’s approximated, i.e.
A 0>_n 0> = sqrt{1  a} psi_0>_n 0> + sqrt{a} psi_1>_n 1>
see the original Brassard paper (https://arxiv.org/abs/quantph/0005055) for more detail.
 반환값
the A operator as CircuitFactory
 반환 형식

backend
¶ Returns backend.
 반환 형식
Union
[Backend
,BaseBackend
]

grover_operator
¶ Get the \(\mathcal{Q}\) operator, or Grover operator.
If the Grover operator is not set, we try to build it from the \(\mathcal{A}\) operator and objective_qubits. This only works if objective_qubits is a list of integers.
 반환 형식
Optional
[QuantumCircuit
] 반환값
The Grover operator, or None if neither the Grover operator nor the \(\mathcal{A}\) operator is set.

i_objective
¶ Get the index of the objective qubit. The objective qubit marks the psi_0> state (called ‘bad states’ in https://arxiv.org/abs/quantph/0005055) with 0> and psi_1> (‘good’ states) with 1>. If the A operator performs the mapping
A 0>_n 0> = sqrt{1  a} psi_0>_n 0> + sqrt{a} psi_1>_n 1>
then, the objective qubit is the last one (which is either 0> or 1>).
If the objective qubit (i_objective) is not set, we check if the Q operator (q_factory) is set and return the index specified there. If the q_factory is not defined, the index equals the number of qubits of the A operator (a_factory) minus one. If also the a_factory is not set, return None.
 반환값
the index of the objective qubit
 반환 형식
int

objective_qubits
¶ Get the criterion for a measurement outcome to be in a ‘good’ state.
 반환 형식
Optional
[List
[int
]] 반환값
The criterion as list of qubit indices.

q_factory
¶ Get the Q operator, or Groveroperator for the Amplitude Estimation algorithm, i.e.
\[\mathcal{Q} = \mathcal{A} \mathcal{S}_0 \mathcal{A}^\dagger \mathcal{S}_f,\]where \(\mathcal{S}_0\) reflects about the 0>_n state and S_psi0 reflects about \(\Psi_0\rangle_n\). See https://arxiv.org/abs/quantph/0005055 for more detail.
If the Q operator is not set, we try to build it from the A operator. If neither the A operator is set, None is returned.
 반환값
returns the current Q factory of the algorithm
 반환 형식
QFactory

quantum_instance
¶ Returns quantum instance.
 반환 형식
Optional
[QuantumInstance
]

random
¶ Return a numpy random.

state_preparation
¶ Get the \(\mathcal{A}\) operator encoding the amplitude \(a\).
 반환 형식
QuantumCircuit
 반환값
The \(\mathcal{A}\) operator as QuantumCircuit.