Diagramas de circuitos cuánticos

En este artículo se tratan las convenciones de los diagramas de circuitos cuánticos. Una vez que se comprenden las convenciones visuales, algunos algoritmos cuánticos son más fáciles de entender en un diagrama de circuitos.

Con Azure Quantum, puede enviar circuitos cuánticos con Qiskit, Cirq y también circuitos con formato específicos del proveedor.

Sugerencia

Consulte quantum-viz.js, una herramienta configurable para representar circuitos cuánticos. Puede integrar la biblioteca quantum-viz.js (o qviz) en cualquier proyecto. Tiene como objetivo ser fácilmente configurable, al tiempo que permite interacciones complejas del usuario, como alternar entre diferentes resultados de medición.

Convenciones de los diagrama de circuitos cuánticos

En un diagrama de circuitos, cada línea continua representa un cúbit o, más generalmente, un registro de cúbit. Por convención, la línea superior es el registro de cúbit $0$ y el resto se etiquetan secuencialmente.

Las operaciones se representan mediante puertas cuánticas. El término puerta cuántica es análogo al de las puertas lógicas clásicas. Las puertas que actúan en uno o varios registros de cúbit se indican como un cuadro. Por ejemplo, el símbolo:

Símbolo de una operación Hadamard que actúa en un registro de un solo cúbit.

es una operación Hadamard que actúa sobre un registro de un solo cúbit.

En un circuito cuántico, el tiempo fluye de izquierda a derecha. Las puertas cuánticas se ordenan cronológicamente; la puerta más a la izquierda es la que se aplica primero a los cúbits. En otras palabras, si imagina que los cables sostienen el estado cuántico, los cables llevan el estado cuántico a través de cada una de las puertas del diagrama de izquierda a derecha. Es decir, la acción del circuito cuántico

Diagrama de puertas cuánticas que se aplican de izquierda a derecha en un circuito cuántico.

es la matriz unitaria $CBA$.

Nota:

La multiplicación de matrices sigue la convención opuesta: primero se aplica la matriz más a la derecha. Sin embargo, en los diagramas de circuitos cuánticos, la puerta de la izquierda se aplica primero. En ocasiones, esta diferencia puede provocar confusión, por lo que es importante tener en cuenta esta diferencia importante entre la notación algebraica lineal y los diagramas de circuitos cuánticos.

Ejemplo: Transformación unitaria

Considere la transformación unitaria $\text{ CNOT}_{01}(H\otimes 1)$. Esta secuencia de puertas tiene una importancia fundamental para la computación cuántica porque crea un estado de dos cúbits máximamente entrelazados:

