qiskit.circuit.library.phase_estimation
qiskit.circuit.library.phase_estimation(num_evaluation_qubits, unitary, name='QPE')
Phase Estimation circuit.
In the Quantum Phase Estimation (QPE) algorithm [1, 2, 3], the Phase Estimation circuit is used to estimate the phase of an eigenvalue of a unitary operator , provided with the corresponding eigenstate . That is
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 which will be repeated and controlled. This can either be a
QuantumCircuit
or aGate
. 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
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")

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