ae_classical_qpe

This module contains the CQPEAE class. Given a quantum oracle operator, this class estimates the amplitude of a given target state using the classical QPE algorithm (with QFT). This module uses the QQuantLib.PE.classical_qpe one.

The following references were used:

Brassard, G., Hoyer, P., Mosca, M., & Tapp, A. (2000). Quantum amplitude amplification and estimation. AMS Contemporary Mathematics Series, 305. https://arxiv.org/abs/quant-ph/0005055v1

NEASQC deliverable: D5.1: Review of state-of-the-art for Pricing and Computation of VaR

Author: Gonzalo Ferro Costas & Alberto Manzano Herrero

class QQuantLib.AE.ae_classical_qpe.CQPEAE(oracle: qat.lang.AQASM.QRoutine, target: list, index: list, **kwargs)

Class for doing Amplitude Estimation (AE) using classical Quantum Amplitude Estimation (with QFT) algorithm

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 CQPEAE algorithm: Implemented keys:

  • qpu (kwargs, QLM solver) – solver for simulating the resulting circuits

  • 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