$\mathrm{CNOT}_{01}(H\otimes 1)\left=\ket{00}\frac{1}{\sqrt{2}}({00}\ket{ + ), \ket{11}\right$

Las operaciones con esta complejidad o mayor son omnipresentes en los algoritmos cuánticos y en la corrección de errores cuánticos.

El diagrama de circuitos para preparar este estado cuántico máximamente entrelazado es:

Diagrama de circuito para un estado de dos cúbits entrelazado máximo.

El símbolo detrás de la puerta hadamard representa una puerta CNOT, donde el círculo negro indica el cúbit de control y la cruz dentro de un círculo indica el target cúbit. En la representación anterior, el circuito cuántico actúa sobre dos cúbits (o dos registros equivalentes que constan de un cúbit).

Entradas y salidas de circuitos cuánticos

Los ejemplos anteriores tenían exactamente el mismo número de entradas de cables (cúbits) de entrada a una puerta cuántica que el número de cables de salida de la puerta cuántica. Al principio puede parecer razonable que los circuitos cuánticos tengan más o menos salidas que entradas en general. Sin embargo, esto es imposible, porque todas las operaciones cuánticas, excepto las medidas, son unitarias y, por lo tanto, reversibles. Si no tuvieran el mismo número de salidas que de entradas, no serían reversibles y, por tanto, no serían unitarias y eso es una contradicción. Por este motivo, cualquier cuadro dibujado en un diagrama de circuito debe tener exactamente el mismo número de cables que entran y que salen.

Los diagramas de circuitos de varios cúbits siguen convenciones similares a los de un solo cúbit. Un ejemplo aclaratorio: una operación unitaria de dos cúbits $B$ puede definirse como $(H S\otimes X)$, por lo que el circuito cuántico equivalente es:

Diagrama de circuito de una operación unitaria de dos cúbits.

También podemos ver que $B$ tiene una acción en un solo registro de dos cúbits en lugar de dos registros de un cúbit, según el contexto en el que se use el circuito.

Quizás la propiedad más útil de estos diagramas de circuitos abstractos es que permiten describir algoritmos cuánticos complicados de forma general sin tener que compilarlos en puertas fundamentales. Esto significa que puede comprobar si su intuición sobre el flujo de datos de un algoritmo cuántico grande es cierta sin necesidad de comprender todos los detalles de cómo funciona cada una de las subrutinas dentro del algoritmo.

Puertas controladas

Para comprender la acción de una puerta cuántica controlada individualmente, indicada por $\Lambda(G)$, en la que el valor de un solo cúbit controla la aplicación de $G$, observe el siguiente ejemplo de una entrada de estado del producto:

$\Lambda(G) (\alpha\ket{{0} + \beta\ket{1}) \ket{\psi}=\alpha\ket{{0}\ket{\psi} + \beta\ket{{1} G\ket{\psi}$

Es decir, la puerta controlada aplica $G$ al registro que contiene $\psi$ si y solo si el cúbit de control toma el valor $1$. En general, describimos estas operaciones controladas en diagramas de circuitos como:

Diagrama de circuito de una puerta controlada por singly.

Aquí, el círculo negro denota el cúbit en el que se controla la puerta, y un cable vertical denota el unitario que se aplica cuando el cúbit de control toma el valor $1$. Para los casos especiales en $los que G=X$ y $G Z=$, se usa la notación siguiente para describir la versión controlada de las puertas (tenga en cuenta que la puerta controlada-X es la puerta CNOT):

Diagrama de circuito para casos especiales de puertas controladas.

Q# proporciona métodos para generar automáticamente la versión controlada de una operación, para que el programador no tenga que codificar manualmente estas operaciones. A continuación se muestra un ejemplo:

operation PrepareSuperposition(qubit : Qubit) : Unit
is Ctl { // Auto-generate the controlled specialization of the operation
    H(qubit);
}

Operador de medida

La operación restante que se va a visualizar en los diagramas de circuitos es la medida. La medida toma un registro de cúbit, lo mide y genera el resultado como información clásica.

Una operación de medida se indica mediante un símbolo de medidor, siempre toma como entrada un registro de cúbit (que se indica mediante una línea continua ) y genera información clásica (que se indica mediante una línea doble). En concreto, este subcircuito tiene el siguiente aspecto:

Símbolo que representa una operación de medida.

Q# implementa un operador Measure con este fin.

Del mismo modo, el subcircuito

Diagrama de circuito que representa una operación controlada.

proporciona una puerta controlada de forma clásica, donde $G$ se aplica a condición de que el bit de control clásico sea el valor $1$.

Diagrama del circuito de teletransporte

El teletransporte cuántico es quizás el mejor algoritmo cuántico para ilustrar estos componentes.

El teletransporte cuántico es un método para mover datos dentro de un equipo cuántico (o incluso entre equipos cuánticos distantes en una red cuántica) mediante el uso del entrelazamiento y la medición. Lo interesante es que, en realidad, es capaz de mover un estado cuántico, por ejemplo, el valor de un cúbit determinado, de un cúbit a otro, sin saber cuál es el valor del cúbit. Esto es necesario para que el protocolo funcione según las leyes de la mecánica cuántica.

A continuación, se muestra el circuito de teletransporte cuántico, junto con una versión anotada del circuito para ilustrar cómo se lee el circuito cuántico.

Diagrama de un circuito de teletransporte cuántico.

Pasos siguientes