Qubits
Un qubits es un sistema cuántico con dos estados propios y que puede ser manipulado arbitrariamente
Solo puede ser descrito correctamente mediante la mecánica cuántica, y solamente tiene dos estados bien distinguibles mediante medidas físicas
También se entiende por qubits la información que contiene ese sistema cuántico de dos estados posibles
En esta acepción, el qubits es la unidad mínima y por lo tanto constitutiva de la teoría de la información cuántica
Es un concepto fundamental para la programación cuántica y para la criptografía cuántica, el análogo cuántico del bit en informática
Estos qubits ya no toman simplemente valores enteros (0 ó 1)
Sino que ahora son representados por entidades matemáticas llamadas vectores de estado |\psi\succ
Que vamos a representar usando la notación de Dirac:
\begin{matrix}
|0\succ&=\binom{1}{0}\\
|1\succ&=\binom{0}{1}
\end{matrix}
Que define los estados base de un qubit
Como vector, el estado |\psi\succ
de cada qubit pertenece a un espacio vectorial particular llamado espacio de Hilbert
Físicamente, podemos medir el estado |\psi\succ
en dos estados básicos ortogonales, que por convención se llaman |0\succ
y |1\succ
Esto implica que el espacio de Hilbert es de 2 dimensiones
Por lo que se pueden elegir los vectores \left \{ |0\succ, 1\succ \right \}
como base del espacio vectorial
De esta forma, cualquier vector de estado |\psi\succ
de un qubit es una combinación lineal de los vectores base (que en el lenguaje de la mecánica cuántica se llama estado de superposición cuántica)
|\psi\succ=\alpha|0\succ+\beta|1\succ
Que define la combinación lineal de los estados base de un qubit
El espacio de Hilbert de cada qubit es un espacio complejo
Esto quiere decir que \alpha
y \beta
son números complejos
Además, no pueden tomar cualquier valor
Deben cumplir que:
\left\|\alpha\right\|^{2}+\left\|\beta\right\|^{2}=1
Es decir, que el vector de estado de un qubit |\psi\succ
está normalizado, (su norma es igual a 1)
Puertas cuánticas
Las puertas cuánticas son transformaciones lineales entre los vectores de estado |\psi\succ
Pero no sirve realizar cualquier transformación lineal
Sólo pueden ser consideradas las transformaciones que no cambien la norma del vector |\psi\succ
Aquellas que tomen un vector cuya norma sea 1 y lo conviertan en otro vector de norma igual a 1
Este tipo de transformaciones se llaman Transformaciones unitarias, o en el lenguaje de la mecánica cuántica, Operadores Unitarios
Por lo tanto, las puertas cuánticas son operadores unitarios
Los operadores unitarios pueden ser representados como matrices
La aplicación de un operador unitario A a un vector de estado |b\succ,
puede ser representada como una multiplicación de una matriz de 2x2
por un vector columna, dando como resultado otro vector columna
\begin{pmatrix}
A_{11} & A_{12} \\
A_{21} & A_{22}
\end{pmatrix}
\cdot
\begin{pmatrix}
b_{1}\\
b_{2}
\end{pmatrix}
=
\begin{pmatrix}
c_{1}\\
c_{2}
\end{pmatrix}
Puertas cuánticas de un qubit en Qiskit
Qiskit es una herramienta creada por IBM para desarrollar software para procesadores cuánticos
Está implementado en el lenguaje de programación Python, y disponible para que el público en general para empezar a experimentar y probar nuestros algoritmos
A continuación voy a representar las puertas cuánticas más utilizadas que se aplican a un qubit, así como su representación matricial y su forma de implementarla en Qiskit
Para saber como instalar Qiskit en tu ordenador, puedes revisarlo en su documentación
Puerta Identidad
La puerta identidad representa a la matriz identidad y se llama así porque representa a la aplicación identidad que va de un espacio vectorial de dimensión finita a sí misma
I=\begin{pmatrix}
1 & 0 \\
0 & 1
\end{pmatrix}
Y cuya representación en notación de Dirac es:
\begin{matrix}
I|0\succ=|0\succ\\
I|1\succ=|1\succ
\end{matrix}
Código Qiskit de la puerta identidad:
Matrices de Pauli
Las matrices de Pauli, deben su nombre a Wolfgang Ernst Pauli
Son matrices usadas en física cuántica en el contexto del momento angular intrínseco o espín
Matemáticamente, las matrices de Pauli constituyen una base vectorial del álgebra de Lie del grupo especial unitario SU\left(2\right),
actuando sobre la representación de dimensión 2
Puerta X (matriz X de Pauli)
I=\begin{pmatrix}
0 & 1 \\
1 & 0
\end{pmatrix}
Y cuya representación en notación de Dirac es:
\begin{matrix}
I|0\succ=|1\succ\\
I|1\succ=|0\succ
\end{matrix}
Código Qiskit de la puerta X:
Puerta Y (matriz Y de Pauli)
I=\begin{pmatrix}
0 & -i \\
i & 0
\end{pmatrix}
Y cuya representación en notación de Dirac es:
\begin{matrix}
I|0\succ=i|1\succ\\
I|1\succ=-i|0\succ
\end{matrix}
Código Qiskit de la puerta Y:
Puerta Z (matriz Z de Pauli)
I=\begin{pmatrix}
1 & 0 \\
0 & -1
\end{pmatrix}
Y cuya representación en notación de Dirac es:
\begin{matrix}
I|0\succ=|0\succ\\
I|1\succ=|-1\succ
\end{matrix}
Código Qiskit de la puerta Z:
Puerta Hadamard
La puerta de Hadamard, deben su nombre a Jacques Salomon Hadamard
No son más que la representación de un qubit de la transformada cuántica de Fourier
Como las filas de la matriz son ortogonales, dónde {\displaystyle H}
es una matriz unitaria
H=\frac{1}{\sqrt{2}}\cdot \begin{pmatrix}
1 & 1 \\
1 & -1
\end{pmatrix}
Y cuya representación en notación de Dirac es:
\begin{matrix}
H|0\succ=\frac{1}{\sqrt{2}}\cdot \left(|0\succ+|1\succ\right)\\
H|1\succ=\frac{1}{\sqrt{2}}\cdot \left(|0\succ-|1\succ\right)
\end{matrix}
Código Qiskit de la puerta H:
Puertas U (Universales)
En versiones anteriores de qiskit existían las denominadas puertas U1, U2 y U3
Pero estas puertas han desaparecido en versiones posteriores de qiskit
Se pueden construir con puertas P y U mediante las siguientes equivalencias:
\left\{\begin{matrix}
U_{1}\left(\lambda\right)=P\left(\lambda\right)\\
U_{2}\left(\Phi,\lambda\right)=U\left(\Phi,\lambda,\frac{\pi}{2}\right)\\
U_{3}\left(\theta,\Phi,\lambda\right)=U\left(\theta,\Phi,\lambda\right)
\end{matrix}\right.
Se define como
U\left(\theta,\Phi,\lambda\right)=
\begin{pmatrix}
\cos{\frac{\theta}{2}} & -\exp^{i\cdot\lambda}\cdot\sin{\frac{\theta}{2}} \\
\exp^{i\cdot\Phi}\cdot\sin{\frac{\theta}{2}} & \exp^{i\cdot\left(\Phi+\lambda\right)}\cdot\cos{\frac{\theta}{2}}
\end{pmatrix}
Hay dos casos específicos en los que obtenemos las siguientes equivalencias:
\left\{\begin{matrix}
H=U\left(\frac{\pi}{2},0,\pi\right)=
\frac{1}{\sqrt{2}}\cdot \begin{pmatrix}
1 & 1 \\
1 & -1
\end{pmatrix}\\
P=U\left(0,0,\lambda\right)=
\begin{pmatrix}
1 & 0 \\
0 & \exp^{i\cdot\lambda}
\end{pmatrix}
\end{matrix}\right.
Puerta P
P\left(\Phi\right)=
\begin{pmatrix}
1 & 0 \\
0 & \exp^{i\cdot\Phi}
\end{pmatrix}
Código Qiskit de la puerta P:
Puerta U1
U_{1}\left(\lambda\right)=
\begin{pmatrix}
1 & 0 \\
0 & \exp^{i\cdot\lambda}
\end{pmatrix}
=P\left(\lambda\right)
Código Qiskit de la puerta U1 en versiones anteriores:
Puerta U2
U_{2}\left(\Phi,\lambda\right)=
\frac{1}{\sqrt{2}}\cdot\begin{pmatrix}
1 & -\exp^{i\cdot\lambda} \\
\exp^{i\cdot\Phi} & \exp^{i\cdot\left(\Phi+\lambda\right)}
\end{pmatrix}
=U\left(\Phi,\lambda,\frac{\pi}{2}\right)
Código Qiskit de la puerta U2 en versiones anteriores:
Puerta U3
U_{3}\left(\theta,\Phi,\lambda\right)=
\begin{pmatrix}
\cos{\frac{\theta}{2}} & -\exp^{i\cdot\lambda}\cdot\sin{\frac{\theta}{2}} \\
\exp^{i\cdot\Phi}\cdot\sin{\frac{\theta}{2}} & \exp^{i\cdot\left(\Phi+\lambda\right)}\cdot\cos{\frac{\theta}{2}}
\end{pmatrix}
=U\left(\theta,\Phi,\lambda\right)
Código Qiskit de la puerta U3 en versiones anteriores:
Puerta S
Da un cuarto de vuelta alrededor de la esfera de Bloch
Se define como \Phi =\frac{\pi}{2}
y por esa razón es equivalente a una puerta U_{1}\left(\frac{\pi}{2}\right)
S=
\begin{pmatrix}
1 & 0 \\
0 & \exp^{i\cdot\frac{\pi}{2}}
\end{pmatrix}
=
U_{1}\left(\frac{\pi}{2}\right)
Y cuya representación en notación de Dirac es:
SS|q\succ=\mathbb{Z}|q\succ
Código Qiskit de la puerta S:
Puerta S†
Surge a partir de una puerta S negativa
Se define como \Phi =-\frac{\pi}{2}
y por esa razón es equivalente a una puerta U_{1}\left(\frac{-pi}{2}\right)
S=
\begin{pmatrix}
1 & 0 \\
0 & \exp^{-i\cdot\frac{\pi}{2}}
\end{pmatrix}
=
U_{1}\left(\frac{-pi}{2}\right)
Código Qiskit de la puerta S†:
Puerta T
Es similar a la puerta S y también es conocida como la puerta \sqrt[4]{\mathbb{Z}}
Se define como \Phi =\frac{\pi}{4}
y por esa razón es equivalente a una puerta U_{1}\left(\frac{\pi}{4}\right)
T=
\begin{pmatrix}
1 & 0 \\
0 & \exp^{i\cdot\frac{\pi}{4}}
\end{pmatrix}
=
U_{1}\cdot\left(\frac{\pi}{4}\right)
Código Qiskit de la puerta T:
Puerta T†
Surge a partir de una puerta T negativa
Se define como \Phi =-\frac{\pi}{4}
y por esa razón es equivalente a una puerta U_{1}\left(\frac{-\pi}{4}\right)
T=
\begin{pmatrix}
1 & 0 \\
0 & \exp^{i\cdot\frac{\pi}{4}}
\end{pmatrix}
=
U_{1}\cdot\left(\frac{-\pi}{4}\right)
Código Qiskit de la puerta T†:
Puertas de rotación estándar
Estas puertas representan un tipo particular de rotación, derivadas de las matrices de Pauli
De manera general se definen como:
R_{p}\left(\theta\right)=\exp\left(-\frac{i\cdot\theta}{2}\right)=\cos\left(\frac{\theta}{2}\right)\cdot I-i\cdot \sin\left(\frac{\theta}{2}\right)\cdot P
Puerta Rx (Rotación estándar alrededor del eje-x)
La Puerta Rx es equivalente a U\left(\theta,\frac{-\pi}{2},\frac{\pi}{2}\right)
R_{x}\left(\theta\right)=
\begin{pmatrix}
\cos\left(\frac{\theta}{2}\right) & -i\cdot\sin\left(\frac{\theta}{2}\right) \\
-i\cdot\sin\left(\frac{\theta}{2}\right) & \cos\left(\frac{\theta}{2}\right)
\end{pmatrix}
=
U\left(\theta,\frac{-\pi}{2},\frac{\pi}{2}\right)
Código Qiskit de la puerta Rx:
Puerta Ry (Rotación estándar alrededor del eje-y)
La Puerta Ry es equivalente a U\left(\theta,0,0\right)
R_{y}\left(\theta\right)=
\begin{pmatrix}
\cos\left(\frac{\theta}{2}\right) & -\sin\left(\frac{\theta}{2}\right) \\
\sin\left(\frac{\theta}{2}\right) & \cos\left(\frac{\theta}{2}\right)
\end{pmatrix}
=
U\left(\theta,0,0\right)
Código Qiskit de la puerta Ry:
Puerta Rz (Rotación estándar alrededor del eje-z)
La Puerta Rz es equivalente a P\left(\phi\right)
R_{z}\left(\phi\right)=
\begin{pmatrix}
\exp^{-i\cdot \frac{\phi}{2}} & 0 \\
0 & \exp^{i\cdot \frac{\phi}{2}}\end{pmatrix}
=
P\left(\phi\right)
Código Qiskit de la puerta Rz: