La computación cuántica está cada día más cerca. Recientemente IBM anunció el primer ordenador cuántico comercial, que, a pesar de sus limitaciones, es un primer paso en el camino. Además, tanto IBM como Microsoft, con Q#, disponen de herramientas para probar algoritmos cuánticos. Existiendo ya formación disponible en estas tecnologías. En esta entrada se van a explicar las bases de la computación cuántica y las puertas lógicas cuánticas.
A continuación, se comienza con uno de los conceptos básicos en computación cuántica, los cúbits (bit cuántico, en inglés quantum bit o qubit). Posteriormente se verá cómo operar con ellos mediante la utilización de puertas lógicas cuánticas y se mostrarán algunas de las más conocidas..
Bits y cúbits
En los ordenadores "clásicos" los programas son básicamente una serie de 0 y 1. Una serie de estados binarios discretos. En los ordenadores cuánticos esto cambia radicalmente, ya que operan con estados continuos entre 0 y 1. Lo que se conoce como un cúbit. Siendo esto lo que los hace mucho más potentes.
Si hacemos una analogía los bits clásicos son como un interruptor de la luz, que solamente tiene dos estados: encendido o apagado. Por otro lado, los cúbits se pueden interpretar como un potenciómetro, en el que se puede fijar cualquier estado intermedio entre encendido y apagado.
Para expresar los estados de los cúbits se puede utilizar la notación de Dirac. En esta cada uno de los estados se puede asociar con un vector, para el cúbit 0 se puede utilizar
\lvert 0 \rangle = \begin{bmatrix} 0 \\ 1 \end{bmatrix},
mientras que el 1 se puede representar como
\lvert 1 \rangle = \begin{bmatrix} 1 \\ 0 \end{bmatrix}.
En computación cuántica es posible que exista la superposición de dos estados. Lo que se puede denotar mediante la siguiente expresión
\lvert \Psi \rangle = \alpha \lvert 0 \rangle + \beta \lvert 1 \rangle
donde \alpha y \beta son valores complejos tal que la suma de sus cuadrados es la unidad. Ambos valores se pueden interpretar como la "probabilidad" de que el cúbit este en un estado u otro.
Medida de los estados de un cúbit
Como se ha comentado anteriormente los cúbits son estados cuánticos. Los cuales no tiene un valor determinado hasta que se realiza una medida, lo que se llama colapso. En el momento de la medida el cúbit toma solamente un valor de los posibles o bien \lvert 0 \rangle o bien \lvert 1 \rangle . Pero nunca se puede observar una combinación de ambos. Además, en el momento de la medida se pierde completamente los valores que tenían previamente \alpha y \beta.
A la hora de medir un cúbit generalmente se obtiene el estado \lvert 0 \rangle con probabilidad |\alpha|^2 y el estado \lvert 1 \rangle con probabilidad |\beta|^2. Por lo que, los resultados siempre se obtienen en términos de probabilidad.
Es decir, si tememos un estado con los valores de \alpha y \beta igual a \frac{1}{\sqrt{2}}. La probabilidad de obtener tanto \lvert 0 \rangle como \lvert 1 \rangle es del 50%. Debido a que \left| \frac{1}{\sqrt{2}} \right|^2 = 0,5.
Puertas lógicas cuánticas
En la computación clásica se utilizan las puertas lógicas para operar con los bits. El análogo en computación cuántica son las puertas lógicas cuánticas.
Una puerta lógica básica es aquella que implementar un el operador lógico NOT, en el que se cambia el estado del bit por su opuesto. Es decir, si el bit inicialmente era un 0 lo transforma en un 1 y si era un 1 los transforma en 0. Algo sencillo. En computación cuántica se puede definir un operador lógico análogo que cambia las probabilidades de un cúbit. Es decir, una puerta lógica cuántica NOT convierte el cúbit \alpha \lvert 0 \rangle + \beta \lvert 1 \rangle en \beta \lvert 0 \rangle + \alpha \lvert 1 \rangle.
Puertas lógicas en forma matricial
Las puertas lógicas se pueden expresar en notación matricial. Así, la puerta lógica cuántica NOT tiene la forma:
\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}
Lo que se puede comprobar simplemente operado con ella sobre un estado.
X \lvert 0 \rangle = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} 0 \\ 1 \end{bmatrix} = \lvert 1 \rangle
Esta puerta lógica cuántica es la que se llama puerta X de Pauli.
Limitaciones de las puertas lógicas cuánticas
Los valores de \alpha y \beta no puede ser cualquiera. La suma de albos al cuadrado tiene que ser siempre la unidad. Ya que la probabilidad de observar algún estado ha de ser igual a uno. Esta condición no se puede violar ni siquiera después de aplicar una puerta lógica. Por lo que esta condición limita las posibles puertas lógicas cuánticas que se pueden implementar. Lo que en término de matrices se cumple si la matriz que define la operación es unitaria.
Las matrices unitarias son aquellas matrices complejas que satisfacen la condición
donde U es una matriz, U^* es su transpuesto conjugado y I es la matriz identidad.
Esta condición hace que algunas puertas lógicas clásicas no puedan tener su equivalente en computación cuántica. Pero esto no es un problema, dado que se pueden definir múltiples puertas lógicas que verifiquen la condición de unitariedad.
Conclusiones
En esta entrada se ha visto una introducción a la computación cuántica.
Imágenes: Pixabay (Gerd Altmann)
No te olvides valorar esta entrada
Suscríbete a nuestro boletín
Suscríbete al boletín semanal para estar al día de todas las publicaciones de Analytics Lane.