# Puerta cuántica

Una puerta cuántica, puerta lógica cuántica o compuerta lógica cuántica es un circuito cuántico básico que opera sobre un pequeño número de qubits. Son para los ordenadores cuánticos lo que las puertas lógicas son para los ordenadores digitales. Las puertas lógicas cuánticas son reversibles, al contrario que muchas puertas lógicas clásicas. Algunas puertas lógicas clásicas, como la puerta de Toffoli, proporcionan reversibilidad y pueden ser transformadas en puertas lógicas cuánticas. Las puertas lógicas cuánticas son representadas mediante matrices unitarias.
Las puertas cuánticas más comunes operan en espacios de uno o dos qubits. Esto significa que, como matrices, las puertas cuánticas pueden ser descritas por matrices 2×2 o 4×4 con filas ortonormales.
Lógica cuántica puede referirse tanto al comportamiento de las puertas lógicas cuánticas como al formalismo para mecánica cuántica llamado lógica cuántica, basado en la modificación de algunas de las reglas de la lógica proposicional.

## Historia

La notación actual para las puertas cuánticas fue desarrollada por Barenco et al.

## Puertas comúnmente usadas

Las puertas cuánticas se suelen representar como matrices. Una puerta que opera sobre k qubits queda representada por una matriz unitaria de 2$^k$ x 2$^k$. El número de qubits en la entrada y a la salida tienen que ser iguales. El resultado de la puerta cuántica se halla multiplicando la matriz que representa la puerta con el vector que representa el estado cuántico.

### Puerta de Hadamard

Esta puerta opera sobre un único qubit. Esta puerta realiza la operación de asignar el estado base $|0\rangle$ a ${\frac {|0\rangle +|1\rangle }{\sqrt {2}}}(\equiv |+\rangle )$ y el estado base $|1\rangle$ a ${\frac {|0\rangle -|1\rangle }{\sqrt {2}}}(\equiv |-\rangle )$, siendo la base $\{|+\rangle ,|-\rangle \}$ la llamada base de Hadamard, y representa una rotación de $\pi$ sobre el eje $({\hat {x}}+{\hat {z}})/{\sqrt {2}}$. Equivalentemente, es la combinación de dos rotaciones, una de $\pi$ sobre el eje ${\hat {z}}$ seguido de una rotación de $\pi /2$ sobre el eje ${\hat {y}}$. Se representa mediante la matriz de Hadamard:
    $H={\frac {1}{\sqrt {2}}}{\begin{bmatrix}1&1\\1&-1\end{bmatrix}}$
La puerta de Hadamard no es más que la representación de un qubit de la transformada cuántica de Fourier.
Como las filas de la matriz son ortogonales, $H$ es una matriz unitaria.

### Puertas de desplazamiento de fase

Esta familia de puertas, que operan sobre un único qubit, dejan el estado base $|0\rangle$ intacto y asignan el $|1\rangle$ a $e^{i\phi }|1\rangle$. La probabilidad de medir un $|0\rangle$ o un $|1\rangle$ no cambia después de aplicar esta puerta, sin embargo sí que modifican la fase del estado cuántico. Esto es equivalente a trazar un círculo horizontal (una línea de latitud) sobre la esfera de Bloch de $\phi$ radianes. Estas puertas se representan por matrices 2 × 2 de la forma
    $R(\phi )={\begin{bmatrix}1&0\\0&e^{i\phi }\end{bmatrix}}$
donde $\phi$ es el desplazamiento. Algunos de las puertas más comunes son la puerta ${\frac {\pi }{8}}$, donde $\phi ={\frac {\pi }{4}}$, la puerta de fase donde $\phi ={\frac {\pi }{2}}$ y la puerta de Pauli-Z donde $\phi =\pi$.

### Puerta SWAP

Esta puerta intercambia dos qubits. Se representa por la matriz:
    ${\mbox{SWAP}}={\begin{bmatrix}1&0&0&0\\0&0&1&0\\0&1&0&0\\0&0&0&1\end{bmatrix}}$.

### Puertas controladas

Las puertas controladas operan sobre 2 qubits o más, de los cuales uno o más controlan la operación. Un ejemplo sería, la puerta NOT controlada (o CNOT) opera sobre 2 qubits, y realiza la operación NOT en el segundo qubit solo cuando el primer qubit es $|1\rangle$, y en otro caso lo deja intacto. Se representa por la matriz
    ${\mbox{CNOT}}={\begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&0&1\\0&0&1&0\end{bmatrix}}$.
De forma general, supongamos ahora que U es una puerta que opera en un único qubit, y cuya representación matricial es:
    $U={\begin{bmatrix}x_{00}&x_{01}\\x_{10}&x_{11}\end{bmatrix}}$,
entonces la puerta-U controlada es una puerta que opera sobre dos qubits de manera que el primer qubit actúa como controlador. Se asigna los estados base como sigue:
    $|00\rangle \mapsto |00\rangle$
    $|01\rangle \mapsto |01\rangle$
    $|10\rangle \mapsto |1\rangle U|0\rangle =|1\rangle \left(x_{00}|0\rangle +x_{10}|1\rangle \right)$
    $|11\rangle \mapsto |1\rangle U|1\rangle =|1\rangle \left(x_{01}|0\rangle +x_{11}|1\rangle \right)$
