StandardAmplitudeAmplification function
Warning
This documentation refers to the Classic QDK, which has been replaced by the Modern QDK.
Please see https://aka.ms/qdk.api for the API documentation for the Modern QDK.
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
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for