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.
El truco es que si tenemos una hamiltoniana con diagonalización , entonces .H H=UDU† eitH=UeitDU†
En particular, si tiene un hamiltoniano que es un producto de , (donde por simplicidad asumimos para todo ), entonces podemos diagonalizar comoH=σ1⊗⋯⊗σn σi≠I i H
Como resultado:
Como las matrices de Pauli son fáciles de implementar en una computadora cuántica, y ya sabemos cómo hacer , hemos terminado.eitZ⊗Z
Si el Hamiltoniano es una suma de productos Pauli, entonces no existe una solución simple general, pero puede usar la fórmula del producto Lie truncada en una gran cantidad de términos para reducirlo al problema anterior.
fuente
En general, este problema no es muy simple, en última instancia, se trata de tomar un hamiltoniano como lo ha escrito y de alguna manera formar la secuencia apropiada de puertas que implementa . Según tengo entendido, esto generalmente se logra mediante el uso de la aproximación Trotter-Suzuki y las descomposiciones de la puerta.e−ΔtH
fuente