Categorías
Quantum

Compuertas y circuitos

Tras presentar el estado cuántico de un qubit, vimos las transformaciones unitarias que actuaban sobre dicho estado. Ahora, que ya hemos presentado el estado de un grupo de qubits, tenemos que ver las transformaciones unitarias que nos permitirán manejar su estado.

Compuertas

Cuando se trata de operaciones sobre qubits individuales, no es mayor problema utilizar directamente las matrices en notación de componentes. El vector de estado de un qubit se representa con dos componentes complejos, por lo que las matriz son «simples» matrices complejas de $2\times2$. En cambio, es más pesado tener que listar los componentes de matrices con más dimensiones.

La alternativa, que todo el mundo sigue, es representar las transformaciones mediante compuertas cuánticas y combinar estas compuertas en circuitos. Por supuesto, detrás de todo circuito hay, simple y llanamente, una matriz probablemente enorme que es la que realiza la transformación necesaria antes de la medición. A mí, personalmente, me resulta muchísimo más fácil entender el funcionamiento de un algoritmo calculando las matrices asociadas pero, eso espero, con el tiempo uno llega a familiarizarse con la notación de circuitos y desarrollar la intuición necesaria para ahorrarse unos cuantos pasos. En cualquier caso, intentaré dar las herramientas para pasar de compuertas a matrices y, en el caso de circuitos correspondientes a algoritmos sencillos, del circuito completo a la matriz resultante.

Para el diseño de circuitos y algoritmos, mi recomendación es utilizar Qiskit, de IBM. Qiskit te permite crear una cuenta gratuita, y te da acceso a dos herramientas muy útiles para crear y evaluar circuitos: mediante software gráfico y a través de Python. No soy un entusiasta de Python, pero para este tipo de tareas no duele mucho usarlo. La siguiente imagen muestra parte de la barra de herramientas del editor gráfico, y un circuito muy sencillo con dos qubits, a los cuales se le está aplicando una inversión (la compuerta que parece una cruz) y una medición (la línea inferior representa la salida de bits clásicos del algoritmo):

El objetivo de esta entrada no es ponernos ya a diseñar circuitos: cuando llegue el momento, es preferible mostrar el código en Python. Ahora nos interesa la parte matemática, sobre cómo definir transformaciones que afecten a más de un qubit. Utilizo Qiskit para no tener que dibujar los circuitos a mano.

Hay alternativas a Qiskit. Las principales que conozco son Q#, una iniciativa de Microsoft, e incluso librerías de Matlab. Q# es interesante, pero en estos momentos es una pequeña tragedia hacer que funcione a la primera en Visual Studio. Y Matlab es de pago.

Cómo combinar matrices

Volvamos al circuito que he mostrado antes:
Este circuito muestra dos qubits, $q_0$ y $q_1$. A cada uno de ellos se le aplica una negación: la matriz $X$ que ya hemos visto, que convierte ceros en unos y viceversa, y que Qiskit representa como un círculo con una cruz dentro. Luego se realizan las mediciones. El resultado es muy tonto: obtenemos un $11$ clásico:

  1. Asumimos que cada qubit se inicializa en el estado $\vert0\rangle$. Es decir, el sistema de dos qubits se inicializa en el estado conjunto $\vert00\rangle$.
  2. Cada inversión convierte su qubit al estado $\vert1\rangle$. El sistema queda en un estado puro $\vert11\rangle$.
  3. Por supuesto, al medir obtendremos ese estado, sin ningún tipo de incertidumbre.

Sabemos que la matriz o compuerta $X$ tiene la siguiente representación en notación de componentes:
$$\pmatrix{0&1\cr1&0}
$$La pregunta nuestra es: ¿cómo representamos la matriz que aplica una negación por separado a cada uno de los qubits? En este caso, la intuición podría ayudarnos a determinar el contenido de la matriz, pero vamos a aprovechar que es un ejercicio sencillo para poner a punto la herramienta matemática que necesitaremos para casos más complicados. Esa herramienta es la multiplicación tensorial de matrices (previsible, ¿no?).

Supongamos que tenemos dos matrices $A$ y $B$, y que queremos calcular el producto tensorial de las dos:
$$\pmatrix{a_{11}&a_{12}\cr a_{21}&a_{22}}\otimes\pmatrix{b_{11}&b_{12}\cr b_{21}&b_{22}}
$$La definición de producto tensorial de matrices es un poco engorrosa, pero no es complicada:
$$\pmatrix{
a_{11}\times\pmatrix{b_{11}&b_{12}\cr b_{21}&b_{22}}&
a_{12}\times\pmatrix{b_{11}&b_{12}\cr b_{21}&b_{22}}\cr
a_{21}\times\pmatrix{b_{11}&b_{12}\cr b_{21}&b_{22}}&
a_{22}\times\pmatrix{b_{11}&b_{12}\cr b_{21}&b_{22}}
}$$Simplificando, nos queda esto:
$$\pmatrix{
a_{11}b_{11}&a_{11}b_{12}&a_{12}b_{11}&a_{12}b_{12}\cr
a_{11}b_{21}&a_{11}b_{22}&a_{12}b_{21}&a_{12}b_{22}\cr
a_{21}b_{11}&a_{21}b_{12}&a_{22}b_{11}&a_{22}b_{12}\cr
a_{21}b_{21}&a_{21}b_{22}&a_{22}b_{21}&a_{22}b_{22}
}$$Es muy importante dominar esta técnica. Asegúrese de que comprende de dónde sale cada celda del resultado antes de seguir adelante.

En nuestro ejemplo, queríamos combinar dos matrices $X$:
$$\pmatrix{0&1\cr1&0}\otimes\pmatrix{0&1\cr1&0}
$$En el paso intermedio, obtenemos esto:
$$\pmatrix{
0\times\pmatrix{0&1\cr1&0}&
1\times\pmatrix{0&1\cr1&0}\cr
1\times\pmatrix{0&1\cr1&0}&
0\times\pmatrix{0&1\cr1&0}
}$$Simplificando:
$$\pmatrix{
0&0&0&1\cr
0&0&1&0\cr
0&1&0&0\cr
1&0&0&0
}$$Intuitivamente, el resultado tiene buen aspecto: la matriz $X$ de dos dimensiones parece una matriz con la diagonal invertida, y esta matriz resultado tiene la misma forma. ¿Cómo comprobamos que es correcta? Muy sencillo. La base para dos qubits tiene cuatro vectores, que son $\vert00\rangle,\vert01\rangle,\vert10\rangle,\vert11\rangle$. Estos cuatro vectores, sin embargo, tienen una representación en componentes que puede resultar confusa si no la domina todavía. Vamos a hacer los cálculos y las representaciones explícitos. Para el primer vector de la base:
$$(X\otimes X)\vert00\rangle = \pmatrix{
0&0&0&1\cr
0&0&1&0\cr
0&1&0&0\cr
1&0&0&0
} \times \pmatrix {1\cr0\cr0\cr0} = \pmatrix {0\cr0\cr0\cr1} = \vert11\rangle
$$Para el segundo vector:
$$(X\otimes X)\vert01\rangle = \pmatrix{
0&0&0&1\cr
0&0&1&0\cr
0&1&0&0\cr
1&0&0&0
} \times \pmatrix {0\cr1\cr0\cr0} = \pmatrix {0\cr0\cr1\cr0} = \vert10\rangle
$$Tercer vector:
$$(X\otimes X)\vert10\rangle = \pmatrix{
0&0&0&1\cr
0&0&1&0\cr
0&1&0&0\cr
1&0&0&0
} \times \pmatrix {0\cr0\cr1\cr0} = \pmatrix {0\cr1\cr0\cr0} = \vert01\rangle
$$Y el cuarto vector:
$$(X\otimes X)\vert11\rangle = \pmatrix{
0&1&0&0\cr
1&0&0&0\cr
0&1&0&0\cr
1&0&0&0
} \times \pmatrix {0\cr0\cr0\cr1} = \pmatrix {1\cr0\cr0\cr0} = \vert00\rangle
$$Perdone que haya sido tan pedante y haya escrito explícitamente todos los detalles. La programación, en general, es el reino de los detalles. En este caso, hemos podido comprobar que la matriz combinada invierte los ceros y unos en el estado cuántico combinado.

El orden de los factores

Sin embargo, me he dejado un detalle importante en el tintero: el orden de los qubits. En un estado como $\vert01\rangle$, ¿cuál es el qubit más significativo? ¿Es el $0$ o el $1$? Todo depende del convenio, pero una vez elegido uno, hay que atenerse estrictamente a él. Nuestro convenio será que en $\vert01\rangle$ el bit más significativo es el de la izquierda, es decir, el $0$, y el menos significativo es el de la derecha, el $1$.

