We willen van een functie
\(f\)
beslissen of het een constante functie is of niet.
Voor het domein en bereik van
\(f\)
nemen we
\(\{0,1\}\)
.
Simpel, zou je denken, je voert
\(\left|x\right>\)
in (voor x=0,1) en bekijkt uitvoer
\(\left|f(x)\right>\)
.
Maar hier duikt een probleem op, want ik geval van een constante functie is informatie verloren gegaan. Het proces behoort altijd reversibel te zijn. Uitgaande van de uitvoer en teruggaand in de tijd, moet je de invoer kunnen terugvinden.
De (altijd) eerste stap is het mengen van de begintoestanden
\(\left|0\right>\)
en
\(\left|1\right>\)
, door er een Hadamard-poort
\(H\)
op toe te passen.
Daarbij gaat
\(\left|0\right>\)
over in
\(\frac{\sqrt{2}}{2}(\left|0\right> + \left|1\right>)\)
en
\(\left|1\right>\)
over in
\(\frac{\sqrt{2}}{2}(\left|0\right> - \left|1\right>)\)
.
Deze toestanden worden zoals gebruikelijk afgekort tot
\(\left|+\right>\)
en
\(\left|-\right>\)
.
We hebben 3 poorten gezien die op 1 qubit werken. Er zijn ook poorten die op 2 qubits werken, zoals de exclusive-OR-poort, die toestand
\(\left|\Psi\right> = \left|x\right>\left|y\right>\)
overzet in toestand
\(\left|x\right>\left|x \mbox{ XOR } y\right>\)
.
Samenstelling met de functie
\(f\)
levert een operator
\(O\)
die toestand
\(\left|x\right>\left|y\right>\)
omzet in toestand
\(\left|x\right>\left|x \mbox{ XOR } f(y)\right>\)
.
We bekijken nu het resultaat van de operatoren
\(H\)
en
\(O\)
op de begintoestanden
\(\left|0\right>\)
en
\(\left|1\right>\)
.
\(OH(\left|0\right>\left|1\right>) = O(\frac{\sqrt{2}}{2}(\left|0\right>+\left|1\right>)\left|-\right>) = \frac{\sqrt{2}}{2}O(\left|0\right>\left|-\right>+\left|1\right>\left|-\right>)\)
(*).
Ik moet nu
\(O(\left|0\right>\left|-\right>)\)
en
\(O(\left|1\right>\left|-\right>)\)
berekenen.
Schrijf
\(g(x) = 1 \mbox{ als } f(x)=0 \mbox{ en } g(x)=-1 \mbox{ als } f(x)=1\)
.
\(O(\left|x\right>\left|-\right>) = O(\left|x\right>(\frac{\sqrt{2}}{2}(\left|0\right>-\left|1\right>))) = \frac{\sqrt{2}}{2}(O\left|x\right>\left|0\right> - O\left|x\right>\left|1\right>) =\)
\(\frac{\sqrt{2}}{2}(\left|x\right>\left|0 \mbox{ XOR } f(x)\right> - \left|x\right>\left|1 \mbox{ XOR } f(x)\right>) = g(x)\left|x\right>\left|-\right>\)
Dus kunnen we (*) schrijven als
\(\frac{\sqrt{2}}{2}(g(0)\left|0\right>\left|-\right> + g(1)\left|1\right>\left|-\right>)\)
\(= \pm\left|+\right>\left|-\right>\)
als f constant is en
\(= \pm\left|-\right>\left|-\right>\)
als f niet constant is.
We zijn er bijna. Nog even een Hadamard-poortje plaatsen op de eerste uitgang om van
\(+\)
en
\(-\)
weer
\(0\)
en
\(1\)
te maken, want
\(H\left|+\right> = \left|0\right>\)
en
\(H\left|-\right> = \left|1\right>\)
.
Dit levert de uitgangstoestand
\(\Psi_{\mbox{uit}}\)
met
\(\Psi_{\mbox{uit}}= \pm\left|0\right>\left|-\right>\)
als f constant is en
\(\Psi_{\mbox{uit}}= \pm\left|1\right>\left|-\right>\)
als f niet constant is.
Het eerste qubit geeft dus 100% uitsluitsel.