Digamos que tiene un Hamiltoniano de la forma
Hay una construcción de circuito sencilla que le permite implementar su evolución en el tiempo . El truco es, básicamente, para descomponer el estado que se está desarrollando en los componentes que se encuentran en el eigenspaces de . Luego, aplica la fase al espacio propio , y la fase al espacio propio . El siguiente circuito hace ese trabajo (y elimina la descomposición al final).
Estoy asumiendo que el elemento de puerta de fase en el medio está aplicando el unitario
H=σ1⊗σ2⊗σ2⊗…⊗σn
e−iHt±1He−it+1e−it−1(eit00e−it).
En general, si desea evolucionar algo de Hamiltoniano donde y son de la forma anterior, entonces, con mucho, lo más fácil es descomponer la evolución como
para algunos grandes (aunque hay algoritmos con un comportamiento de escala mucho mejor), y cada uno de esos pequeños pasos puede ser implementado con el circuito anterior.H=H1+H2H1H2e−iHt≈(e−iH1t/Me−iH2t/M)M
Me−iH1t/M
Dicho esto, a veces hay cosas más inteligentes que puedes hacer. Su ejemplo adicional,
es uno de esos casos. Me gustaría empezar por aplicar el unitario rotación a qubits 2 y 3. Esto es el equivalente a la puerta de Hadamard, pero convertidos en en lugar de . Ahora pare por un momento y piense. Si los qubits 2 y 3 están en 00, entonces estamos aplicando al qubit 1. Para 01, es , para 10 es , y para 11 esH=X⊗Y⊗I+Z⊗I⊗Y
U=Z+Y2√YZX(X+Z)(X−Z)(Z−X)−(X+Z). A continuación, apliquemos el control-no del qubit 2 al qubit 3. Esto solo permuta ligeramente los elementos básicos. Ahora dice que tenemos que aplicar el Hamiltoniano
al estado del qubit 1, si los qubits 2 y 3 están en los estados . A continuación, recuerde que (Hadamard, no Hamiltoniano), y que . Entonces, eso nos da una manera fácil de convertir entre los dos bits de Hamiltoniano. Simplemente reemplazaremos esas dos s con nots controlados controlados por qubit 3. De manera similar, podemos usar una identidad de circuito
donde esta vez reemplazaremos las s con quits 2 controlados y no controlados.(−1)x2(X+(−1)x3Z)
x2x3X+Z=2–√HX2–√HX=X−ZXX
En general, creo que la simulación parece que
podría parecer complicada, pero no hay nada de la división en pequeños pasos de tiempo que acumulan errores a medida que avanza. No se aplicará con mucha frecuencia, pero vale la pena conocer este tipo de posibilidades.