Skip to main contentIBM Quantum Documentation Mirror

PhaseEstimation

class qiskit.circuit.library.PhaseEstimation(num_evaluation_qubits, unitary, iqft=None, name='QPE')

GitHub

Bases: QuantumCircuit

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.

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

Deprecated since version 2.1

The class qiskit.circuit.library.phase_estimation.PhaseEstimation is deprecated as of Qiskit 2.1. It will be removed in Qiskit 3.0. Use qiskit.circuit.library.phase_estimation instead.

Parameters

  • num_evaluation_qubits (int) – The number of evaluation qubits.
  • unitary (QuantumCircuit) – The unitary operation UU which will be repeated and controlled.
  • iqft (QuantumCircuit | None) – A inverse Quantum Fourier Transform, per default the inverse of QFT is used. Note that the QFT should not include the usual swaps!
  • name (str) – The name of the circuit.
Note

The inverse QFT should not include a swap of the qubit order.

Reference Circuit:

Diagram illustrating the previously described circuit.

Attributes

name

Type: str

A human-readable name for the circuit.

Example

from qiskit import QuantumCircuit
 
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit