StandardAmplitudeAmplification function
Namespace: Microsoft.Quantum.AmplitudeAmplification
Package: Microsoft.Quantum.Standard
Standard Amplitude Amplification algorithm
function StandardAmplitudeAmplification (nIterations : Int, stateOracle : Microsoft.Quantum.Oracles.StateOracle, idxFlagQubit : Int) : (Qubit[] => Unit is Adj + Ctl)
Input
nIterations : Int
Number of iterations $n$ of amplitude amplification
stateOracle : StateOracle
Unitary oracle $A$ that prepares start state
idxFlagQubit : Int
Index to flag qubit
Output : Qubit[] => Unit is Adj + Ctl
An operation that implements the standard amplitude amplification quantum algorithm
Remarks
This is the standard amplitude amplification algorithm obtained by a choice of reflection phases computed by StandardReflectionPhases
Assuming that
\begin{align}
A\ket{0}_{f}\ket{0}_s= \lambda\ket{1}_f\ket{\text{target}}_s + \sqrt{1-|\lambda|^2}\ket{0}_f\cdots,
\end{align}
this operation prepares the state
\begin{align}
\operatorname{StandardAmplitudeAmplification}\ket{0}_{f}\ket{0}_s= \sin((2n+1)\sin^{-1}(\lambda))\ket{1}_f\ket{\text{target}}_s + \cdots\ket{0}_f
\end{align}
In most cases, flagQubit
and auxiliaryRegister
is initialized in the state $\ket{0}_f\ket{0}_a$.
References
Feedback
Submit and view feedback for