Recuerde, además, que $\vert01\rangle$ es realmente $\vert0\rangle\otimes\vert1\rangle$, esto es, un producto tensorial. Esto es muy importante también para combinar correctamente matrices. Nuestro primer ejemplo de producto tensorial fue muy sencillo porque las dos matrices eran idénticas, y no tuvimos que preocuparnos por su orden relativo. Vamos a suponer que nuestro circuito tiene esta otra forma:

Esta vez queremos invertir solamente el qubit menos significativo. Aparentemente, además, sólo tenemos una matriz, pero eso no es del todo cierto. Lo que queremos calcular ahora es la matriz combinada $I\otimes X$, donde $I$ es la matriz identidad.

Observe el orden: primero va la matriz identidad $I$… ¡porque cuando representamos el sistema de dos qubits, hemos elegido que el más significativo sea el de la izquierda! Y la matriz $X$ es entonces el segundo operando. Queremos entonces calcular esto:

$$\pmatrix{1&0\cr0&1}\otimes\pmatrix{0&1\cr1&0}
$$Expandiendo, según la definición de producto tensorial:
$$\pmatrix{
1\times\pmatrix{0&1\cr1&0}&
0\times\pmatrix{0&1\cr1&0}\cr
0\times\pmatrix{0&1\cr1&0}&
1\times\pmatrix{0&1\cr1&0}
}$$Y si simplificamos:
$$\pmatrix{
0&1&0&0\cr
1&0&0&0\cr
0&0&0&1\cr
0&0&1&0
}$$Esto, así de repente, es chino mandarín, y la única manera sensata de comprobar que no nos hemos equivocado es comprobar directamente las transformaciones.
$$(I\otimes X)\vert00\rangle = \pmatrix{
0&1&0&0\cr
1&0&0&0\cr
0&0&0&1\cr
0&0&1&0
} \times \pmatrix {1\cr0\cr0\cr0} = \pmatrix {0\cr1\cr0\cr0} = \vert01\rangle
$$
$$(I\otimes X)\vert01\rangle = \pmatrix{
0&1&0&0\cr
1&0&0&0\cr
0&0&0&1\cr
0&0&1&0
} \times \pmatrix {0\cr1\cr0\cr0} = \pmatrix {1\cr0\cr0\cr0} = \vert00\rangle
$$
$$(I\otimes X)\vert10\rangle = \pmatrix{
0&1&0&0\cr
1&0&0&0\cr
0&0&0&1\cr
0&0&1&0
} \times \pmatrix {0\cr0\cr1\cr0} = \pmatrix {0\cr0\cr0\cr1} = \vert11\rangle
$$
$$(I\otimes X)\vert11\rangle = \pmatrix{
0&1&0&0\cr
1&0&0&0\cr
0&0&0&1\cr
0&0&1&0
} \times \pmatrix {0\cr0\cr0\cr1} = \pmatrix {0\cr0\cr1\cr0} = \vert10\rangle
$$Nuestra matriz, por lo tanto, transforma $00\rightarrow01$, $01\rightarrow00$, $10\rightarrow11$ y $11\rightarrow11$. Esto es, lo que hace es cambiar el estado del bit menos significativo… que era lo que estábamos buscando. Como ejercicio, puede calcular cuál sería la representación en componentes de la matriz $X\otimes I$, que debe invertir el estado del qubit más significativo. Y si quiere adelantarse a la siguiente entrada, pruebe fortuna con $H\otimes H$, donde $H$ es la transformación de Hadamard que ya hemos visto.

Advertencia

Todas las matrices y estados que hemos visto tienen componentes que son o $0$ o $1$. Esto puede llevar a confusión: ese cero es realmente un cero «complejo», y lo mismo se aplica al uno. No pierda de vista, aunque en estos primeros ejemplos no importe mucho, que en vez de ceros y unos, nuestras matrices y vectores pueden contener, y contendrán, números complejos.

Categorías
Quantum

Entrelazamiento

Son dos los fenómenos que hacen de la Mecánica Cuántica una teoría extraña: la superposición y el entrelazamiento. En ambos casos, la explicación más sencilla consiste en mirar las matemáticas.

Superposición

De los dos fenómenos, el más fácil de entender es la superposición, porque es una consecuencia de la linealidad de la ecuación de Schrödinger. Si un sistema puede estar en el estado $\vert\psi\rangle$ y en el estado $\vert\phi\rangle$, teóricamente puede estar también en cualquier estado intermedio $\alpha\vert\psi\rangle + \beta\vert\phi\rangle$. Traducido al mundo de los ordenadores cuánticos: un qubit no sólo puede estar en el estado que nosotros interpretaremos como $0$ y en el estado $1$, sino que puede estar, aunque no lo «veamos» directamente, en cualquier estado situado entre esos dos valores. Por ejemplo, si le aplicamos la transformación de Hadamard a un qubit que está en el estado inicial $\vert0\rangle$, obtenemos el estado mixto $\frac{1}{\sqrt{2}}(\vert0\rangle + \vert1\rangle)$.

Si estamos, por el contrario, en un sistema de $N$ qubits, podemos aplicar una transformada de Hadamard a cada uno de los qubits, y obtendremos una superposición de todos los enteros representables en esos qubits (esto lo veremos en breve). De manera que, si tengo $16$ qubits, puedo tener todos los números del $0$ al $65.535$ representados al mismo tiempo en esos registros. Lo mejor de todo: si le aplico una transformación unitaria a esos $16$ qubits, voy a estar transformando al mismo tiempo los $65.536$ valores posibles, gracias a la linealidad de estas transformaciones. Todo en su momento…

No obstante, lo que estoy diciendo es que matemáticamente es fácil comprender la superposición; no que sea fácil darle un sentido físico a la misma. La superposición es el origen de la famosa paradoja del Gato de Schrödinger, que estaba tanto vivo como muerto hasta el momento en que decidíamos realizar una medición.

Graduum libertatis

Para entender el problema del entrelazamiento, tenemos que comprender cómo funcionan los grados de libertad en un sistema cuántico. Imaginemos una partícula puntual moviéndose dentro de un mundo clásico en tres dimensiones. Un físico describiría la partícula mediante dos vectores: la posición y el impulso de la misma, es decir, la velocidad multiplicada por la masa. Seis componentes.

Ahora supongamos que nuestro universo tiene dos partículas. El físico clásico utilizaría entonces cuatro vectores: dos por cada partícula. En total, doce componentes. Lo que hemos hecho es concatenar dos espacios vectoriales de seis dimensiones. El mundo clásico es así de «sencillo».

$$\mathbb{R}^6 \oplus \mathbb{R}^6 = \mathbb{R}^{12}$$

Pero eso no es lo que hemos hecho al pasar de uno a dos qubits… o mejor, a tres qubits, para evitar confusiones. El estado cuántico de un qubit es $\mathbb{C}^2$, o un espacio proyectivo dentro de éste, si nos ponemos exquisitos. Sin embargo, hemos visto que el estado de dos qubits es $\mathbb{C}^4$, y el de tres qubits, $\mathbb{C}^8$. Aquí no estamos usando la concatenación de espacios vectoriales, sino el (¡ta-dah!) producto tensorial de estos espacios:

$$\mathbb{C}^2 \otimes \mathbb{C}^2 \otimes \mathbb{C}^2 = \mathbb{C}^8$$

Es hora de ponernos serios y explicar qué es eso del…

Producto tensorial de espacios

El producto tensorial de dos espacios vectoriales es un tontería, créame. Supongamos que tenemos un espacio vectorial arbitrario (no necesariamente cuántico) de dimensión $n_1$, con una correspondiente base formada por $n$ vectores, a los que vamos a llamar $e_1, e_2 \cdots e_{n1}$. Ahora vamos a elegir un segundo espacio vectorial… qué narices… voy a multiplicar el espacio consigo mismo, para no tener que inventarme una segunda base. El espacio original se llamaba (se me había olvidado), $V$. No es muy original, pero nos valdrá. Y queremos ver cómo se define el espacio $V \otimes V$.

La idea es definir la base del nuevo espacio como todos los pares posibles de vectores $e_i \otimes e_j$, tal que:

$$i \neq j \rightarrow e_i \otimes e_j \neq e_j \otimes e_i$$

Si el espacio original tenía $n_1$ dimensiones, el espacio producto tiene $n_1 \times n_1$ dimensiones o componentes. Es exactamente lo mismo que vimos en la entrada anterior, pero ahora le ponemos un nombre bonito y una definición más o menos formal.

