Compartir a través de


Operaciones en varios cúbits

En este artículo se revisan las reglas que se usan para compilar estados de varios cúbits a partir de estados de un solo cúbit y se analizan las operaciones de puerta necesarias para incluir en un conjunto de puertas para formar un equipo cuántico universal de varios cúbits. Estas herramientas son necesarias para comprender los conjuntos de puertas que se usan habitualmente en Q# el código. También son importantes para obtener intuición sobre por qué los efectos cuánticos, como el entrelazamiento o la interferencia, representan la computación cuántica más eficaz que la computación clásica.

Puertas de un solo cúbit y de varios cúbits

La verdadera potencia de la computación cuántica solo se vuelve evidente a medida que aumenta el número de cúbits. Los cúbits únicos poseen algunas características contra intuitivas, como la capacidad de estar en más de un estado en un momento dado. Sin embargo, si todo lo que tuviera en un equipo cuántico fuera puertas de un solo cúbit, una calculadora y ciertamente un superequipo clásico enanoría su potencia computacional.

La capacidad de computación cuántica surge, en parte, porque la dimensión del espacio vectorial de los vectores de estado cuántico crece exponencialmente con el número de cúbits. Esto significa que, aunque un solo cúbit se puede modelar de forma trivial, simular un cálculo cuántico de 50 cúbits podría insertar los límites de los superequipos existentes. Al aumentar el tamaño del cálculo solo un cúbit adicional, se duplica la memoria necesaria para almacenar el estado y se duplica aproximadamente el tiempo de cálculo. Esta duplicación rápida de la potencia computacional es la razón por la que un equipo cuántico con un número relativamente pequeño de cúbits puede superar con creces los superequipos más eficaces de la actualidad y del futuro para algunas tareas de cálculo.

Estados de dos cúbits

Si tiene dos cúbits independientes, uno en el estado $\psi=\begin{bmatrix}\\\beta\end{bmatrix}$\alphay el otro en el estado\end{bmatrix}$\\\gamma\delta$\phi=\begin{bmatrix} , el estado de dos cúbits correspondiente se da mediante el producto tensor (o producto Kronecker) de vectores, que se define como se indica a continuación.

$$\psi\otimes\phi=\begin{bmatrix}\alpha\\\beta\end{bmatrix}\otimes\begin{bmatrix}\gamma\\\delta\end{bmatrix}=\begin{bmatrix}\alpha\begin{bmatrix}\gamma\\\delta\end{bmatrix}\\\beta\begin{bmatrix}\gamma\\\delta\end{bmatrix}\end{bmatrix}=\begin{bmatrix}\alpha\gamma\\\alpha\delta\\\beta\gamma\\\beta\delta\end{bmatrix}. $$

Por lo tanto, dados dos estados $\psi$ de un solo cúbit y $\phi$, cada una de las dimensiones 2, el estado $\psi\otimes\phi$ de dos cúbits correspondiente es de 4 dimensiones. El vector

