El cúbit en la computación cuántica
Así como los bits son el objeto fundamental de la información en la computación clásica, los cúbits (bits cuánticos) son el objeto fundamental de la información en la computación cuántica. Para entender esta correspondencia, este artículo examina el ejemplo más sencillo: un solo cúbit.
Representación de un cúbit
Mientras que un bit, o dígito binario, puede tener el valor $0$ o $1$, un cúbit puede tener un valor que sea de $0$, $1$ o una superposición cuántica de $0$ y $1$.
El estado de un solo cúbit puede describirse mediante un vector de columna bidimensional de norma unitaria, es decir, la magnitud al cuadrado de sus entradas debe sumar $1$. Este vector, llamado vector de estado cuántico, contiene toda la información necesaria para describir el sistema cuántico de un cúbit, al igual que un solo bit contiene toda la información necesaria para describir el estado de una variable binaria. Para conocer los conceptos básicos de vectores y matrices en la computación cuántica, consulte Vector y matrices.
Cualquier vector de columna bidimensional de números reales o complejos con norma $1$ representa un posible estado cuántico mantenido por un cúbit. Así, $\begin{bmatrix}\alpha\\\beta\end{bmatrix}$ representa un estado de cúbit si $\alpha$ y $\beta$ son números complejos que satisfacen $|\alpha|^2 + |\beta|^2 = 1$. Algunos ejemplos de vectores de estado cuántico válidos que representan cúbits son:
$$\begin{bmatrix} 1 \\ 0 \end{bmatrix}, \begin{bmatrix} 0 \\ 1 \end{bmatrix}, \begin{bmatrix}\frac{{1}{\sqrt{2}}\\\frac{{1}{\sqrt{2}}\end{bmatrix}, \begin{bmatrix}\frac{1}{\sqrt{{2}}\\\frac{{-1}{\sqrt{2}}\end{bmatrix}, \text{ and }\begin{bmatrix}\frac{1}{\sqrt{{2}}\\\frac{i}{\sqrt{2}}\end{bmatrix}.$$
Los vectores de estado cuántico $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$ y $\begin{bmatrix} 0 \\ 1 \end{bmatrix}$ tienen un papel especial. Estos dos vectores forman una base para el espacio vectorial que describe el estado del cúbit. Esto significa que cualquier vector de estado cuántico puede escribirse como una suma de estos vectores de base. En concreto, el vector $\begin{bmatrix} x \\ y \end{bmatrix}$ puede escribirse como $x \begin{bmatrix} 1 \\ 0 \end{bmatrix} + y \begin{bmatrix} 0 \\ 1 \end{bmatrix}$. Aunque cualquier rotación de estos vectores serviría como base perfectamente válida para el cúbit, elegimos dar prioridad a esta, a la que llamamos base computacional.
Tomamos estos dos estados cuánticos como correspondientes a los dos estados de un bit clásico, a saber, $0$ y $1$. La convención estándar es elegir:
$$0\equiv\begin{bmatrix} 1 \\ 0 \end{bmatrix}, \qquad 1 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix},$$
aunque también se podría optar por la opción contraria. Así, del infinito número de posibles vectores de estado cuántico de un solo cúbit, solo dos corresponden a estados de bits clásicos; todos los demás estados cuánticos, no.
Medida de un cúbit
Ahora que sabemos cómo representar un cúbit, veremos el concepto de medida para hacernos una idea de lo que representan estos estados. Una medida corresponde a la idea informal de “mirar” un cúbit, que inmediatamente contrae el estado cuántico a uno de los dos estados clásicos $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$ o $\begin{bmatrix} 0 \\ 1 \end{bmatrix}$. Cuando se mide un cúbit dado por el vector de estado cuántico $\begin{bmatrix}\alpha\\\beta\end{bmatrix}$, se obtiene el resultado $0$ con probabilidad $|\alpha|^2$ y el resultado $1$ con probabilidad $|\beta|^2$. En el resultado $0$, el nuevo estado del cúbit es $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$; en el resultado $1$, su estado es $\begin{bmatrix} 0 \\ 1 \end{bmatrix}$. Observe que estas probabilidades suman $1$ debido a la condición de normalización $|\alpha|^2 + |\beta|^2 = 1$.
Las propiedades de la medida también significan que el signo global del vector de estado cuántico es irrelevante. Negar un vector equivale a $\alpha\rightarrow -\alpha$ y $\beta\rightarrow -\beta$. Como la probabilidad de medir $0$ y $1$ depende de la magnitud al cuadrado de los términos, la inserción de estos signos no cambia en absoluto las probabilidades. Estas fases se denominan comúnmente "fases globales" y, más generalmente, pueden tener la forma $e^{i \phi}$ en lugar de solo $\pm 1$.
Una última propiedad importante de la medida es que no daña necesariamente todos los vectores de estado cuántico. Si empezamos con un cúbit en el estado $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$, que corresponde al estado clásico $0$, la medida de este estado siempre dará el resultado $0$ y dejará el estado cuántico sin cambios. En este sentido, si solo tenemos bits clásicos (por ejemplo, cúbits que sean $\begin{bmatrix}1 \\ 0 \end{bmatrix}$ o $\begin{bmatrix}0 \\ 1 \end{bmatrix}$) entonces la medida no daña el sistema. Esto significa que podemos replicar los datos clásicos y manipularlos en un equipo cuántico igual que se podría hacer en un equipo clásico. Sin embargo, la capacidad de almacenar información en ambos estados a la vez es lo que eleva la computación cuántica más allá de lo que es posible de forma clásica, y priva a los equipos cuánticos de la capacidad de copiar datos cuánticos indiscriminadamente. Consulte también el teorema de no clonación.
Visualización de cúbits y transformaciones mediante la esfera bloch
Los cúbits también pueden representarse en $3$D mediante la esfera de Bloch. La esfera de Bloch permite describir un estado cuántico de un solo cúbit (que es un vector complejo bidimensional) como un vector tridimensional de valor real. Esto es importante porque nos permite visualizar los estados de un solo cúbit y, por tanto, desarrollar un razonamiento que puede resultar muy valioso para entender los estados de varios cúbits (donde, lamentablemente, la representación de la esfera de Bloch no funciona). La esfera de Bloch puede visualizarse de la siguiente manera:
Las flechas de este diagrama muestran la dirección hacia la que apunta el vector de estado cuántico y cada transformación de la flecha puede considerarse como una rotación alrededor de uno de los ejes cardinales. Aunque es muy tentador pensar en un cálculo cuántico como en una secuencia de rotaciones, es un reto utilizar esa noción para diseñar y describir algoritmos. Para mitigar este problema, Q# proporciona un lenguaje para describir estas rotaciones.
Operaciones de un solo cúbit
Los equipos cuánticos procesan los datos aplicando un conjunto universal de puertas cuánticas que pueden emular cualquier rotación del vector de estado cuántico. Esta noción de universalidad es similar a la noción de universalidad de la computación tradicional (por ejemplo, la clásica), en la que se considera que un conjunto de puertas es universal si toda transformación de los bits de entrada puede realizarse mediante un circuito de longitud finita. En la computación cuántica, las transformaciones válidas que se nos permite realizar en un cúbit son las transformaciones unitarias y la medida. La operación adjunto o el transpuesto conjugado complejo, es de crucial importancia para la computación cuántica porque se necesita para invertir las transformaciones cuánticas.
Las operaciones de un solo cúbit o las puertas cuánticas de un solo cúbit se pueden clasificar en dos categorías: puertas de Clifford y puertas que no son clifford. Las puertas no clifford constan solo de $puerta T$ (también conocida como puerta $\pi/8$ ).
$$T=\begin{bmatrix} 1 amp; 0 0 &\\ amp; e^{i\pi/4\end{bmatrix}}.& $$
El conjunto estándar de puertas clifford de un solo cúbit, incluido de forma predeterminada en Q#, include
$$H=\frac{{1}{\sqrt{{2}}\begin{bmatrix} 1 & 1 \\ 1 &-1 \end{bmatrix} , \qquad S =\begin{bmatrix} 1 & 0 0 &\\ amp; i \end{bmatrix}= T^2, \qquad X=\begin{bmatrix} 0 & 1 1 \\& 0 \end{bmatrix}= HT^4H,$$
$$Y =0 amp; -i &\\ amp; 0 \end{bmatrix}=T^2HT^4 HT^6, \qquad Z=\begin{bmatrix}1&&\begin{bmatrix} 0 0\\& amp;1 \end{bmatrix}=T^4. $$
Aquí, las operaciones $X$, $Y$ y $Z$ se utilizan con especial frecuencia y se denominan operadores de Pauli en honor a su creador, Wolfgang Pauli. Junto con la puerta no Clifford (la puerta $T$), estas operaciones pueden formularse para aproximar cualquier transformación unitaria sobre un solo cúbit.
Mientras que las anteriores son las puertas primitivas más populares para describir operaciones en el nivel lógico de la pila (piense en el nivel lógico como el nivel del algoritmo cuántico), a menudo resulta práctico considerar las operaciones menos básicas en el nivel algorítmico, por ejemplo, operaciones más cercanas al nivel de descripción de una función. Afortunadamente, Q# también tiene métodos para implementar unitarios de nivel superior que, a su vez, permiten implementar algoritmos generales sin descomponer explícitamente todo hasta las puertas Clifford y $T$.
La más sencilla de estas primitivas es la rotación de un solo cúbit. Normalmente se consideran tres rotaciones de un solo cúbit: $R_x$, $R_y$ y $R_z$. Para visualizar la acción de la rotación $R_x(\theta)$, por ejemplo, imagine que apunta con el pulgar derecho a lo largo de la dirección del eje $x$ de la esfera de Bloch y gira el vector con su mano un ángulo de $\theta/2$ radianes. Este factor de confusión de $2$ surge del hecho de que los vectores ortogonales están separados $180^\circ$ cuando se trazan en la esfera de Bloch, pero en realidad están separados $90^\circ$ grados geométricamente. Las matrices unitarias correspondientes son:
\begin{alinear*}& R_z(\theta) = e^-i\theta Z/2}\begin{bmatrix}= e^{-i\theta/2&}amp; 0 0\\ 0& e^{{i\theta/2\end{bmatrix}}, \\& R_x(\theta) e^{-i\theta X/2=} HR_z(\theta)H =\begin{bmatrix} \cos(\theta/2) & -i\sin(\theta/2)\\ -i\sin(\theta/2) & \cos(\theta/2) \end{bmatrix}, \\& = R_y(\theta) e^-i\theta Y/2=} SHR_z(\theta)HS^\begin{bmatrix}=\dagger \cos(\theta/2) & -\sin(\theta/2)\\ \sin(\theta/2) & \cos(\theta/2) \end{bmatrix}.{= \end{align*}
Al igual que se pueden combinar tres rotaciones cualesquiera para realizar una rotación arbitraria en tres dimensiones, desde la representación de la esfera de Bloch se puede ver que cualquier matriz unitaria también se puede escribir como una secuencia de tres rotaciones. En concreto, para toda matriz unitaria $U$ existe $\alpha,\beta,\gamma,\delta$ de manera que $U= e^{i\alpha} R_x(\beta)R_z(\gamma)R_x(\delta)$. Por lo tanto, $R_z(\theta)$ y $H$ también forman un conjunto de puerta universal, aunque no es un conjunto discreto porque $\theta$ puede tomar cualquier valor. Por esta razón, y debido a las aplicaciones en la simulación cuántica, estas puertas continuas son cruciales para la computación cuántica, especialmente a nivel de diseño de algoritmos cuánticos. Para lograr una implementación de hardware tolerante a los errores, en última instancia se compilarán en secuencias de compuertas discretas que se aproximen a estas rotaciones.