Interpretación visual, en la esfera de Bloch, cuando se aplica dos veces la puerta de Hadamard

Se sabe que la operación de Hadamard es solo una rotación de la esfera sobre el y ^ eje de 90 grados, seguido de una rotación sobre el X ^ eje en 180 grados.

Por otro lado, H 2 = I , dónde H es la matriz unitaria correspondiente a la puerta de Hadamard y I es la matriz identidad.

Si hacemos la rotación correspondiente a la matriz de Hadamard dos veces, entonces en base a H 2 = I , saldríamos a la situación original, ¿no? Pero, de alguna manera, no puedo ver eso. ¿Alguien podría arrojar algo de luz sobre este problema?

Ambos deberían ser de 90 grados (sobre los ejes y y x), ¿verdad?
hadamard = qt.qip.hadamard_transform()

Respuestas (4)

Aquí doy un análisis adicional a la respuesta de Craig Gidneys. De hecho, la puerta de Hadamard se puede subdividir en dos rotaciones individuales, como se sugiere en la pregunta inicial. Sin embargo, cada puerta de qubit también puede describirse mediante una sola rotación en la esfera de Bloch. Para la puerta de Hadamard, esta es una rotación alrededor del eje (rho, elev, azim) = ( 1 , π 4 , 0 ) . El eje de rotación se dibuja como una flecha negra en la imagen.

Evolución de la esfera de Bloch durante dos puertas de Hadamard aplicadas secuencialmente

Se muestra la evolución del estado inicial | 0 durante dos puertas de Hadamard aplicadas secuencialmente. Los vectores de estado rojos muestran la evolución durante la primera puerta de Hadamard, transfiriendo el estado | 0 a estado | X (en la imagen solo x). Los vectores de estado azules luego muestran la evolución durante la segunda puerta de Hadamard, transfiriendo el estado | X volver al estado | 0 . Esta representación geométrica muestra para un estado inicial ejemplar, por qué H 2 = I .

La imagen se puede volver a simular con python y la caja de herramientas qutip .

from qutip import *
import numpy as np
import scipy
import matplotlib.colors
import scipy

#the gate
hadamard = qutip.qip.hadamard_transform()
# the hamilton operator describing the evolution during the hadamard gate
hamilton = Qobj(scipy.linalg.logm(hadamard.data.todense()), dims=hadamard.dims) / np.pi * 1.j

#create initial state vector
psi0 = (basis(2, 0)).unit()

# describing the gate as time evolution
def gate(t):
    return (-2*np.pi*1.j*hamilton*t).expm()

# hadamard gate for t = 0.5
# In[1]: gate(0.5)
# Out[3]: 
# Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = True
# Qobj data =
# [[ 0.70710678  0.70710678]
#  [ 0.70710678 -0.70710678]]

# evolve the gate
n = 25
psi = [gate(t)*psi0 for t in np.linspace(0, 1., 2*n)]

# plotting the states. State evolution during the first hamadard gate is red. During second hadamard gate is blue
b = Bloch()
b.vector_color = [matplotlib.colors.to_rgba('r', alpha=i) for i in np.arange(n)/float(n)] + [matplotlib.colors.to_rgba('b', alpha=i) for i in np.arange(n)/float(n)]  + ['black']
b.add_states(psi)
b.add_states([(basis(2,0) + (basis(2,0) + basis(2,1)).unit()).unit()])

b.show()

La operación de Hadamard es una rotación de 180 grados alrededor del eje diagonal X+Z de la esfera de Bloch.

Una rotación de 180 grados alrededor de X+Z intercambia puntos en el eje X con el eje Z (y viceversa), y niega puntos en el eje Y. Lo mismo se aplica al girar 90 grados alrededor de Y y luego 180 grados alrededor de X.

Tenga en cuenta que las operaciones cuánticas tienen una fase global además de la parte de rotación, por lo que si obtiene una igualdad exacta entre las matrices de operación dependerá de eso. Por ejemplo, X Y 1 / 2 = H i en lugar de solo H . La fase global solo importa si comienza a aplicar la operación condicional en otros qubits.

Puede ser agradable representar las cosas geométricamente. Podemos representar qubits usando vectores, como estoy seguro que sabes. Entonces, comencemos con un qubit en el | 0 estado, o en el estado [ 1 0 ] . Podemos graficar esto como

ingrese la descripción de la imagen aquí