Así, la matriz para la puerta controlada U es la siguiente:
    $\operatorname {C} (U)={\begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&x_{00}&x_{01}\\0&0&x_{10}&x_{11}\end{bmatrix}}$
Cuando U es una de las matrices de Pauli, σ$_x$, σ$_y$, o σ$_z$, a veces se emplean respectivamente los términos "X-controlada", "Y-controlada", o "Z-controlada".

## Puertas cuánticas universales

Un conjunto de puertas cuánticas universales es cualquier conjunto de puertas al cual puede ser reducida cualquier operación posible en un ordenador cuántico, es decir, cualquier otra operación unitaria puede aproximarse con la precisión deseada mediante una secuencia finita de puertas del conjunto universal.

## Implementación física de puertas cuánticas
### Implementación de puertas cuánticas con óptica lineal

La computación cuántica con óptica lineal (LOQC) permite la creación de computación cuántica universal. En este marco, los fotones son los encargados de "portar" la información, y se usan elementos ópticos lineales (como pueden ser divisores de haz, láminas retardadoras, y espejos) para procesar la información cuántica. Para la detección y almacenamiento de dicha información se emplean detectores de fotones y memorias cuánticas.
Para lograr la computación cuántica universal, la LOQC debe ser capaz de "construir" un conjunto complejo de puertas universales. Esto puede conseguirse en el marco del protocolo KLM. El esquema KLM es una implementación de computación cuántica con óptica lineal (LOQC), que fue desarrollado en el año 2000 por Knill, Laflamme and Milburn, y que permite la implementación de computación cuántica universal a partir, exclusivamente, de elementos de óptica lineal. Más concretamente, este protocolo usa, además de los elementos mencionados, fuentes de emisión de fotones individuales y fotodetectores.
Dejando de lado lo relacionado con corrección de errores y otros problemas experimentales, lo fundamental a la hora de implementar puertas cuánticas elementales usando tan solo los elementos mencionados es que se puede construir un operación unitaria sobre un cúbit. Tal y como se ha mencionado previamente, con ellos es posible crear un conjunto completo de puertas universales.
La matriz unitaria que se asocia a un divisor de haz, $\mathbf {B} _{\theta ,\phi }$, es:
    $U(\mathbf {B} _{\theta ,\phi })={\begin{bmatrix}\cos \theta &-e^{i\phi }\sin \theta \\e^{-i\phi }\sin \theta &\cos \theta \end{bmatrix}}$,
donde $\theta$ y $\phi$ se determinan a partir de la amplitud de reflexión, $r$, y la transmisión de amplitud, $t$, (más adelante se indica la expresión que los relaciona para un caso sencillo). Para un separador de haz simétrico, esto es, con desfasaje o phase shift $\phi ={\frac {\pi }{2}}$, y teniendo en cuenta las condiciones de un divisor de haz clásico ideal
$|t|^{2}+|r|^{2}=1$ y $t^{*}r+tr^{*}=0$, puede demostrarse que:
    $U(\mathbf {B} _{\theta ,\phi ={\frac {\pi }{2}}})={\begin{bmatrix}t&r\\r&t\end{bmatrix}}={\begin{bmatrix}\cos \theta &-i\sin \theta \\-i\sin \theta &\cos \theta \end{bmatrix}}=\cos \theta {\hat {I}}-i\sin \theta {\hat {\sigma }}_{x}=e^{-i\theta {\hat {\sigma }}_{x}},$
que no es más que la rotación de ángulo $2\theta =2\cos ^{-1}(|t|)$ de un cúbit en torno al eje $x$ en la esfera de Bloch.
Un espejo es un caso particular en el que el coeficiente de reflexión 1. Por lo tanto, el operador unitario asociado vendrá dado por una matriz de rotación:
    $R(\theta )={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}$.
Generalmente, los espejos empleados en procesamiento de información cuántica (QIP), el ángulo de incidencia es $\theta =45^{\circ }$.
De igual forma, un operador de desfasaje o phase shift $\mathbf {P} _{\phi }$ tiene por operador unitario asociado $U(\mathbf {P} _{\phi })=e^{i\phi }$, o en forma matricial:
    $U(\mathbf {P} _{\phi })={\begin{bmatrix}e^{i\phi }&0\\0&1\end{bmatrix}}={\begin{bmatrix}e^{i\phi /2}&0\\0&e^{-i\phi /2}\end{bmatrix}}{\text{(fase global que se omite)}}=e^{i{\frac {\phi }{2}}{\hat {\sigma }}_{z}}$,
que es equivalente a una rotación de ángulo $-\phi$ en torno al eje $z$.
Dado que cualesquiera dos rotaciones del grupo SU(2) en torno a ejes ortogonales pueden generar cualquier rotación en la esfera de Bloch, a partir de divisores de haz, espejos y phase shifters, podremos obtener cualquier operador del grupo $SU(2)$.