Comenzando desde el principio (un muy buen lugar para comenzar, después de todo), el estado se ingresa en (aquí, llamado 'muestra de Fourier'). Esto genera el estadoAhora, aplicamos la operación (en este caso, el oráculo de bits ) para dar|0⟩⊗n|−⟩H⊗n⊗I⎛⎝∑x={0,1}n12n/2|x⟩⎞⎠|−⟩=12n/2(|0⟩+|1⟩)⊗n|−⟩.
UfUf⎛⎝∑x={0,1}n12n/2|x⟩⎞⎠|−⟩=∑x={0,1}n12n/2|x⟩|−⊕f(x)⟩.
El primer punto a tener en cuenta es que es la operación clásica de XOR . Lo que esto proporciona es en realidad el oráculo de fase , de modo que obtenemosEsto se debe a que . Este es el punto de "configurar una superposición ...": todo lo que esto significa es⊕ ⎛⎝∑x={0,1}n12n/2(−1)f(x)|x⟩⎞⎠|−⟩.
Uf|x⟩(|0⟩−|1⟩)=|x⟩|f(x)⟩−|1⊕f(x)⟩=(−1)f(x)|x⟩(|0⟩−|1⟩)realice las operaciones necesarias para establecer los qubits en el estado anterior, que es una superposición de todos los estados posibles (con factores de fase, en este caso) . En este caso, esto es solo Hadamard, seguido de un oráculo de fase.
Ahora, es solo una cadena de bits clásica: , entoncesxx=∏ixiH|xi⟩=12–√(|0⟩+(−1)xi|1⟩)=12–√∑y={0,1}(−1)xi.y|y⟩.
Esto le da a la propiedadH⊗n|x⟩=12n/2∑y∈{0,1}n(−1)x.y|y⟩.
Esto proporciona el estado final como12n⎛⎝∑x,y={0,1}n(−1)f(x)⊕x.y|y⟩⎞⎠|−⟩.
Sabemos que , dando . Sumar los términos da que . Esto significa que nos queda el término para , lo que significa que , dando la salida como , que se mide como obtener .f(x)=u.x=x.u(−1)f(x)⊕x.y=(−1)x.(u⊕y)x∑x(−1)x.(u⊕y)=0,∀u⊕y≠0u⊕y=0u=y|u⟩|−⟩u
En cuanto a por qué queremos establecer una superposición : aquí es donde entra en juego el poder de la computación cuántica: en términos menos matemáticos, aplicar la transformación de Hadamard es realizar una rotación en los estados qubit para ingresar al estado . Luego, gira cada qubit en este estado de superposición utilizando una operación equivalente a XOR (en esta nueva base), de modo que al realizar la transformación de Hadamard nuevamente, ahora está girando nuevamente sobre el estado . Otra forma de ver esto es considerarlo como un reflejo o inversión que logra el mismo resultado.|+⟩⊗n|u⟩
El punto es que, usando la superposición, podemos hacer esto a todos los qubits al mismo tiempo, en lugar de tener que verificar individualmente cada qubit como en el caso clásico.