Nuestro espacio de un qubit tenía dos vectores en la base: $\vert0\rangle$ y $\vert1\rangle$. Por lo tanto, la base de un espacio de dos qubits es la siguiente:

$$\eqalign{
\vert0\rangle \otimes \vert0\rangle &\equiv \vert0\rangle\vert0\rangle \equiv \vert00\rangle \cr
\vert0\rangle \otimes \vert1\rangle &\equiv \vert0\rangle\vert1\rangle \equiv \vert01\rangle \cr
\vert1\rangle \otimes \vert0\rangle &\equiv \vert1\rangle\vert0\rangle \equiv \vert10\rangle \cr
\vert1\rangle \otimes \vert1\rangle &\equiv \vert1\rangle\vert1\rangle \equiv \vert11\rangle}$$

Es decir: lo mismo que ocurría en la entrada anterior, pero ahora tenemos otras dos maneras equivalentes de escribir los vectores de la base.

Toda esta pedantería formal, aclaro, es necesaria para lo que viene a continuación.

Producto tensorial de vectores

Al definir el producto tensorial de dos «espacios» vectoriales, implícitamente definimos también un producto tensorial entre vectores de las bases. Podemos definir un producto tensorial entre «vectores», en vez de espacios, si complementamos el producto tensorial de las bases con el requisito adicional de linealidad. Es decir:

$$\displaylines{(a\vert\phi\rangle + b\vert\psi\rangle) \otimes (c\vert\phi\rangle + d\vert\psi\rangle) \equiv\cr
\quad ac\vert\phi\rangle\vert\phi\rangle + ad\vert\phi\rangle\vert\psi\rangle + bc\vert\psi\rangle\vert\phi\rangle + bd\vert\psi\rangle\vert\psi\rangle}
$$Recuerde que $\vert\phi\rangle\vert\psi\rangle$ es simplemente una abreviatura de $\vert\phi\rangle\otimes\vert\psi\rangle$. Por poner un ejemplo, si multiplicamos uno de los vectores de la base computacional por uno de la base de Hadamard, obtendríamos:

$$\vert0\rangle \otimes \frac{1}{\sqrt 2}(\vert0\rangle + \vert1\rangle) =\frac{1}{\sqrt 2}(\vert00\rangle + \vert01\rangle)
$$Esta operación, en particular, nos permite obtener un vector combinado en el espacio de dos qubits a partir de dos estados independientes en el espacio de un solo qubit.

Ahora sí: entrelazamiento

Supongamos que estamos trabajando con tres qubits:

$$\mathbb{C}^2 \otimes \mathbb{C}^2 \otimes \mathbb{C}^2 = \mathbb{C}^8$$

¿Cuántos números complejos, a bote pronto, necesitamos para representar un estado de este espacio? Si ignoramos la existencia de la equivalencia de fase y el convenio de normalización, necesitaremos ocho números complejos. Si tenemos en cuenta que el espacio de estados es realmente un estado proyectivo, en realidad necesitamos siete números complejos.

Podemos definir algunos estados en $\mathbb{C}^8$ componiendo tensorialmente estados independientes de un qubit. La gran pregunta que tenemos que hacernos es: ¿nos basta esta composición de vectores independientes para generar todos los elementos de $\mathbb{C}^8$? La respuesta es un rotundo no.

Un estado de un qubit se representa mediante dos valores reales o, alternativamente, un valor complejo. Incluso si ignoramos las equivalencias de fase y la normalización, hay sólo dos complejos en cada qubit. Tres qubits, explicados independientemente, nos dan un total bruto de seis valores complejos, que en neto son realmente tres complejos. Ni de broma alcanzamos a cubrir todas las descripciones basadas en siete números complejos que hacen falta para tres qubits. Lo podemos enmarcar en un cuadro y colgarlo en la pared de la oficina:

Hay más estados en un sistema de $N$ qubits que los que se pueden describir especificando estados independientes para cada qubit.

He empezado con el caso de los tres qubits para evitar confusión debida a que $2^2=2+2$. Pero cuando hay dos qubits ocurre lo mismo: tratados independientemente, necesitamos cuatro valores reales, o dos complejos. Tratados en conjunto, necesitamos tres complejos o seis reales.

Si este razonamiento top-down no le convence, probemos uno bottom-up. Consideremos este estado de dos qubits:

$$\frac{1}{\sqrt 2}(\vert00\rangle+\vert11\rangle)$$Le reto a encontrar dos estados de un qubit que, multiplicados tensorialmente, den lugar a este estado de dos qubits. Veamos la definición de producto tensorial de vectores:

$$\displaylines{(a\vert0\rangle + b\vert1\rangle) \otimes (c\vert0\rangle + d\vert1\rangle) \equiv\cr
\quad ac\vert00\rangle + ad\vert01\rangle + bc\vert10\rangle + bd\vert11\rangle}
$$Si queremos que se anulen los estados $01$ y $10$, necesitamos que $ad=bc=0$. Pero cualquier combinación que consiga esto, también conseguirá que se anulen los otros dos términos. La conclusión: no podemos explicar este estado descomponiéndolo en qubits independientes.

Medición entrelazada

¿Qué ocurre si realizamos una medición sobre un estado entrelazado como $\frac{1}{\sqrt 2}(\vert00\rangle+\vert11\rangle)$? Tenemos una combinación lineal de dos de los cuatro vectores propios, o eigenvectors, del espacio de estados. Por lo tanto, la medición no será determinista. Podemos obtener tanto el estado $\vert00\rangle$ como $\vert11\rangle$, y la probabilidad de obtener cualquiera de ellos es la misma.

Lo interesante es que, si obtenemos un $1$ en el primer qubit, no necesitamos mirar el contenido del segundo qubit: por fuerza, tiene que ser otro $1$. Lo mismo ocurre si recibimos un $0$ en uno de los qubits: el otro tendrá el mismo valor. Si estamos pensando en un ordenador cuántico, en el que los qubits están muy cercanos físicamente, esto puede que no nos sorprenda. Pero nadie ha dicho que los qubits tengan que estar uno al lado del otro. Uno de ellos puede estar en la Tierra y el otro en el planeta Raticulín.

Esta es una variante más o menos abstracta de la famosa paradoja de Einstein-Podolsky-Rosen, o paradoja EPR.

Dependencia de la base

¿Hay algo intrínseco en un estado cuántico dado que nos permita asegurar que es un estado superpuesto o entrelazado? Resulta que no: tanto la superposición como el entrelazamiento son fenómenos que dependen de la elección de una base. Por ejemplo, el estado $\frac{1}{\sqrt 2}(\vert00\rangle+\vert11\rangle)$ es un estado entrelazado para mediciones en la base computacional. Pero si vamos a realizar la medición en la llamada base de Bell, para sistemas de dos qubits, el estado anterior es un «estado puro». El truco está en que la base de Bell se define de esta manera:

$$\eqalign{
\vert\Phi^{+}\rangle =& \frac{1}{\sqrt 2}(\vert00\rangle+\vert11\rangle) \cr
\vert\Phi^{-}\rangle =& \frac{1}{\sqrt 2}(\vert00\rangle-\vert11\rangle) \cr
\vert\Psi^{+}\rangle =& \frac{1}{\sqrt 2}(\vert01\rangle+\vert10\rangle) \cr
\vert\Psi^{-}\rangle =& \frac{1}{\sqrt 2}(\vert01\rangle-\vert10\rangle)
}$$No obstante, en la base de Bell también habrá estados entrelazados. En realidad, volveremos a tener más estados entrelazados que estados descomponibles.

Categorías
Quantum

Shave and a haircut

Vamos a generalizar el concepto de estado cuántico y de transformación unitaria a sistemas de más de un qubit. Este es el momento en que los libros entran en un pequeño berenjenal llamado producto tensorial. Nosotros necesitaremos, por supuesto, saber cómo funciona el producto tensorial, pero vamos a introducir el tema de forma gradual y, espero, más intuitiva. Comenzaremos con el estado de un sistema con sólo dos qubits.

Two qubits

Ya sabemos que el estado de un sistema de $N$ qubits es un vector complejo en $\mathbb{C}^{2^N}$, con $2^N$ componentes. Un qubit tiene dos componentes, dos qubits, cuatro; tres qubits tienen ocho componentes y diez, mil veinticuatro. No hay nada sorprendente ni esotérico en que aparezca una exponencial en nuestras cuentas. Diez bits clásicos también dan para representar hasta 1024 valores. Pero es cierto que diez qubits tienen infinitamente más estados internos que su contrapartida clásica, como veremos en breve.

