Categorías
Quantum

Transformaciones unitarias

Un algoritmo cuántico funciona partiendo de un estado inicial en el que todos los qubits están en el estado $\vert 0\rangle$. A partir de ese punto, el estado se transforma mediante matrices, que se implementan físicamente como circuitos lógicos. El objetivo del algoritmo es llevar el estado cuántico a determinado valor. Entonces se realiza una medición.

La «explicación» anterior no «explica» mucho en este momento, pero necesitaba incluirla para saber en qué parte nos encontramos, y hacia dónde vamos. En esta entrada comenzaremos a ver las transformaciones más sencillas que afectan al estado cuántico: aquellas que solamente afectan un qubit cada vez.

Rotaciones complejas

Sabemos que el estado cuántico es un vector complejo. En el caso de un solo qubit, el vector tiene dos componentes. Veremos más adelante que, para $N$ qubits, tendremos $2^N$ componentes. Es fácil ver que, si queremos transformar estos vectores, necesitamos matrices complejas. Lo importante es qué tipo de matrices nos valen: necesitamos matrices unitarias, que son el equivalente de las rotaciones (matrices ortogonales) en un espacio vectorial complejo.

Matemáticamente, si tenemos una matriz compleja $U$, y llamamos $U^*$ a su transpuesta conjugada (cambiamos filas y columnas e invertimos el signo de las partes imaginarias), entonces la matriz es unitaria si se cumple:
$$UU^* = I$$donde $I$ es la matriz identidad. Es decir: toda matriz unitaria tiene una inversa (que es su transpuesta conjugada, en concreto). Este es un detalle importante: un estado cuántico regido por la ecuación de Schrödinger es simétrico respecto al paso del tiempo. Toda transformación cuántica que no implique una medición tiene que ser reversible.

Una propiedad interesante que tienen las matrices unitarias es que preservan el producto escalar entre dos vectores arbitrarios:

$$\langle U\phi\vert U\psi\rangle = \langle\phi\vert\psi\rangle$$Como el producto escalar es proporcional al ángulo entre dos vectores (ángulos complejos, en este caso), tenemos entonces que las matrices unitarias respetan el ángulo entre vectores. La experiencia en tres dimensiones reales nos dice que las rotaciones, precisamente, son las transformaciones que respetan los ángulos. En particular, si se preserva el producto escalar, también se preservará la longitud de los vectores transformados:

$$\vert\vert U\psi\vert\vert = \vert\vert\psi\vert\vert$$

Matrices de Pauli

Ahora tenemos que aprendernos un pequeño repertorio de matrices que actúan sobre un qubit. Las tres primeras matrices que veremos se conocen como matrices de Pauli, y la forma más fácil de recordarlas es utilizar la esfera de Bloch como recurso mnemotécnico:

Hay tres ejes espaciales en esta representación, y a cada uno de ellos le corresponde una matriz: $X$, $Y$ y $Z$. Cada una de ellas representa una rotación de 180 grados alrededor del eje correspondiente. Ojo: estoy hablando de rotaciones en el espacio de la esfera de Bloch, no en el espacio vectorial complejo.

Por ejemplo, la matriz $X$ gira 180 grados el estado cuántico alrededor del eje $X$. Como da la casualidad de que nuestra base computacional está alineada según el eje $Z$, esta transformación transforma el polo norte, el estado $\vert 0\rangle$, en el polo sur $\vert 1\rangle$ y viceversa. En el espacio vectorial complejo, esto equivale a intercambiar los dos componentes complejos, por lo que no nos debe extrañar que la matriz $X$ se escriba de esta manera en la base computacional:

$$X=\pmatrix{0&1\cr 1&0}$$Machaquemos esta información para estar seguro de entenderla. Imaginemos que el estado cuántico en un momento dado es, en la notación de Dirac:

$$\alpha\vert 0\rangle + \beta\vert 1\rangle$$Si le aplicamos la matriz $X$ a este vector, obtenemos un estado con los componentes intercambiados:

$$\beta\vert 0\rangle + \alpha\vert 1\rangle$$Ahora repitamos el cálculo, pero usando directamente la notación matricial:

$$\pmatrix{0&1\cr 1&0} \times \pmatrix{\alpha\cr\beta} = \pmatrix{\beta\cr\alpha}$$Son dos maneras equivalentes de expresar la misma operación.

¿Qué operación clásica convierte los ceros en unos y viceversa? La negación lógica, por supuesto. Podemos entonces considerar que $X$ es la negación dentro de nuestro repertorio de operaciones cuánticas.

Hemos elegido como negación la rotación alrededor del eje $X$, pero podríamos haber elegido también la rotación alrededor de $Y$. Pero no lo hicimos, porque la representación de $Y$ en la base computacional es un poco más complicada:

$$Y=\pmatrix{0&-i\cr i&0}$$Observe que yo no le estoy explicando que la rotación alrededor del eje $Y$ en el espacio de Bloch se corresponde realmente a la matriz que estoy presentando. No es difícil de demostrar, pero para abreviar, se lo dejo de momento a su cargo. Lo que ahora nos interesa es si de verdad esta forma tan rara con números imaginarios es realmente una negación. En realidad, es equivalente solamente cuando se trata de transformar los polos. Pero cualquier otro vector dará un vector con una fase rotada. Simplemente, vamos a preferir $X$ como forma estándar de negación.

La tercera matriz de Pauli es, naturalmente, la matriz $Z$:

$$Z=\pmatrix{1&0\cr 0&-1}$$Obviamente, si aplicamos una rotación de 180 grados alrededor del eje $Z$ a uno de los polos, nos quedaremos como al principio.

La transformación de Hadamard

Las tres matrices de Pauli sólo nos permiten, de momento, movernos de un polo al otro. ¿Qué tal si quisiéramos mover el estado cuántico al ecuador de la esfera de Bloch? Para eso necesitaremos una de las transformaciones más populares en computación cuántica: la transformación de Hadamard, o de Walsh-Hadamard.

$$H=\frac{1}{\sqrt{2}}\pmatrix{1&1\cr 1&-1}$$Veamos qué efecto tiene esta transformación sobre los vectores de la base computacional:

$$\eqalign{
\frac{1}{\sqrt{2}}\pmatrix{1&1\cr 1&-1}\times\pmatrix{1\cr 0} =& \frac{1}{\sqrt{2}}\pmatrix{1\cr 1} \cr
\frac{1}{\sqrt{2}}\pmatrix{1&1\cr 1&-1}\times\pmatrix{0\cr -1} =& \frac{1}{\sqrt{2}}\pmatrix{1\cr -1}}
$$Utilizando la notación de Dirac:

$$\eqalign{
H\vert 0\rangle =& \frac{1}{\sqrt{2}}(\vert0 \rangle + \vert1 \rangle)\cr
H\vert 1\rangle =& \frac{1}{\sqrt{2}}(\vert0 \rangle – \vert1 \rangle)
}$$O, si recordamos la definición de la base de Hadamard:

$$\eqalign{
H\vert 0\rangle =& \vert+ \rangle\cr
H\vert 1\rangle =& \vert- \rangle
}$$Es decir: la transformación de Hadamard mueve los polos a puntos situados en el ecuador de la esfera de Bloch y alineados con el eje $X$.

Como ejercicio, puede comprobar qué ocurre cuando se le aplica la matriz $X$ a los vectores de la base de Hadamard. No olvide la existencia del fenómeno de la equivalencia de fase: si multiplica los dos componentes por un vector unitario, el estado cuántico que se obtiene es indistinguible del original.

¿Unitarias o hermitianas?

Las cuatro matrices que hemos visto comparten una característica que, aunque no tiene mayor importancia, puede provocar confusión. Las hemos presentado aquí porque son matrices unitarias. Por ejemplo, se cumple que:

$$X^* X = I$$Pero al mismo tiempo, ¡las cuatro matrices son hermitianas o auto-adjuntas! Esto es:

$$X^* = X$$… y, por lo tanto:

$$XX = I$$Recuerde que los operadores hermitianos, en Mecánica Cuántica, se utilizan para definir observables, al ser operadores con valores propios siempre reales. Esto tiene alguna importancia en Física. Pero en Computación Cuántica casi siempre utilizaremos la base computacional, y la coincidencia no tiene mayor consecuencia. Sólo la menciono para no confundir el concepto de operador unitario con el de operador hermitiano.

