Skip to main content

View on GitHub

Open this notebook in GitHub to run it yourself
The quantum phase estimation (QPE) function estimates the phase of an eigenvector of a unitary function. More precisely, given a unitary function FF and an input containing a quantum variable with a state ∣ψ⟩|\psi\rangle such that F(∣ψ⟩)=e2πiν∣ψ⟩F(|\psi\rangle)=e^{2\pi i\nu}|\psi\rangle, the phase estimation function outputs an estimation of ν\nu as a fixed-point binary number. Phase estimation is frequently used as a subroutine in other quantum algorithms such as Shor’s algorithm and quantum algorithms for solving linear systems of equations (HHL algorithm). Theoretical details are in Ref. [1]. Function: qpe Arguments:
  • unitary: QCallable
  • The unitary operation for which the qpe estimation the eigenvalues
  • phase: QNum
  • The output of the qpe, holding the phase as a number in the range [0,1)[0, 1)
Function: qpe_flexible The function is suitable when one wants to specialize the way the power of a unitary is defined, other than using the naive power. For example it can be used to obtain the time evolution of hamiltonians or for Shor’s algorithm. Arguments:
  • unitary_with_power: QCallable[CInt]
  • Power of a unitary.
Accepts as argument the power of the unitary to apply.
  • phase: QNum

Examples

Example 1: QPE of a Function

This example shows how to perform a simple phase estimation:
  1. Initialize the state ∣3⟩|3\rangle over two qubits.
  2. Apply a phase estimation on the the controlled-RZ gate, represeneted by the unitary matrix:
(10000e−iλ2000010000eiλ2)\begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & e^{-i\frac{\lambda}{2}} & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & e^{i\frac{\lambda}{2}} \end{pmatrix} The expected phase variable should encode λ4π\frac{\lambda}{4\pi}, the phase of the eigenvalue of the ∣3⟩|3\rangle state. Choosing λ=π\lambda = \pi, the expected result is 14\frac{1}{4}, represented in binary by 01.
Show the actual results:
Output:
Output:

Example 2: Flexible QPE

The following examples will specifiy directly how to take powers in the QPE. The unitary function is suzuki_trotter, where the number of repetitions will be
  1. In the case of diagonal hamiltonian it be exact exponentiation of the hamiltoian.
Take the following matrix: (0000014000012000034)\begin{pmatrix} 0 & 0 & 0 & 0 \\ 0 & \tfrac{1}{4} & 0 & 0 \\ 0 & 0 & \tfrac{1}{2} & 0 \\ 0 & 0 & 0 & \tfrac{3}{4} \\ \end{pmatrix} Represented by the hamiltonian: H=−18Z0I1−14I0Z1+38I0I1H = -\frac{1}{8}Z_0I_1 - \frac{1}{4}I_0Z_1 + \frac{3}{8}I_0I_1
Show the actual results:
Output:
Output:

References

[1] A. Yu. Kitaev Barenco et al, Quantum Measurements and the Abelian Stabilizer Problem, (1995). https://doi.org/10.48550/arXiv.quant-ph/9511026