$$\begin{bmatrix}\alpha_{{00}\\\alpha___{{01}\\\alpha{{10}\\\alpha{{11}\end{bmatrix}$$

representa un estado cuántico en dos cúbits si

$$|\alpha_{00}|^2+|\alpha_{01}|^2+|\alpha_{{10}|^2+|\alpha_{{11}|^2=1.$$

Por lo general, puede ver que el estado cuántico de $n$ cúbits se representa mediante un vector de unidad $v_1 \otimes v_2 \otimes\cdots\otimes v_n$ de dimensión $2 \cdot 2 \cdot 2 \cdots = 2^n$ mediante esta construcción. Al igual que con los cúbits únicos, el vector de estado cuántico de varios cúbits contiene toda la información necesaria para describir el comportamiento del sistema. Para obtener más información sobre los vectores y los productos tensoriales, vea Vectores y matrices en computación cuántica.

La base computacional para los estados de dos cúbits está formada por los productos tensor de estados de base de un cúbit. Por ejemplo, tiene

$$\begin{\begin{align}00 \equiv\begin{bmatrix}1 \\ 0\begin{bmatrix}\end{bmatrix}\otimes 1 \\ 0 \end{bmatrix}&=\begin{bmatrix}1 \\ 0 0\\ 0 \end{bmatrix}\\ ,\qquad 01\begin{bmatrix}\equiv 1 \\ 0 0 \\ \end{bmatrix}\otimes\begin{bmatrix}1=\end{bmatrix}\begin{bmatrix} 0 \\ 1\\ 0 0 0 \end{bmatrix}\\ ,\\ 10\begin{bmatrix}\equiv 0 \\ 1 1 \end{bmatrix}\otimes\begin{bmatrix}\\ 0&\end{bmatrix} amp;=\begin{bmatrix}0 0 1 0 , 11\begin{bmatrix}\equiv 0 \\ 1\begin{bmatrix}\end{bmatrix}\otimes 0 \\ 1 \end{bmatrix}=\begin{bmatrix}0 0 \\ 0\\\\ 1 .\end{bmatrix}\qquad \end{bmatrix}\\\\ \\ \end{align} $$

Tenga en cuenta que, aunque siempre puede tomar el producto tensor de dos estados de un solo cúbit para formar un estado de dos cúbits, no todos los estados cuánticos de dos cúbits se pueden escribir como el producto tensor de dos estados de un solo cúbit. Por ejemplo, no hay ningún estado $\psi=\begin{bmatrix}\alpha\\\beta\end{bmatrix}$ y $\phi=\begin{bmatrix}\gamma\\\delta\end{bmatrix}$ cuyo producto tensorial sea el estado

$$\psi\otimes\phi=\begin{bmatrix} 1/\sqrt{{2}\\ 0 \\ 0 \\ 1/\sqrt{{2}\end{bmatrix}.$$

Este estado de dos cúbits, que no se puede escribir como el producto tensorial de los estados de un solo cúbit, se denomina &"estado entrelazado"&. Se dice que los dos cúbits están entrelazados. En términos generales, dado que el estado cuántico no se puede pensar como un producto tensorial de estados de cúbits únicos, la información que contiene el estado no se limita a ninguno de los cúbits individualmente. En su lugar, la información se almacena de forma no local en las correlaciones entre los dos estados. Esta no localidad de la información es una de las principales características distintivas de la computación cuántica sobre la computación clásica y es esencial para una serie de protocolos cuánticos, incluida la corrección de errores cuánticos.

Medición de estados de dos cúbits

La medición de estados de dos cúbits es muy similar a las mediciones de un solo cúbit. La medición del estado

$$\begin{bmatrix}\alpha_{{00}\\\alpha___{{01}\\\alpha{{10}\\\alpha{{11}\end{bmatrix}$$

produce $00$ con probabilidad $|\alpha_{{00}|^2$, $01$ con probabilidad $|\alpha_{01}|^2$, $10$ con probabilidad $|\alpha_{{10}|^2$ y $11$ con probabilidad $|\alpha_{11}|^2$. Los nombres de las variables $\alpha_{00}, \alpha_{{01}, \alpha_{{10},$ y $\alpha_{11}$ se eligieron expresamente para que esta conexión estuviera clara. Después de la medición, si el resultado es $00$, el estado cuántico del sistema de dos cúbits se ha contraído y ahora está

$$ 00 \equiv\begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix}. $$

También es posible medir solo un cúbit de un estado cuántico de dos cúbits. Cuando se mide solo un cúbit de un estado de dos cúbits, el impacto de la medición es sutilmente diferente de medir dos cúbits. Esto se debe a que todo el estado no se contrae a un estado de base computacional, sino que solo se contrae a un subsistema. Es decir, medir un cúbit de un estado de dos cúbits solo contrae el subsistema relacionado con un estado de base computacional.

Para ver esto, considere la posibilidad de medir el primer cúbit del siguiente estado, que se forma aplicando la transformación $Hadamard H$ en dos cúbits establecidos inicialmente en la &comilla; 0" estado:

$$H^{\otimes 2\left}( \begin{bmatrix}1 \\ 0\begin{bmatrix}\end{bmatrix}\otimes 1 \\ 0 \end{bmatrix}\right) =\frac{{1}{2}\begin{bmatrix}1 & 1 & 1 & 1 \\ 1 & -&1 amp; 1 & -\\1 1 & 1 & -1 & -1 \\ 1 & -1 & -1 amp; \end{bmatrix}\begin{bmatrix}-1 &0\\ 0\\ 0\frac{{1}{2}\begin{bmatrix}\\=\end{bmatrix} 0 1\\\\\\ 1 1 1 }=\begin{cases}\text{\mapsto\end{bmatrix}resultado 0 & \frac{{1}{\sqrt{2}}\begin{bmatrix}1 1 0 0\text{\end{bmatrix}\\\\ resultado }=1 &{2}}\begin{bmatrix}{1}{\sqrt{\frac{\\\\0 0\\\\ 1\\ 1 \end{bmatrix}\\\end{cases}. $$ Ambos resultados tienen una probabilidad del 50 % de producirse. Esto se puede intuir del hecho de que el estado cuántico antes de la medición no cambia si $0$ se intercambia con $1$ en el primer cúbit.

La regla matemática para medir el primer o segundo cúbit es sencilla. Deje que e_k ser el $vector de base computacional k^{\rm}$ y $S$ sea el conjunto de todos los $e_k$ de modo que el cúbit en cuestión tome el valor 1$ para ese valor $de $k$.$$ Por ejemplo, si le interesa medir el primer cúbit, $S$ constaría de $e_1\equiv 10$ y $e_3\equiv 11$. Del mismo modo, si está interesado en el segundo cúbit $S$ constaría de $e_2\equiv 01$ y $e_3 \equiv 11$. En ese caso, la probabilidad de medir el cúbit elegido en $1$ es para el vector de estado $\psi$

$$ P(\text{outcome}=1)=\sum_{e_k \text{ en el conjunto } S}\psi^\dagger e_k e_k^\dagger\psi. $$

Nota:

En este artículo se usa el formato little-endian para etiquetar la base computacional. En el formato little-endian, primero se incluyen los bits menos significativos. Por ejemplo, el número cuatro en formato little-endian se representa mediante la cadena de bits 001.

Puesto que cada medida de cúbits solo puede producir $0$ o $1$, la probabilidad de medir $0$ es simplemente $1-P(\text{resultado}=1)$. Por eso solo necesita una fórmula para la probabilidad de medir $1$.

La acción que tiene una medida de este tipo en el estado se puede expresar matemáticamente como

$$\psi\mapsto\frac{\sum_{e_k \text{ en el conjunto } S} e_k e_k^\dagger\psi}{\sqrt{P(\text{outcome}=1)}}. $$

El lector cauteloso puede preocuparse de lo que sucede si el denominador es cero. Aunque este estado no está definido, no es necesario preocuparse por tales eventualidades porque la probabilidad es cero.

Si se toma $\psi$ para ser el vector de estado uniforme dado anteriormente y está interesado en medir el primer cúbit,

$$ P(\text{medida del primer cúbit}=1) = (\psi^\dagger e_1)(e_1^\dagger\psi)+(\psi^\dagger e_3)(e_3^\dagger\psi)=|e_1^\dagger\psi|^2+|e_3^\dagger\psi|^2. $$

Tenga en cuenta que esto es solo la suma de las dos probabilidades que se esperarían para medir los resultados $10$ y $11$. En nuestro ejemplo, esto se evalúa como

$$\frac{{1}{4}\left|\begin{bmatrix}0& 0& 1& 0\end{bmatrix}\begin{bmatrix}1 1\\\\ 1\\ 1\right|\end{bmatrix}^2+\frac{1}{{4}\left|\begin{bmatrix}0& 0& 0& 1\end{bmatrix}\begin{bmatrix}1\\ 1\\ 1\\ 1\end{bmatrix}\right|^2=\frac{{1}{{2}. $$

que coincide perfectamente con nuestra intuición. Del mismo modo, el estado después de que el primer cúbit se mida como $1$ se puede escribir como

$$\frac{\frac{e_1}{2}+\frac{e_3}{2}}{\sqrt{\frac{1}{2}}}=\frac{1}{\sqrt{2}}\begin{bmatrix} 0\\ 0\\ 1\\ 1\end{bmatrix}$$

de nuevo de acuerdo con nuestra intuición.

Operaciones de dos bits cúbits

Como en el caso de un solo cúbit, cualquier transformación unitaria es una operación válida en los cúbits. En general, una transformación unitaria en $n$ cúbits es una matriz $U$ de tamaño $2^n \times 2^n$ (de modo que actúa sobre vectores de tamaño $2^n$), tal como $U^{-1}= U^\dagger$. Por ejemplo, la puerta CNOT (controlled-NOT) es una puerta de dos cúbits de uso frecuente y se representa mediante la siguiente matriz unitaria:

$$\operatorname{CNOT}=\begin{bmatrix} 1\ 0\ 0\ 0 \\ 0\ 1\ 0\ 0 \\ 0\ 0\ 0\ 1 \\ 0\ 0\ 1\ 0 \end{bmatrix}$$

También podemos formar puertas de dos cúbits aplicando puertas de un solo cúbit en ambos cúbits. Por ejemplo, si aplica las puertas

$$\begin{bmatrix} a\ b\\ c\ d \end{bmatrix}$$

y

$$\begin{bmatrix} e\ f\\ g\ h \end{bmatrix}$$

a los cúbits primero y segundo, respectivamente, esto equivale a aplicar la unidad de dos cúbits dada por su producto tensor: $$\begin{bmatrix} a\ b\\ c\ d\otimes\end{bmatrix}\begin{bmatrix} e\ f g\ h\begin{bmatrix}\\ \end{bmatrix}=ae\ af\ be\ bf \\ ag\ ah\ bg\ bh \\ ce\ cf\ de\ df \\ cg\ ch\ dg\ dh .\end{bmatrix}$$

Por lo tanto, puede formar puertas de dos cúbits tomando el producto tensor de algunas puertas de un solo cúbit conocidas. Algunos ejemplos de puertas de dos cúbits incluyen $H$\otimes, $X \otimes\mathbf{1}$y $X \otimes Z$.

Tenga en cuenta que, aunque dos puertas de un solo cúbit definen una puerta de dos cúbits tomando su producto tensorial, lo contrario no es verdad. No todas las puertas de dos cúbits se pueden escribir como el producto tensorial de las puertas de un solo cúbit. Este tipo de puerta se denomina puerta de entrelazamiento. Un ejemplo de una puerta de entrelazamiento es la puerta CNOT.

La intuición detrás de una puerta no controlada se puede generalizar a puertas arbitrarias. Una puerta controlada en general es una puerta que actúa como identidad a menos que un cúbit específico sea $1$. Se indica un unitario controlado, controlado en este caso en el cúbit etiquetado $x$, con un $\Lambda_x(U)$. Por ejemplo: $\Lambda_0(U) e_{{1}\otimes{\psi}=e_{1}\otimes U{\psi}$ y $\Lambda_0(U) e_{{0}\otimes{\psi}=e_{{0}\otimes{\psi}$, donde $e_0$ y $e_1$ son los vectores de base computacional para un solo cúbit correspondiente a los valores $0$ y $1$. Por ejemplo, considere la siguiente puerta controlada-Z$$ entonces puede expresar esto como

$$\Lambda_0(Z)=\begin{bmatrix}1& 0& 0& 0 0\\& 1& 0& 0 0\\& 0& 1& 0 0\\& 0& 0&-1 \end{bmatrix}=(\mathbf\mathbf{1}\otimes{ H)\operatorname{CNOT}(\mathbf{1}\otimes H). $$

La compilación de operaciones unitarias controladas de forma eficaz es un desafío importante. La manera más sencilla de implementar esto requiere formar una base de datos de versiones controladas de puertas fundamentales y reemplazar todas las puertas fundamentales de la operación unitaria original por su equivalente controlado. Esto suele ser bastante ineficiente y, a menuda, las conclusiones inteligentes se pueden usar para reemplazar solo algunas puertas por versiones controladas para lograr el mismo impacto. Por este motivo, el marco proporciona la capacidad de realizar el método naïve de control o permitir al usuario definir una versión controlada del unitario si se conoce una versión optimizada optimizada.

Las puertas también se pueden controlar mediante información clásica. Una puerta no controlada de forma clásica, por ejemplo, es simplemente una puerta NOT normal, pero solo se aplica si un bit clásico es$1$, al contrario que un bit cuántico. En este sentido, se puede pensar en una puerta controlada de forma clásica como una instrucción if en el código cuántico, donde la puerta se aplica solo en una rama del código.

Al igual que en el caso de un solo cúbit, un conjunto de puertas de dos cúbits es universal si cualquier matriz unitaria de $4\times 4$ se puede aproximar mediante un producto de puertas de este conjunto a una precisión arbitraria. Un ejemplo de un conjunto de puertas universales es la puerta Hadamard, la puerta T y la puerta CNOT. Al tomar productos de estas puertas, puede aproximarse a cualquier matriz unitaria en dos cúbits.

Sistemas de varios cúbits

Seguimos exactamente los mismos patrones explorados en el caso de dos cúbits para crear estados cuánticos de varios cúbits a partir de sistemas más pequeños. Estos estados se construyen mediante la formación de productos tensoriales de estados más pequeños. Por ejemplo, considere la posibilidad de codificar la cadena de bits $1011001$ en un equipo cuántico. Puede codificar esto como

$$ 1011001 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}. $$

Las puertas cuánticas funcionan exactamente de la misma manera. Por ejemplo, si desea aplicar la $puerta X$ al primer cúbit y, a continuación, realizar un CNOT entre los cúbits segundo y tercer cúbits, puede expresar esta transformación como

\begin{\begin{align}&erio; (X \otimes\operatorname{CNOT}_{\mathbf{1}\otimes{12}\otimes \mathbf \mathbf\mathbf{1}\otimes{ \mathbf{\mathbf{1}\mathbf{1}\otimes{) \begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 0\begin{bmatrix} \end{bmatrix}\otimes\\ 1\begin{bmatrix} \end{bmatrix}\otimes0 \\ 1 1\begin{bmatrix}\otimes\\ \end{bmatrix}0 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 0\begin{bmatrix} \end{bmatrix}\otimes0 \\ 1 \end{bmatrix}\\&\qquad\qquad\equiv 0011001. \end{align}

En muchos sistemas de cúbits, a menudo es necesario asignar y desasignar cúbits que sirven como memoria temporal para el equipo cuántico. Se dice que este tipo de cúbits es auxiliar. De forma predeterminada, puede suponer que el estado del cúbit se inicializa en e_0$ tras la asignación$. También puede suponer que se devuelve de nuevo a $e_0$ antes de la desasignación. Esta suposición es importante, porque si un cúbit auxiliar se entrelaza con otro registro de cúbits cuando se desasigna, el proceso de desasignación daña el cúbit auxiliar. Por este motivo, siempre se supone que estos cúbits se revierten a su estado inicial antes de liberarse.

Por último, aunque es necesario agregar nuevas puertas al conjunto de puertas para lograr la computación cuántica universal para dos equipos cuánticos de cúbits, no es necesario introducir nuevas puertas en el caso de varios cúbits. Las puertas $H$, $T$ y CNOT forman una puerta universal establecida en muchos cúbits porque cualquier transformación unitaria general se puede dividir en una serie de dos rotaciones de dos cúbits. A continuación, puede aprovechar la teoría desarrollada para el caso de dos cúbits y usarla de nuevo aquí cuando tenga muchos cúbits.

Nota:

Aunque la notación algebraica lineal que se ha usado hasta ahora puede usarse para describir estados de varios cúbits, se vuelve cada vez más complicado a medida que aumenta el tamaño de los estados. El vector de columna resultante para una cadena de 7 bits de longitud, por ejemplo, es de $128$ dimensiones, lo que hace que expresarlo con la notación descrita anteriormente sea muy complicado. En su lugar, se usa la notación Dirac, una abreviatura simbólica que simplifica la representación de los estados cuánticos. Para obtener más información, vea Notación dirac.