Esto también significa que la base vectorial de un sistema de $N$ qubits tiene $2^N$ vectores. En el caso de un qubit, teníamos una base con dos vectores, los ya familiares $\vert0\rangle$ y $\vert1\rangle$. Con dos qubits, vamos a tener una base de cuatro vectores, y vamos a denominarlos así:

$$\vert00\rangle, \vert01\rangle, \vert10\rangle, \vert11\rangle$$Cualquier estado del sistema de dos qubits, entonces, puede describirse como una combinación lineal de estos cuatro vectores:

$$\vert\psi\rangle = c_{00}\vert00\rangle+c_{01}\vert01\rangle+c_{10}\vert10\rangle+c_{11}\vert11\rangle$$En notación matricial, por ejemplo, el estado $\vert00\rangle$ se representaría:

$$\pmatrix{1\cr 0\cr 0\cr 0}$$Como esta notación consume mucho espacio vertical, a veces representaremos este vector mediante su transpuesta (no su transpuesta conjugada):

$$\pmatrix{1&0&0&0}^T$$Tenemos que tener cuidado en cómo interpretamos la notación matricial. Por ejemplo, el vector $\vert11\rangle$ corresponde a esta matriz:

$$\pmatrix{0\cr 0\cr 0\cr 1}\quad\text{ó}\quad\pmatrix{0&0&0&1}^T$$Para poder usar la notación matricial es necesario acordar un orden en los vectores de la base. Lo que hemos hecho es utilizar implícitamente el llamado orden lexicográfico o de diccionario. El otro detalle a cuidar es el orden de los ceros y unos en vectores como $\vert01\rangle$ y $\vert10\rangle$. Nosotros siempre consideraremos que el primer qubit es el de más a la derecha.

Una forma alternativa de escribir estos vectores de la base es dejándonos de pamplinas, y traduciendo las cadenas de bits a notación decimal:

$$\vert0\rangle, \vert1\rangle, \vert2\rangle, \vert3\rangle$$La desventaja de esta notación es que hace falta tener muy claro el número de qubits en el sistema. Por ejemplo, $\vert3\rangle$ podría significar $\vert11\rangle$ en nuestro sistema de dos qubits, pero también $\vert0011\rangle$ en un ordenador de cuatro. En ocasiones, para evitar esta incertidumbre, escribiremos cosas como $\vert3\rangle_2$ o incluso $\vert3\rangle_N$, para dejar claro el número de qubits del sistema.

Potencias de dos

El número $4$ es bastante engañoso, porque $4 = 2+2 = 2\times2 = 2^2$. ¿Qué tamaño tiene el espacio de estado de un sistema, digamos, de cuatro qubits? El espacio vectorial subyacente es $\mathbb{C}^{2^4}$, es decir, $\mathbb{C}^{16}$, y la base vectorial tendrá $16$ elementos:

$$\displaylines{\vert0\rangle, \vert1\rangle, \vert2\rangle, \vert3\rangle, \vert4\rangle, \vert5\rangle, \vert6\rangle, \vert7\rangle,\cr
\vert8\rangle, \vert9\rangle, \vert \text{A}\rangle, \vert \text{B}\rangle, \vert \text{C}\rangle, \vert \text{D}\rangle, \vert \text{E}\rangle, \vert {F}\rangle}$$Esta vez he abreviado el contenido de los kets usando la notación hexadecimal, pero podía haber usado igualmente notación binaria o decimal, siempre que estuviese claro el contexto.

Lo importante en este punto es tener claro que cualquier espacio de estados en un ordenador cuántico va a tener una base cuyo tamaño es una potencia de dos. Esto importa porque, al diseñar algunos algoritmos como la Transformada Cuántica de Fourier, utilizaremos técnicas como “divide y vencerás”, que funcionan mejor cuando se trabaja sobre potencias de dos.

La insoportable gravedad del ser

Imaginemos que hay que simular un ordenador cuántico mediante un ordenador clásico. Supongamos que queremos simular 100 qubits. ¿Cuán difícil es? $2^{10}$ es $1.024$, pero $2^{100}$ es este monstruo:

$$1.267.650.600.228.229.401.496.703.205.376$$O, en notación científica decimal, 1,267E30. Ese es el número de componentes complejos en un simple estado cuántico. Ahora bien, la programación cuántica tiene una buena parte que consiste en multiplicar matrices o aplicar matrices a un estado cuántico. Calcule por su cuenta el tamaño de una matriz de transformación para un estado cuántico como el descrito.

Los ordenadores cuánticos más grandes en estas fechas tienen unos 50 qubits. $2^{50}$ es aproximadamente un 1 seguido de 15 ceros. Un mega son seis ceros, el giga, nueve y el tera, doce. Necesitamos mil teras para representar el estado cuántico completo. Es decir, un peta.

En la siguiente entrada, intentaré justificar cómo es posible este tipo de monstruosidades, y de paso, le presentaré el formalismo de los productos tensoriales.

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)
}
$$

Categorías
Quantum

Historia de un qubit

Veamos ahora cómo representar un qubit utilizando la menor redundancia posible. Sabemos que el estado de un qubit es, por definición, un vector en $\mathbb{C}^2$. Eso significa que necesitamos dos componentes complejos para representar su estado. Por motivos histórico, se suele usar la letra $\psi$ para denotar el estado cuántico. Por lo tanto y resumiendo:
$$\displaylines{
\vert\psi\rangle = \alpha\vert 0\rangle + \beta\vert 1\rangle \cr
\alpha, \beta \in \mathbb{C}}
$$A los componentes complejos del estado cuántico se les suele llamar amplitudes, como recuerdo de que en la metodología original de Schrödinger, $\psi$ se conoce como «función de onda».

Observad que, sin decir nada, he hecho que los componentes vayan automáticamente asociados a la base formada por los vectores $\vert 0\rangle$ y $\vert 1\rangle$. Los componentes de un vector siempre tienen que referirse a una base concreta, y la base universalmente utilizada en Quantum Computing es la base anterior, conocida como «base computacional». Estos dos vectores son especiales porque son los vectores propios, o eigenvectors, del operador de medición que transforma un qubit en un bit clásico.

Ahora bien, ya he mencionado que, en realidad, el estado cuántico es un rayo dentro del espacio vectorial complejo. Es decir, todos los estados que apuntan en la misma dirección son físicamente equivalentes. Por convenio, y para simplificar la forma de calcular, nos interesa elegir el vector dentro del rayo cuya longitud es la unidad. Por lo tanto, vamos a exigir que nuestras amplitudes cumplan con esta condición adicional:
$$\alpha\alpha^* +\beta\beta^*=1$$No olvidemos, ni por un momento, que tanto $\alpha$ como $\beta$ son números complejos. Por este motivo, no elevamos simplemente al cuadrado cada amplitud, sino que tenemos que multiplicarlas por sus valores conjugados, si queremos que la suma de los cuadrados de las amplitudes sea un valor real.

Notación matricial

Hay programadores ninjas que se buscan directamente la vida con la notación de Dirac y pueden hacer todos los cálculos necesarios directamente con ella. La mayoría de los mortales, en cambio, lo vemos todo más claro si utilizamos la notación matricial de toda la vida. ¡Ojo!, de momento estamos tratando con vectores, y las matrices cuadradas propiamente dichas aparecerán en breve, pero en esta notación, un vector puede representarse como una matriz vertical, de dos filas y una columna:
$$\vert\psi\rangle = \pmatrix{\alpha \cr \beta}$$La ventaja de esta notación es que nos permite omitir la base: implícitamente, se refiere a la base computacional. Por lo tanto, es una notación mucho más compacta. Otra ventaja es que nos permite entender por otra vía de qué va todo ese rollo de los bras, los kets y eso del «espacio vectorial dual». Hemos visto, por ejemplo, que un ket es una matriz vertical. Resulta, entonces, que un bra es simplemente una matriz horizontal:
$$\langle\psi\vert = \pmatrix{\alpha^* & \beta^* }$$Por supuesto, para pasar del ket al bra hemos tenido que conjugar las amplitudes. Con esta notación, además, el producto escalar se calcula muy fácilmente:
$$\eqalign{
\langle\psi\vert\psi\rangle =& \pmatrix{\alpha \cr \beta} \times \pmatrix{\alpha^* & \beta^* } \cr
=& \pmatrix{ \alpha\alpha^* +\beta\beta^* }
}$$Aquí tenemos que recordar las reglas del álgebra lineal: si multiplicamos una matriz $m\times n$ por otra $n\times p$, el resultado es una matriz $m\times p$. Nosotros hemos multiplicado una matriz $1 \times 2$ por una $2\times 1$, por lo que el resultado es una matriz de $1\times 1$. Una sola celda, es decir, un escalar o valor numérico a secas.

El cero no es cero-cero

A esta parte le pongo un subtítulo separado porque es importante. ¿Cómo se representan, usando componentes, los dos vectores de la base computacional?
$$\vert 0\rangle \equiv \pmatrix{1 \cr 0}\quad\vert 1\rangle \equiv \pmatrix{0 \cr 1}$$Esto es extremadamente simple, pero la experiencia personal me dice que es fácil confundirse y creer que el vector del estado $\vert 0\rangle$ tiene sus componentes a cero.

De hecho, el vector $\pmatrix{0 \cr 0}$ no es un estado cuántico correcto.

Categorías
Quantum

La polarización de la luz

En mi opinión, esta es la entrada más importante para entender lo necesario antes de pasar ya a la Computación Cuántica. Por favor, cualquier duda, como ya he dicho, pasádmela en los comentarios o directamente a mi email. Aquí vamos a mostrar un experimento en el que veremos:

  • El estado cuántico de un sistema físico muy sencillo, similar en muchas cosas a cómo funciona un qubit.
  • Un «aparato de medición» que implementa un observable cuántico.
  • Cómo la elección de una base depende del aparato de medición y su configuración.
  • Qué ocurre cuando se repite una medición.
  • La regla de Born en acción.

El «experimento», en sí, está grabado en el siguiente vídeo. No he narrado el vídeo, para no alargarlo innecesariamente. Todas las explicaciones van el texto que sigue a continuación:

Nuestro estado cuántico

Para el experimento, he utilizado una lámpara de sal rosa del Himalaya. Bueno, eso es lo que cree mi mujer. Yo creo que está hecha de caca de yeti. Entre los yetis y los yaks, tienen todas las cumbres del Himalaya cubiertas de estiércol. Hay incluso un país, Bután, que se ha hecho famoso por sus exportaciones de… adivine… ¡butano!, que se produce al fermentar todo este jaleo. De hecho, los butaneros españoles visten uniforme naranja en homenaje a los monjes budistas del Bután.

En realidad, la lámpara del yeti no tiene nada de especial. Podíamos haber usado casi cualquier fuente de luz natural. Pero en Madrid hacía mal tiempo, y he querido asegurarme de tener suficiente luz para la prueba. Lo importante es que parte del estado de cada fotón es una dirección espacial a la que llamamos polarización. En la época pre-cuántica, esto se explicaba postulando que la luz era una vibración transversal, como la de una cuerda de violín, y la polarización se entendía como la dirección transversal en la que vibraba la cuerda. No era una interpretación gratuita: según las ecuaciones de Maxwell, efectivamente, la luz se propaga como oscilaciones transversales de los campos eléctricos y magnéticos, con la propiedad adicional de que estos dos campos oscilan formando un ángulo de 90º.

Los fotones que salen del Sol y de la lámpara de caca de yeti no tienen una polarización preferente. Cada fotón, individualmente, puede estar oscilando en cualquier dirección transversal a su línea de propagación. Hay que tener presente que una dirección y la dirección opuesta en 180º actúan de la misma manera si sólo tenemos en cuenta la polarización. Existe otra variable en el estado cuántico, que es la fase, que ignoraremos en este experimento.

El filtro polarizador

Un filtro polarizador es una lámina semitransparente que deja pasar solamente los fotones que oscilan en una dirección determinada (o en la dirección opuesta). Al menos, esta es la interpretación clásica, que tendremos que refinar un poco para tener en cuenta los fenómenos puramente cuánticos. Por ejemplo:

  • El filtro actúa fotón a fotón, no colectivamente.
  • Supongamos que el filtro está orientado verticalmente. Si le llega un fotón orientado a 0º (respecto a la dirección vertical), el fotón pasa. Si llega un fotón polarizado a 90º, el fotón no pasa ni sobornando al portero.
  • ¿Qué pasa, sin embargo, cuando el fotón está «polarizado a 45º»?

Tenemos que empezar a pensar cuánticamente para obtener la respuesta correcta. El filtro es un aparato de medición, y como tal, define un operador autoadjunto sobre el estado cuántico. Eso significa que el filtro induce una base vectorial en $\mathbb{C}^2$ formada por dos vectores. Vamos a llamar a esos dos vectores $\vert\uparrow\rangle$ y $\vert\rightarrow\rangle$. Entonces, podemos encontrar fotones en cada uno de estos casos, entre muchos otros:
$$
\eqalign{
\vert\uparrow\rangle&\quad 0º\cr
\vert\rightarrow\rangle&\quad 90º\cr
\frac{1}{\sqrt{2}}\vert\uparrow\rangle + \frac{1}{\sqrt{2}}\vert\rightarrow\rangle&\quad45º
}$$Cuando el filtro está orientado verticalmente, los fotones con estado $\vert\uparrow\rangle$ pasan sin problemas, y los que están en estado $\vert\rightarrow\rangle$ se bloquean. Si un fotón está polarizado en 45º, la Naturaleza, o Azatoth, o quien usted prefiera, tira una moneda y lo deja pasar con una posibilidad de $\frac{1}{2}$. Si el estado es más complicado, como en este caso:
$$
\alpha\vert\uparrow\rangle + \beta\vert\rightarrow\rangle
$$el fotón pasará con una probabilidad igual a:
$$
\frac{\alpha^2}{\alpha^2 + \beta^2}
$$Y si nos dan el estado con $\alpha$ y $\beta$ normalizados, la posibilidad de que el fotón supere la prueba es, simplemente, $\alpha^2$.

Esto se repite fotón por fotón. Si la distribución de las polarizaciones es uniforme, podemos hacer el cálculo exacto de cuál es la esperanza $\mathbb{E}$ del porcentaje de fotones que supera el filtro. No he hecho el cálculo: os lo dejo como ejercicio. En cualquier caso, el efecto será que la luz se atenúa un poco al pasar por el filtro, porque una parte de los fotones no sobreviven a la prueba. En el vídeo, hago rotar la orientación del filtro para que veáis que da igual la orientación de este primer filtro. Cada ángulo de rotación implica una base diferente para el estado cuántico, pero al final, el número de fotones que pasan es el mismo.

Colapso

El filtro polarizador colapsa el estado cuántico inicial.

A los físicos no les gusta la frase anterior, por lo general, pero es la mejor forma que conozco de explicar cómo funciona la medición en un sistema cuántico. Todos los coeficientes $\beta$ de los fotones desaparecen, porque todos los fotones que pasan el filtro se quedan en el estado $\vert\uparrow\rangle$. No solamente eso, sino que cualquier información codificada en la distribución previa de los estados de polarización desaparece tras aplicar el filtro. Todos los fotones que forman el rayo de salida del filtro están alineados verticalmente (respecto a la orientación del filtro), como buenos soldaditos.

Un segundo filtro

Para comprobar la afirmación anterior, vamos a introducir un segundo filtro en el experimento. En el vídeo, hago girar el segundo filtro respecto al primero. Cuando los dos filtros están alineados, el vector propio favorecido por el segundo filtro es idéntico al primero. ¡Y todos los fotones que salen del primero ya están alineados en esa dirección! O dicho equivalentemente: están en el estado cuántico apropiado. Por supuesto, no se nota que hay un segundo filtro.

Pero si roto el segundo filtro noventa grados, la luz se bloquea. ¿Por qué? Pues porque en la base de vectores propios inducida por el segundo filtro, todos los fotones del primer filtro están en el estado $\vert\rightarrow^\prime\rangle$. Es decir, están todos los fotones en el estado desafortunado.

Observad que he puesto un acento $\prime$ tras la flecha horizontal del estado. Esto es porque tenemos dos bases vectoriales: la del primer filtro y la del segundo. Si uso la misma notación para las dos bases, nos vamos a confundir. Con este convenio, $\vert\uparrow\rangle$ es el primer vector de la base del primer filtro, y $\vert\uparrow^\prime\rangle$ es el primer vector de la base del segundo. Y así sucesivamente.

Por supuesto, si el ángulo relativo de rotación entre los filtros es cualquier otro valor intermedio, vamos a conseguir que la luz se atenúe, sin bloquearse completamente. No hay nada paradójico ni (creo) difícil de comprender en el experimento con hasta dos filtros. De momento, dejamos los dos filtros cruzados, para que bloqueen toda la luz de la lámpara de caca de yeti.

