In quantum computing, the quantum phase estimation algorithm is a quantum algorithm to estimate the phase corresponding to an eigenvalue of a given unitary operator. Because the eigenvalues of a unitary operator always have unit modulus, they are characterized by their phase, and therefore the algorithm can be equivalently described as retrieving either the phase or the eigenvalue itself. The algorithm was initially introduced by Alexei Kitaev in 1995. Phase estimation is frequently used as a subroutine in other quantum algorithms, such as Shor's algorithm, the quantum algorithm for linear systems of equations, and the quantum counting algorithm.
Overview of the algorithm The algorithm operates on two sets of qubits, referred to in this context as registers. The two registers contain n {\displaystyle n} and m {\displaystyle m} qubits, respectively. Let U {\displaystyle U} be a unitary operator acting on the m {\displaystyle m} -qubit register. The eigenvalues of a unitary operator have unit modulus, and are therefore characterized by their phase. Thus if | ψ ⟩ {\displaystyle |\psi \rangle } is an eigenvector of U {\displaystyle U} , then U | ψ ⟩ = e 2 π i θ | ψ ⟩ {\displaystyle U|\psi \rangle =e^{2\pi i\theta }\left|\psi \right\rangle } for some θ ∈ R {\displaystyle \theta \in \mathbb {R} } . Due to the periodicity of the complex exponential, we can always assume 0 ≤ θ < 1 {\displaystyle 0\leq \theta <1} . The goal is producing a good approximation for θ {\displaystyle \theta } with a small number of gates and a high probability of success. The quantum phase estimation algorithm achieves this assuming oracular access to U {\displaystyle U} , and having | ψ ⟩ {\displaystyle |\psi \rangle } available as a quantum state. This means that when discussing the efficiency of the algorithm we only worry about the number of times U {\displaystyle U} needs to be used, but not about the cost of implementing U {\displaystyle U} itself. More precisely, the algorithm returns with high probability an approximation for θ {\displaystyle \theta } , within additive error ε {\displaystyle \varepsilon } , using n = O ( log ( 1 / ε ) ) {\displaystyle n=O(\log(1/\varepsilon ))} qubits in the first register, and O ( 1 / ε ) {\displaystyle O(1/\varepsilon )} controlled-U operations. Furthermore, we can improve the success probability to 1 − Δ {\displaystyle 1-\Delta } for any Δ > 0 {\displaystyle \Delta >0} by using a total of O ( log ( 1 / Δ ) / ε ) {\displaystyle O(\log(1/\Delta )/\varepsilon )} uses of controlled-U, and this is optimal.
Detailed description of the algorithm
State preparation The initial state of the system is:
| Ψ 0 ⟩ = | 0 ⟩ ⊗ n | ψ ⟩ , {\displaystyle |\Psi _{0}\rangle =|0\rangle ^{\otimes n}|\psi \rangle ,}
… excerpt ends here. Continue reading the full article.

