Skip to main contentIBM Quantum Documentation Mirror

qiskit.circuit.library.phase_estimation

qiskit.circuit.library.phase_estimation(num_evaluation_qubits, unitary, name='QPE')

GitHub

Phase Estimation circuit.

In the Quantum Phase Estimation (QPE) algorithm [1, 2, 3], the Phase Estimation circuit is used to estimate the phase ϕ\phi of an eigenvalue e2πiϕe^{2\pi i\phi} of a unitary operator UU, provided with the corresponding eigenstate ψ|\psi\rangle. That is

Uψ=e2πiϕψU|\psi\rangle = e^{2\pi i\phi} |\psi\rangle

This estimation (and thereby this circuit) is a central routine to several well-known algorithms, such as Shor’s algorithm or Quantum Amplitude Estimation.

Parameters

  • num_evaluation_qubits (int) – The number of evaluation qubits.
  • unitary (QuantumCircuit |Gate) – The unitary operation UU which will be repeated and controlled. This can either be a QuantumCircuit or a Gate. Passing gates can often be more performant, as it allows calling optimized control and power subroutines.
  • name (str) – The name of the output circuit.

Return type

QuantumCircuit

Reference Circuit:

from qiskit.circuit.library import phase_estimation, PauliEvolutionGate
from qiskit.quantum_info import SparsePauliOp
 
hamiltonian = SparsePauliOp(["ZZ", "IX", "XI"])
evo = PauliEvolutionGate(hamiltonian, time=0.1)  # implements exp(-itH)
 
circuit = phase_estimation(3, evo)  # QPE for the evolution operator
circuit.draw("mpl")
A phase estimation circuit.

References:

[1] Kitaev, A. Y. (1995). Quantum measurements and the Abelian Stabilizer Problem. 1–22. quant-ph/9511026

[2] Michael A. Nielsen and Isaac L. Chuang. 2011. Quantum Computation and Quantum Information: 10th Anniversary Edition (10th ed.). Cambridge University Press, New York, NY, USA.

[3] Qiskit textbook