(Ese azul es el vector que representa el qubit). Entonces, ahora que tenemos nuestro estado inicial, apliquémosle la puerta de Hadamard. La puerta de Hadamard está representada por 1 2 [ 1 1 1 1 ] . Cuando multiplicamos el vector [ 1 0 ] y la matriz anterior, obtenemos la puerta de Hadamard aplicada al estado cero, o [ 1 2 1 2 ] . Graficando eso, obtenemos

ingrese la descripción de la imagen aquí

Ahora, apliquemos la puerta de Hadamard nuevamente. Tenemos nuestro vector [ 1 2 1 2 ] y la matriz que representa la puerta de Hadamard, que podemos reescribir como [ 1 2 1 2 1 2 1 2 ] por simplicidad. Ahora para multiplicar los dos, por supuesto, lo hacemos 1 2 [ 1 2 1 2 ] + 1 2 [ 1 2 1 2 ] . 2 2 es por supuesto 2 , por lo que obtenemos [ 1 2 1 2 ] + [ 1 2 1 2 ] . esto sale a la luz [ 1 0 ] , y el gráfico al principio. ¡Estamos de vuelta donde empezamos!

Esperemos que esto ayude; si no es así, házmelo saber e intentaré pensar en otra forma de imaginarlo.

Gracias por su explicación. Entiendo que H 2 = I . Mi pregunta está más relacionada con la representación de la esfera de Bloch de la matriz de Hadamard. No entiendo por qué hacer la rotación de la matriz de Hadamard dos veces (rotar la esfera alrededor del eje y 90 grados, luego alrededor del eje x 180 grados, luego alrededor del eje y 90 grados, y luego al final, sobre el eje x en 180 grados), devolvería la esfera a la posición original? Muchas gracias.

Antes de comenzar, debo mencionar que estoy usando la herramienta de Craig Gidney y algunas capturas de pantalla, peculiaridad , que definitivamente vale la pena verificar, ya que él mismo también dejó una respuesta aquí, ahora aquí está mi entendimiento:

Comencemos con un estado inicial de peculiaridad para que podamos tener una percepción ilustrativa de lo que está pasando:

1

Este es solo un estado de qubit aleatorio que hice usando una combinación de tres puertas. ¿Qué pasa si le aplicamos Hadamard a esto?

2

Bueno, esto es una combinación de "rotación de la esfera sobre el y ^ eje de 90 grados, seguido de una rotación sobre el X ^ eje por 180 grados", pero dejemos esto aparte usando puertas más simples disponibles y la definición que le interesa:

3

De forma idéntica a la aplicación de la puerta de Hadamard, aplicamos Y ½ luego X. Puede que no sea obvio cómo llegamos a esto desde nuestra entrada, así que eche un vistazo a la animación de rotación Y y la rotación X en quirk. Antes de continuar, mirar estos también sería útil, supongo:

X rotationY rotationZ rotation

   X rotation      Y rotation      Z rotation

Ahora supongo que aquí está la parte interesante, si aplicamos Y ½ de nuevo llegaremos a esto:

ingrese la descripción de la imagen aquí

Pero ¿qué significa esto? Esto es igual a la rotación X del estado de entrada:

ingrese la descripción de la imagen aquí

Con todos estos preparativos, supongo que este es el punto, si gira una esfera 180 grados solo por un eje, las rotaciones iguales en otros ejes antes y después de la primera rotación se cancelarán y todo lo que necesita para alcanzar el estado inicial es aplicar el primer eje de rotación de 180 grados de nuevo, al igual que la aplicación doble de Hadamard.

En cierto sentido, es como hacer una rotación contra un espejo real, en la coordinación global, la rotación real es diferente de la rotación que ocurre en el espejo (aquí Y ½ puerta) pero sólo hay una realidad. Intentar rotar una pelota real contra un espejo puede ayudar a comprenderlo :)

Y, por supuesto, esto es después de aplicar dos Hadamard en consecuencia, lo que es igual a nuestro estado inicial:

9

10

Aquí está el modelo de peculiaridad que he preparado para esta respuesta y se puede usar y modificar para obtener una mejor comprensión.

Al final, debo mencionar que Hadamard en sí mismo se puede escribir como una rotación 3d de un paso, algo así como rotate(pi/2, 0, pi)pero las rotaciones 3d de un paso son menos intuitivas, supongo, y la rotación de un eje de dos pasos es más fácil de entender, por eso has encontrado esa cita. y tal vez sea mejor describirlo de esta manera.