Más filtros, más luz

La paradoja aparece cuando introducimos un tercer filtro en el montaje. Si ponemos el tercer filtro antes o después de los dos primeros, seguimos bloqueando completamente la luz. Pero si rotamos el tercer filtro en un ángulo de 45º y lo introducimos entre los dos filtros originales, ¡sorpresa!, la luz vuelve a pasar.
Veamos la secuencia de pasos por la que un fotón puede sobrevivir a los tres filtros:

  1. Un alegre e ingenuo fotón con estado $\alpha\vert\uparrow\rangle + \beta\vert\rightarrow\rangle$ se acerca al primer filtro. Voy a asumir que el estado está normalizado, por simplicidad.
  2. El primer filtro deja pasar a este fotón, con probabilidad $\alpha^2$ y colapsa su función de onda, machacando su $\beta$. El fotón ha sobrevivido, al precio de quedarse más tieso que un perchero. Su estado es ahora $\vert\uparrow\rangle$.
  3. El fotón llega al filtro del medio, que está girado 45º. ¿Cree usted que al filtro intermedio le importa que el fotón venga orientado a lo largo de un vector propio del primer filtro? ¡Ni hablar! El filtro del medio va a ver al fotón en un estado bastardo $\frac{1}{\sqrt{2}}\vert\uparrow^\prime\rangle + \frac{1}{\sqrt{2}}\vert\rightarrow^\prime\rangle$. Observad los acentos: estamos hablando de la base del filtro del medio, que es diferente a la primera base.
  4. Por lo tanto, nuestro vapuleado fotón tiene la mitad de las papeletas para sobrevivir a su segundo encontronazo. Supongamos que sobrevive. Repita conmigo ahora: el precio que va a pagar es quedarse en el estado $\vert\uparrow^\prime\rangle$.
  5. Y esto empieza a sonar repetitivo. Nos acercamos al tercer filtro, que está rotado otros 45º. Nuestro disciplinado fotón, que ya estuvo mirando hacia el Polo Norte, viene ahora mirando hacia Cuenca, pero al tercer filtro se la trae al pairo. Para el último filtro, el fotón está en el estado $\frac{1}{\sqrt{2}}\vert\uparrow^{\prime\prime}\rangle + \frac{1}{\sqrt{2}}\vert\rightarrow^{\prime\prime}\rangle$. Hay dos acentos ahora en los vectores de la base. Por supuesto, el fotón tiene una probabilidad de $0.5$ de sobrevivir. La mitad caerá en combate, pero una parte pasará la última prueba. Y se hará la luz.

Y ya se me han acabado los filtros, lo prometo.

Categorías
Quantum

Mediciones

Con esta entrada puedo ganarme la enemistad de algún físico fanático. En cuanto alguno lea la frase «colapso de la función de onda» sufrirá un ataque de epilepsia. Esto tiene que ver con las interpretaciones filosóficas de la mecánica cuántica, de las que hay muchas. Por fortuna, no hay ambigüedad la forma de realizar cálculos. Y por suerte para nosotros, en Computación Cuántica tendremos que lidiar casi siempre con un único observable. Siento mucho inundarle con más contenido que el estrictamente necesario, pero mi teoría es que en conocimientos, más es siempre más.

Dos principios

En la entrada anterior presenté tres axiomas. Ahora nos toca ver dos principios adicionales.

  • La aplicación de operador observable a un sistema cuántico provoca un colapso del estado a uno de los vectores propios (eigenvectors) de dicho operador.
  • La probabilidad de que un vector propio concreto sea el elegido depende de la magnitud al cuadrado de su amplitud asociada en el estado cuántico anterior a la observación. Este principio se conoce como «regla de Born».

Estos dos principios se tratan por separado por estar asociados a un proceso físico diferente del de los axiomas. La visión del mundo (o Weltanschauung, porque me gusta el palabro alemán) que se infiere de los tres axiomas es muy diferente a la que surge de estos dos nuevos principios. En el mundo de los tres axiomas, el estado cuántico evoluciona de forma determinista y reversible. No hay nada probabilístico en la ecuación de Schrödinger. A este modelo se le conoce como «evolución unitaria», por razones que veremos más adelante.

En cambio, los dos nuevos principios corresponden al proceso conocido como medición. Se trata de un proceso irreversible y probabilístico, en el que se pierde buena parte de la información existente en la función de onda anterior a la medición.

La mayoría de los físicos creen (en el sentido de creer en los dioses del Olimpo o en Nyarlathotep) que el proceso de medición y la regla de Born podrían derivarse de los tres axiomas. Nadie ha podido demostrarlo, de momento. En el otro bando, hay quienes creen que hace falta ampliar la ecuación de Schrödinger, o que el colapso tiene que ver con discordancias en el espaciotiempo, y que hace falta una teoría cuántica de la gravitación para explicar esta parte. Personalmente, no me parece descabellado. Al fin y al cabo, la gravedad destruye información en los agujeros negros (nadie ha observado experimentalmente la radiación de Hawking). En cualquier caso, mi opinión sobre estos temas es la de un absoluto profano.

El estado como superposición

Vamos a ocuparnos del primer principio. Recordemos que, de acuerdo a los axiomas, un «observable» es un operador auto-adjunto que actúa sobre los vectores de un espacio vectorial complejo. Exigimos que sea auto-adjunto, además, para que sus valores propios sean números reales.

Para simplificar, usaré como ejemplo el sistema más simple: un ordenador cuántico con sólo 1 qubit. El estado cuántico, en este caso, es un vector complejo en $\mathbb{C}^2$. Es decir, el estado se describe mediante dos números complejos:
$$
\alpha\hat e_1 + \beta\hat e_2
$$La clave, en este punto, es averiguar qué son esos $\hat e_1$ y $\hat e_2$ que han aparecido de la nada. Son dos vectores unitarios (longitud igual a uno) que definen una «base» en el espacio vectorial. ¿Cuál base, en concreto? Necesitamos algo más de información para poder dar respuesta a esta pregunta…

La respuesta consiste en que este ordenador de un qubit debe ofrecer un «operador observable», cuya implementación exacta es cosa del hardware. Lo que nos importa es que ese operador va a definir implícitamente una base formada por sus vectores propios. ¿Cuántos vectores propios tiene un operador auto-adjunto en $\mathbb{C}^2$? Tiene dos, por supuesto: es un espacio de dos dimensiones, ¿no?. Podemos seguir llamándolos $\hat e_1$ y $\hat e_2$… o podemos ser más prácticos y llamarlos $\vert 0\rangle$ y $\vert 1\rangle$. Con esto, ya podemos afinar un poco más la definición del estado cuántico del qubit. Siempre podrá describirse como una combinación lineal de estos dos vectores o estados especiales:
$$
\alpha\vert 0\rangle + \beta\vert 1\rangle
$$La base formada por los vectores $\vert 0\rangle$ y $\vert 1\rangle$ se conoce como base computacional o, en inglés, computational basis. Al observable cuyo operador tiene esta base como vectores propios, voy a llamarlo, por motivos que desvelaremos a su debido tiempo, $M_z$.

La Regla de Born

Vamos a darle valores concretos a $\alpha$ y $\beta$. Supongamos que el estado del qubit es el siguiente:
$$
\vert 0\rangle + \vert 1\rangle
$$La regla de Born nos dice que, si aplicamos la medición $M_z$ a este estado, obtendremos como resultado el vector $\vert 0\rangle$ en la mitad de los experimentos, y $\vert 1\rangle$ en la otra mitad de las veces. Supongamos, por el contrario, que el estado es:
$$
3\vert 0\rangle + 4\vert 1\rangle
$$En este caso, obtendremos $\vert 0\rangle$ con una probabilidad de $\frac{9}{25}$, esto es, un 36% de los casos. Y obtendremos $\vert 1\rangle$ con una probabilidad de $\frac{16}{25}$, que es el 64%.

¿Y si el estado inicial es directamente $\vert 0\rangle$? Pues en este caso, siempre saldrá $\vert 0\rangle$ como resultado. En general, si el estado cuántico es éste:
$$
\alpha\vert 0\rangle + \beta\vert 1\rangle
$$la probabilidad de que obtengamos $\vert 0\rangle$ es
$$
\frac{\alpha^2}{\alpha^2+\beta^2}
$$y la probabilidad de que salga $\vert 1\rangle$ es la complementaria.

Normalización