Categorías
Quantum

La esfera de Bloch

Hemos quedado en que el estado de un qubit necesita dos números complejos para representarse. Pero cada número complejo tiene una parte real y otra imaginaria, por lo que en total tenemos cuatro valores reales para cada qubit. ¿Son imprescindibles todo? Parece que no, porque ya conocemos la condición de normalización: $\alpha\alpha^* +\beta\beta^*=1$. Con esta condición, podríamos utilizar solamente tres valores reales, y deducir el cuarto a partir de la normalización.

Equivalencia de fase

En realidad, el estado de un qubit aislado puede representarse con solamente dos números reales. Insisto:

  • El estado de un qubit aislado puede representarse con dos números reales.

Pongo el énfasis en el aislamiento del qubit: cuando tengamos sistemas de más de un qubit, tendremos que volver a la representación con tres valores reales, por culpa del entrelazamiento. Pero en lo que sigue, asumiremos que estamos tratando con un solo qubit suficientemente aislado del resto del universo.

¿De dónde sale la redundancia adicional? Pues del mismo hecho de que estamos tratando en realidad con lo que los matemáticos llaman un espacio proyectivo. A la Naturaleza no le interesan los vectores complejos individuales, sino clases de equivalencia dentro de ese espacio vectorial. Una de esas clases de equivalencia viene dada por la posibilidad de multiplicar un vector complejo por una «fase global». La fase recibe ese nombre de la representación de un número complejo en coordenadas polares:
$$x + iy \equiv \rho\cos\theta + i\rho\sin\theta
$$Haciendo uso de la fórmula de Euler, podemos simplificar la identidad anterior de esta manera:
$$x + iy \equiv \rho e^{i\theta}
$$Al radio $\rho$ se le llama, entre muchos otros nombres, la magnitud, módulo o valor absoluto del número complejo. Al ángulo $\theta$ se le conoce como fase o argumento. Nos quedaremos con «fase».

La idea de la equivalencia de fase es que podemos multiplicar cualquier estado cuántico por una cantidad de la forma $e^{i\phi}$ sin que la multiplicación tenga consecuencias observables. Supongamos que tenemos un estado $\pmatrix{\alpha\cr\beta}$. Si las amplitudes están normalizadas, al realizar una medición tendremos una probabilidad $\alpha\alpha^* $ de medir el estado $\vert 0\rangle$, y $\beta\beta^* $ de medir $\vert 0\rangle$. Si sustituimos $\alpha$ por $\alpha e^{i\phi}$ la primera probabilidad será $\alpha e^{i\phi}(\alpha e^{i\phi})^* $, es decir, $\alpha\alpha^* e^{i\phi}e^{-i\phi}$.

Puede que no vea a la primera, si no ha usado números recientemente, por qué uno de los exponentes cambia su signo. Recuerde que estamos calculando la conjugada de la fase, y que la conjugada sólo cambia el signo de la parte imaginaria. Como la parte imaginaria, según la fórmula de Euler, es $i$ multiplicada por un seno, al invertir el signo del ángulo, invertimos la parte imaginaria. La parte real es un coseno, por lo que el cambio de signo no le afecta. Al final, encontraremos que $\alpha\alpha^* e^{i\phi}e^{-i\phi}$ es igual a $\alpha\alpha^* $, ¡que es exactamente la probabilidad antes de la multiplicación por una fase!

Coordenadas polares

