ae_iterative_quantum_pe
This module contains necessary functions and classes to implement amplitude estimation algorithm using Iterative Quantum Phase Estimation (IQPE). The implementation is based on following paper:
Dobšíček, Miroslav and Johansson, Göran and Shumeiko, Vitaly and Wendin, Göran. Arbitrary accuracy iterative quantum phase estimation algorithm using a single ancillary qubit: A two-qubit benchmark. Physical Review A 3(76), 2007. https://arxiv.org/abs/quant-ph/0610214*
Author: Gonzalo Ferro Costas & Alberto Manzano Herrero
- class QQuantLib.AE.ae_iterative_quantum_pe.IQPEAE(oracle: qat.lang.AQASM.QRoutine, target: list, index: list, **kwargs)
Class for using Iterative Quantum Phase Estimation (IQPE) class for doing Amplitude Estimation (AE)
- Parameters:
oracle (QLM gate) – QLM gate with the Oracle for implementing the Grover operator
target (list of ints) – python list with the target for the amplitude estimation
index (list of ints) – qubits which mark the register to do the amplitude estimation
kwars (dictionary) – dictionary that allows the configuration of the IQPEAE algorithm: Implemented keys:
qpu (kwargs, QLM solver) – solver for simulating the resulting circutis
shots (kwargs, int) – number of measurements
mcz_qlm (kwargs, bool) – for using or not QLM implementation of the multi controlled Z gate
- property index
creating index property
- property oracle
creating oracle property
- run()
run method for the class.
- Returns:
the estimation of a
- Return type:
result
Notes
\[a = \cos^2(\theta)\]Where \(\theta\) is:
\[\mathcal{Q}|\Psi\rangle = e^{2i\theta}|\Psi\rangle\]And \(\mathcal{Q}\) the Grover Operator
- property target
creating target property