Un médico no debe hacer daño, y un escritor técnico nunca debe confundir al lector. A quienes ya conocen algo de Mecánica Cuántica les extrañará que haya puesto el siguiente estado como ejemplo:
$$
\vert 0\rangle + \vert 1\rangle
$$¿Por qué? Pues porque los estados suelen representarse de manera que su longitud sea la unidad: $\vert\vert\psi\vert\vert =1$. Se trata de un convenio, simplemente. El estado anterior normalmente se escribe así:
$$
\frac{1}{\sqrt 2}\vert 0\rangle + \frac{1}{\sqrt 2}\vert 1\rangle
$$En general, como convenio se pide lo siguiente:
$$
\alpha\vert 0\rangle + \beta\vert 1\rangle\quad\alpha\alpha^* + \beta\beta^* = 1
$$Como $\alpha$ y $\beta$ son números complejos, hemos tenido que multiplicarlos por sus respectivos conjugados. La diferencia entre normalizar los estados y no normalizarlos consiste en que, si no los normalizamos, tendremos que hacer malabares con la norma del estado en algunas fórmulas. Por lo tanto, de ahora en adelante, el estado que representábamos como $3\vert 0\rangle + 4\vert 1\rangle$ lo escribiremos como $0.6\vert 0\rangle + 0.8\vert 1\rangle$ para evitar problemas.

En una exposición más rigurosa de la Mecánica Cuántica tendríamos que haber empezado diciendo que el estado cuántico se representa mediante un «rayo» en $\mathbb{C}^n$. O más oscuramente, que es un elemento de un espacio proyectivo de $\mathbb{C}^n$. Chino mandarín, vamos, pero ya sabemos qué es lo que quieren decir.

Categorías
Quantum

Estado cuántico

Este blog se llama Quantum Insights porque mi intención inicial era dedicarlo a la Computación Cuántica. Me he distraído un poco con los preliminares, pero es hora ya de saltar a la materia que nos interesa. No nos hará falta saber mucha Física para aprender, pero un poco no nos vendrá mal tampoco.

Mi plan para las próximas entradas es el siguiente: primero, voy a explicar qué es el «estado cuántico», a grandes rasgos. Segunda entrada: el proceso de medición. En la tercera entrada ya veremos, entonces, cómo se define un ordenador cuántico. Entiendo que, por mucho que simplifique, siempre hay temas que necesitarán aclaraciones. Utilice los comentarios ad libitum, y si lo cree necesario, envíeme un correo electrónico. Mi cuenta es mi nombre, Ian, más el dominio de este blog.

Tres axiomas

La primera mitad de la Mecánica Cuántica se explica con estos tres axiomas:

  • El estado de un sistema cuántico se describe mediante un vector en un espacio vectorial complejo $\cal H$, dotado de un producto interior hermitiano.
  • Los observables del sistema se corresponden con operadores lineales auto-adjuntos en $\cal H$.
  • La evolución en el tiempo del estado cuántico está determinada por la ecuación de Schrödinger.

Hay un montón de términos técnicos, y por ello vamos a dedicar varias secciones a cada axioma.

Espacios de Hilbert (I)

Lo primero es ver qué es un espacio vectorial complejo. Llevamos unas cuantas entradas hablando de vectores a secas, por lo que imagino que el concepto es más o menos intuitivo. Los vectores más populares son los vectores euclidianos: tres valores reales, como en $(1.2,\,2,\,-33)$. No obstante, los vectores que nos interesan para la Mecánica Cuántica tienen dos diferencias importantes:

  1. Cada componente de estos vectores va a ser un número complejo, en vez de un número real.
  2. En el espacio euclidiano hay tres dimensiones. El estado cuántico puede tener, dependiendo del sistema que se estudie, un número diferente de dimensiones. Puede ser un número finito o infinito de dimensiones. Y cuando hay infinitas dimensiones, puede tratarse de infinito numerable o infinito no numerable. Sí: manda…

No se asuste: los estados cuánticos que se manejan en Computación Cuántica son espacios finitos, y el número de dimensiones es una potencia de dos, como en $2^N$, donde $N$ es el número de qubits del sistema. Por ejemplo, dedicaremos algún tiempo a estudiar el sistema de 1 qubit, por ser el más sencillo posible. El estado de un qubit, por lo antes dicho, se puede representar como un vector de dos dimensiones complejas, como estos ejemplos:
$$
\eqalign{(0,&\,1)\cr
(0.7071 + 0.7071i,&\, 0.7071 – 0.7071i)}
$$Estos espacios vectoriales complejos, una vez que definimos un producto interior hermitiano (no lo hemos hecho todavía) se conocen como espacios de Hilbert, si tienen una propiedad adicional: que sean espacios métricos completos. Los espacios que se utilizan en computación cuántica tienen dimensiones finitas, y cumplen automáticamente con esta regla. De ahí, la $\cal H$ caligráfica que se menciona en los axiomas.

Producto interior hermitiano (I)

Dos vectores se pueden sumar y restar entre sí, y es fácil imaginar cómo se hace: componente a componente. También se puede multiplicar un vector por un escalar, casi como con los vectores euclidianos. La diferencia está en que el escalar ahora es un número complejo. Esta multiplicación, naturalmente, también se calcula componente a componente. Por ejemplo:
$$\eqalign{
(0,\, 1)+(i,\, 0)=&(i,\, 1)\cr
i\cdot(i,\, 1)=&(-1,\, i)}
$$Los vectores euclidianos tienen una operación de multiplicación escalar entre vectores, que recibe dos vectores y devuelve un número real. Cuando el espacio vectorial es complejo, sin embargo, esta operación se complica. El problema está en cómo se define la longitud de un vector. En un espacio euclidiano, acostumbramos a calcular el producto interior del vector consigo mismo, y aplicarle entonces la raíz cuadrada:
$$
\vert\vert v \vert\vert = \sqrt{v \cdot v}
$$Si queremos que las longitudes de los vectores complejos sean reales y positivas, entonces tenemos que ajustar la definición del producto interior para que, al menos, el producto de un vector consigo mismo sea no solamente real, sino además positivo. La generalización necesaria es sencilla. Supongamos que tenemos un par de vectores, $x$ e $y$, con componentes reales. En este caso, el producto interior se define clásicamente así:
$$
\eqalign{
x =& [x_1,x_2,x_3\cdots x_n]\cr
y =& [y_1,y_2,y_3\cdots y_n]\cr
x \cdot y =& \sum_{i=1}^n{x_i y_i}
}$$Estos son los productos escalares que hemos estado calculando a gogó en entradas anteriores.

Ahora supongamos que los componentes de estos vectores son complejos. La conjugada de un número complejo se define como un segundo número complejo con la misma parte real y la negación de la parte imaginaria del número original:
$$
(a + b i)^* = a – b i
$$El producto interior de dos vectores con componentes complejos es, entonces:
$$
x \cdot y = \sum_{i=1}^n{x_i^* y_i}
$$En el caso de los vectores reales, el producto interior es simétrico. Esto es, $x \cdot y = y \cdot x$. Pero para vectores complejos, la propiedad que se cumple es la siguiente:
$$
x \cdot y = (y \cdot x)^*
$$La igualdad anterior es fácil de demostrar si nos vamos a la definición de producto interior en espacios complejos. Lo que nos importa ahora es lo que ocurre cuando se toma el producto interior de un vector complejo consigo mismo:
$$
x \cdot x = (x \cdot x)^*
$$Esto significa que el valor del producto interior de un vector consigo mismo es, a la vez, igual a su valor conjugado. Pero esto sólo puede ocurrir cuando el valor es real, o sea, cuando la parte imaginaria es cero. Podemos incluso ir más lejos, y demostrar que el producto interior complejo que acabamos de definir es siempre no negativo cuando se multiplica cualquier vector consigo mismo. Por lo tanto, podemos seguir definiendo la longitud de un vector en un espacio complejo como antes:
$$
\vert\vert x \vert\vert = \sqrt{x \cdot x}
$$

La notación de Dirac (I)