Para aprovechar esta equivalencia, vamos a describir explícitamente un estado con sus amplitudes en coordenadas polares:
$$
\pmatrix{\alpha\cr\beta} = \pmatrix{\vert\alpha\vert e^{i\phi_\alpha}\cr\vert\beta\vert e^{i\phi_\beta}}
$$¿Qué tal si multiplicamos ambas amplitudes por la fase inversa a la fase original de $\alpha$, es decir, por $e^{-i\phi_\alpha}$?
$$
\pmatrix{\alpha\cr\beta} \cong \pmatrix{\vert\alpha\vert\cr\vert\beta\vert e^{i(\phi_\beta – \phi_\alpha)}} =
\pmatrix{\vert\alpha\vert\cr\vert\beta\vert e^{i\phi}}
$$Con esta multiplicación, hemos conseguido que la primera amplitud sea directamente un número real, aunque la segunda amplitud siga siendo un complejo. Pero sabemos, además, que las amplitudes están normalizadas. Por lo tanto, podemos permitirnos sustituir $\vert\alpha\vert$ por $\cos\frac{\theta}{2}$ y $\vert\beta\vert$ por $\sqrt{1 – \vert\alpha\vert^2}$… es decir, por $\sin\frac{\theta}{2}$. He elegido usar $\frac{\theta}{2}$ en vez de $\theta$ directamente por motivos geométricos que veremos enseguida. Con todo esto, hemos conseguido representar el estado de cualquier qubit aislado de la siguiente manera:
$$
\cos\frac{\theta}{2}\vert 0\rangle + e^{i\phi}\sin\frac{\theta}{2}\vert 1\rangle
$$Es decir, para representar un qubit sólo necesitaremos dos valores reales, $\theta$ y $\phi$, que podemos interpretar como dos ángulos dentro de los siguientes rangos:
$$
\eqalign{
\theta\in& [0, \pi]\cr
\phi\in& [0, 2\pi]
}
$$Si recuerda algo de geometría analítica, estos dos ángulos más un radio forman un sistema de coordenadas polares en el espacio tridimensional.

La esfera de Bloch

Podemos, por lo tanto, representar visualmente el estado cuántico de un qubit aislado como un punto dentro de una esfera de radio unitario, como en la siguiente imagen:

En esta representación, la coordenada $\theta$ es la latitud, relativa al polo norte (no al ecuador), y $\phi$ es la longitud, tomando como punto de partida el eje $X$. Hay un problema con las coordenadas polares, en general, que también aparece aquí: la longitud en el polo norte y en el polo sur no está definida. Eso no es un problema, en la práctica.

¿Dónde caen los dos vectores de la base computacional? Pues resulta que $\vert 0\rangle$ es el punto $\lbrace\theta=0, \phi=0\rbrace$, precisamente el polo norte, y $\vert 1\rangle$ es $\lbrace\theta=\pi, \phi=0\rbrace$, el polo sur. He puesto que $\phi$ es cero en estos dos puntos, pero da igual lo que pongamos.

¿Recordáis que en la entrada sobre mediciones, llamamos $M_Z$ al operador de medición de la base computacional? Ahora ya puedo explicar de dónde sale la $Z$: la base computacional se representa como puntos antípodas orientados a lo largo del eje $Z$. En general, cualquier par de puntos antípodas sobre la esfera corresponden a vectores de una posible base. Esto es: serían siempre vectores de longitud unitaria perpendiculares entre sí.

Cabe preguntarse entonces si los puntos antípodas orientados a lo largo del eje $X$ y del eje $Y$ tienen alguna aplicación, o al menos, algún nombre especial. Y sí, tienen ambas cosas:
$$
\eqalign{
\vert+\rangle =& \lbrace\theta=\frac{\pi}{2}, \phi=0\rbrace\quad\text{eje X} \cr
\vert-\rangle =& \lbrace\theta=\frac{\pi}{2}, \phi=\pi\rbrace \cr
\vert i\rangle =& \lbrace\theta=\frac{\pi}{2}, \phi=\frac{\pi}{2}\rbrace\quad\text{eje Y} \cr
\vert-i\rangle =& \lbrace\theta=\frac{\pi}{2}, \phi=\frac{3\pi}{2}\rbrace}
$$En especial, la base orientada a lo largo del eje $X$ en la esfera de Bloch se conoce como base de Hadamard, y es muy importante en los algoritmos cuánticos. En la base computacional, los vectores de la base de Hadamard son:
$$
\eqalign{
\vert+\rangle =& \frac{1}{\sqrt{2}}(\vert 0\rangle + \vert 1\rangle) \cr
\vert-\rangle =& \frac{1}{\sqrt{2}}(\vert 0\rangle – \vert 1\rangle)
}
$$