Hagamos una pequeña pausa: resulta que para calcular un producto escalar, necesitamos una versión modificada de uno de los vectores… y no del otro. Pero el operador que hemos utilizado para el producto interior (el punto) «sugiere» que se trata de un operador simétrico (y no lo es). A Paul Adrien Maurice Dirac se le ocurrió una idea: digamos que a todo espacio vectorial $\mathbb{C}^n$ le corresponde automáticamente un espacio vectorial dual, y que entre ambos espacios hay una transformación biunívoca. El dual de un vector es un vector con los mismos componentes, pero conjugados. A los elementos del espacio vectorial original los llamaremos «kets» y los escribiremos de esta manera:
$$
\vert \psi \rangle
$$A los vectores del espacio dual los llamaremos «bras», y el dual del «ket» anterior se representa así:
$$
\langle \psi \vert
$$Lo que haremos a continuación es definir el producto interior como una operación que siempre toma un primer operando de tipo «bra» y un segundo operando de tipo «ket». Si yo quiero calcular el producto interior de $\vert \phi \rangle$ con $\vert\psi \rangle$, tengo que convertir antes el primer operando en un «bra», y sólo entonces puedo obtener el producto interior:
$$
\langle \phi \vert \psi \rangle
$$La expresión anterior es un número complejo, un escalar, y se cumple la antisimetría conjugada:
$$
\langle \phi \vert \psi \rangle = \langle \psi \vert \phi \rangle ^*
$$Naturalmente, la longitud de un vector, no importa si es bra o ket, puede definirse así:
$$
\vert\vert \psi \vert\vert = \sqrt{\langle\psi\vert\psi\rangle}
$$Siendo rigurosos, esto es un poco de abuso de notación. Pero no nos supondrá problema alguno.

Observables (II)

Toca explicar qué narices es el operador lineal auto-adjunto del segundo axioma. No es complicado: si el espacio vectorial es un espacio de dimensiones finitas, como en Computación Cuántica, un operador es simplemente una matriz con componentes complejos. Si tuviésemos que tratar con espacios de infinitas dimensiones, tendríamos que hilar un poco más fino, pero no es necesario en nuestro caso.

¿Recuerda que nuestro producto interior no es simétrico? Este detalle provoca que, en general, aplicar un operador al bra y al ket tengan resultados diferentes. En términos generales:
$$
\langle Ax\vert y\rangle\neq\langle x\vert Ay\rangle
$$Si queremos mover el operador $A$ al otro lado de la barra central, tenemos que transformar el operador $A$ en su adjunto $A^{*}$:
$$
\langle Ax\vert y\rangle = \langle x\vert A^{*}y\rangle
$$A nivel de celdas, la adjunta de una matriz es una matriz transpuesta creada a partir de los valores conjugados de sus componentes. Por ejemplo:
$$
\pmatrix{1&-2-i\cr 1+i&i}^* = \pmatrix{1&1-i\cr -2+i&-i}
$$Un operador auto-adjunto, simplemente, es un operador que no cambia al calcular su adjunto: $A = A^*$. Por ejemplo:
$$
\pmatrix{0&-i\cr i&0}^* = \pmatrix{0&-i\cr i&0}
$$Por lo tanto, si volvemos al producto interior, si el operador $A$ es auto-adjunto, se cumple que:
$$
\langle Ax\vert y\rangle = \langle x\vert Ay\rangle
$$¿Qué importancia tienen los operadores auto-adjuntos? Pues que los valores propios, o eigenvalues, de un operador auto-adjunto en un espacio vectorial complejo, son siempre valores reales. Este es el dato técnico. Pasemos a la interpretación física:

  1. Un «observable» de un sistema cuántico es simplemente una propiedad física del sistema que podemos medir. Ejemplos: la posición de una partícula, la velocidad de una partícula, la orientación del espín respecto a una dirección predeterminada, etc, etc.
  2. Nosotros no vamos a medir la velocidad de una partícula en Computación Cuántica. Lo advierto para la salud mental de todos nosotros. El «observable» que vamos a manejar prácticamente siempre en un ordenador cuántico es el estado binario de sus qubits. Esto lo veremos con más detalles en el momento adecuado.
  3. Como bien dice el axioma, cada «observable» se asocia a un operador auto-adjunto.
  4. El valor del observable se obtiene mediante un proceso de «medición», que veremos en la próxima entrada.
  5. Matemáticamente, la medición consiste en escoger probabilísticamente uno de los valores propios del operador asociado al observable.
  6. Como las cantidades físicas suelen ser magnitudes reales (las anoréxicas tienen una masa compleja, con una parte real y otra imaginaria), tenemos que exigir que los operadores observables tengan esta conveniente propiedad de ser auto-adjuntos.

La ecuación de Schrödinger (III)

Ya llegamos al tercer axioma, que es donde se menciona por primera vez la ecuación de Schrödinger:$$
i\hbar{d \over dt}\vert \psi(t) \rangle=H\vert \psi(t) \rangle
$$Tengo una buena noticia: ¡no necesitaremos resolver la ecuación de Schrödinger! Al menos, mientras no tengamos que enredarnos con el hardware a muy bajo nivel, claro. Sin embargo, menciono la dichosa ecuación porque conocerla nos va a ayudar a comprender mejor las reglas de la Computación Cuántica.

A la derecha de la igualdad tenemos la derivada temporal de la función de onda. Y a la izquierda, el operador de Hamilton del sistema. En pocas palabras: se trata de una ecuación lineal. Si $\vert \psi_0\rangle$ es una solución de la ecuación, y también lo es $\vert \psi_1\rangle$, entonces cualquier combinación
$$\alpha\vert \psi_0\rangle + \beta\vert \psi_1\rangle
$$donde $\alpha$ y $\beta$ son números reales, vale también como solución.

En la próxima entrada de este blog, trataremos el modelo de medición sobre un sistema cuántico.

Categorías
FinTech

Covarianza

Recordemos cómo se define la varianza de una variable aleatoria X:
$$
Cov(X, Y) = \mathbb{E}[(X – \mathbb{E}[X])^2]
$$Vamos a suponer que tenemos, en vez de una, dos variables aleatorias, $X$ e $Y$. Si manipulamos un poco la definición de varianza, obtendremos la definición de la covarianza entre dos variables:
$$
Cov(X, Y) = \mathbb{E}[(X – \mathbb{E}[X])*(Y – \mathbb{E}[Y])]
$$Según esta definición, la varianza de una variable es la covarianza de la variable consigo misma, por lo que la definición parece tener sentido:
$$
Var(X) = Cov(X, X)
$$Además, la covarianza es simétrica respecto a los argumentos:
$$Cov(X,Y)=Cov(Y,X)
$$La interpretación de la covarianza no es del todo inmediata. En este caso sencillo, si la covarianza es positiva, cuando la $X$ aumenta, también aumenta la $Y$: las variaciones van coordinadas en la misma dirección. Si la covarianza es negativa, cuando $X$ aumenta, la $Y$ disminuye. Si la covarianza es cero, son variables independientes. Sin embargo, para medir el grado de relación entre dos variables aleatorias, existe una medida mejor, llamada precisamente correlación. Dedicaré, en otro momento, una entrada a la correlación. De momento, puedo adelantar que la correlación es una forma de covarianza «normalizada» para que sus valores vayan siempre entre menos uno y uno.

Matrices de covarianza

Los valores de las varianzas y la covarianza de dos variables se pueden organizar en una tabla o matriz:
$$\pmatrix{Cov(X,X)&Cov(X,Y)\cr Cov(Y,X)&Cov(Y,Y)}
$$
Esto nos interesa porque el siguiente paso es extender la definición de covarianza a cualquier número de variables aleatorias. Por ejemplo, con tres variables aleatorias:
$$
\pmatrix{c_{1,1}&c_{1,2}&c_{1,3} \cr c_{2,1}&c_{2,2}&c_{2,3} \cr c_{3,1}&c_{3,2}&c_{2,3}}
$$Como es fácil de entender, una matriz de covarianza es una matriz simétrica, por definición.

Matrices semidefinidas positivas

Una matriz de covarianza tiene siempre la interesante propiedad de ser semidefinida positiva. Para todo vector x se debe cumplir lo siguiente:
$$
\forall x : x^T \cdot \Sigma \cdot x \ge 0
$$Vamos a interpretar geométricamente la propiedad en cuestión. Lo que estamos haciendo es transformar el vector x con la matriz de covarianza. Luego calculamos el producto escalar del vector respecto al vector transformado. Si decimos que ese producto escalar es mayor o igual a cero, estamos diciendo que, sin importar el número de dimensiones del vector y la matriz, el ángulo entre el vector y el vector transformado está siempre entre -π/2 y +π/2. En otras palabras, la matriz nunca «retuerce» demasiado los vectores que transforma.

¿Nos sirve de algo esta imagen visual? Pues no lo sé. Pero me gusta tener presente este tipo de interpretaciones gráficas. Por experiencia, terminas encontrándole un uso más tarde o más temprano.

Esto sí es importante: una matriz semidefinida positiva tiene, obligatoriamente, un determinante mayor o igual que cero. Este criterio puede servir para descartar rápidamente matrices de covarianza mal construidas. De hecho, si el determinante es cero, es porque existen variables aleatorias redundantes.