Introducción a las Compuertas Cuánticas de un qubit con Qiskit

Alejandro Martínez Valencia
QuantumHispano
Published in
6 min readAug 13, 2020

El computo cuántico es un nuevo paradigma de las ciencias computacionales, que en años recientes ha cobrado auge, no sólo en la academia sino también en la industria. Vivimos la nueva revolución cuántica, el nacimiento de una nueva disciplina que sin duda, será la tendencia para las próximas décadas.

Por este motivo, un grupo de jóvenes entusiastas de la computación cuántica hemos emprendido el proyecto de QuantumHispano para llevar el nuevo conocimiento que se genera al idioma español, desde lo más elemental hasta lo más especializado.

Bits y compuertas clásicas

Antes de iniciar con el tema del artículo, repasemos un poco las nociones matemáticas detrás de los bits y compuertas dentro de la computación clásica y cuántica.

La computación clásica, que incluye nuestras actuales computadoras, como laptops, smartphones, consolas de videojuegos, etc., funciona con unos elementos básicos de información llamados bits. Estos bits sólo pueden tomar uno de dos valores posibles, 0 ó 1.

Para operar entre los distintos bits (que llamaremos bits clásicos) se usan compuerta lógicas, tales como NOT, OR, AND, entre otros. A partir de ellas, es posible escribir cualquier otra compuerta lógica y construir programas más complejos.

El conjunto de valores posibles que puede tomar un bit y las compuertas lógicas conforman una estructura matemática llamada Álgebra de Boole (o álgebra booleana, para los amigos). Las operaciones entre bits y las compuertas lógicas se pueden representar como tablas de verdad, como las siguientes:

Tablas de verdad de las compuertas lógicas NOT, OR, AND.
Tablas de verdad de las compuertas lógicas NOT, OR, AND.

Qubits y compuertas cuánticas

Las matemáticas implicadas dentro de la computación cuántica son diferente a las utilizadas en la computación clásica. No se trabaja ya con el álgebra de Boole.

Los elementos básicos de información en la computación cuántica son los qubits. Estos qubits ya no toman simplemente valores enteros (0 ó 1), sino que ahora son representados por entidades matemáticas llamadas vectores de estado |ψ⟩ (aquí utilizamos la notación de Dirac).

Estados base de un qubit.

Como vector, el estado |ψ⟩ de cada qubit pertenece en un espacio vectorial particular llamado espacio de Hilbert. Físicamente, nosotros podemos medir el estado |ψ⟩ en dos estados básicos ortogonales, que por convención se llaman |0⟩ y |1⟩.

Esto implica que el espacio de Hilbert es de 2 dimensiones, por lo que se pueden elegir los vectores {|0⟩, |1⟩} como base del espacio vectorial. De esta forma, cualquier vector de estado |ψ⟩ 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).

Combinación lineal de los estados base.

El espacio de Hilbert de cada qubit es un espacio complejo. Esto quiere decir que 𝛼 y 𝛽 son números complejos (números que tienen una parte real y otra imaginaria). Además, no pueden tomar cualquier valor. Deben cumplir:

Condición de normalización.

Esto último significa que el vector de estado de un qubit |ψ⟩ está normalizado, (o sea, su norma es igual a 1).

En este punto del artículo, te pregunto: ¿estás abrumado por las matemáticas implicadas?😰 Pues esto apenas está comenzando y va a poner mejor. 😏

Ahora sí, entraremos al tema central del artículo.

Las compuertas clásicas son operaciones entre los valores de los bits siguiendo las reglas de su álgebra de Boole.

En cambio, las compuertas cuánticas son transformaciones lineales entre los vectores de estado |ψ⟩. Pero no vale cualquier transformación lineal. Sólo pueden ser consideradas las transformaciones que no cambien la norma del vector |ψ⟩. Esto es, 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 compuertas cuánticas son operadores unitarios.

Los operadores unitarios pueden ser representados como matrices. Así, la aplicación de un operador unitario A a un vector de estado |b⟩, puede ser representada como una multiplicación de una matriz de 2 x 2 por un vector columna, dando como resultado otro vector columna.

Multiplicación de una matriz A con un vector columna b.

Compuertas cuánticas de un qubit en Qiskit

Qiskit es una herramienta creada por IBM para desarrollar software para los 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 te presento las compuertas 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 computadora, puedes revisar su documentación.

Compuerta Identidad

Compuerta identidad

Compuerta X (matriz X de Pauli)

Compuerta X

Compuerta Y (matriz Y de Pauli)

Compuerta Y

Compuerta Z (matriz Z de Pauli)

Compuerta Z

Compuerta Hadamard

Compuerta Hadamard

La compuerta Hadamard es una de las más importantes, porque nos ayuda a que un qubit llegue a un estado de superposición cuántica.

Compuerta U1

Compuerta U1

Compuerta U2

Compuerta U2

Compuerta U3

Compuerta U3

La compuerta U3 es el caso más general de compuerta cuántica de un solo qubit.

Compuertas S y 𝑆†

Compuertas S y S†

Compuertas T y T†

Compuertas T y T†

Compuertas de rotación estándar

Estas compuertas representan un tipo particular de rotación, derivadas de las matrices de Pauli. De manera general se definen como:

Rotación Estándar

Rotación estándar alrededor del eje-x

Rotación estándar en X

Rotación estándar alrededor del eje-y

Compuerta de rotación estándar en Y

Rotación estándar alrededor del eje-z

Compuerta de rotación estándar en Z

Conclusión

La computación cuántica exige aprender nuevas herramientas matemáticas que la computación clásica no requería. Como vimos, en la computación clásica:

  • Los bits sólo pueden tomar dos posibles valores enteros {0,1}.
  • Las compuertas son lógicas y se pueden representar como tablas de verdad.
  • Juntos estos dos elementos, forman un Álgebra de Boole.

En cambio, en la computación cuántica las cosas cambian radicalmente:

  • Los qubits pueden estar en un estado superposición cuántica de dos estados base {|0⟩, |1⟩} dentro de un espacio de Hilbert.
  • Las compuertas cuánticas son operadores unitarios, que se pueden representar como matrices.
  • El área de las matemáticas necesarias para trabajar con estos elementos es el Álgebra Lineal.

En general, las compuertas cuánticas se pueden visualizar como rotaciones sobre los vectores de estado en la representación de la Esfera de Bloch. Pero esto será tema de otra publicación.

No te voy a mentir, parecen abrumadoras las matemáticas implicadas, hasta en ocasiones parecer difíciles. Pero en verdad, con un poco de paciencia, se pueden aprender y entender.

El computo cuántico es un área de frontera, con diversas áreas para trabajar, investigar y contribuir en distintos niveles, desde las bases, pasando por la teoría y la parte experimental, sin olvidar el desarrollo de software o el diseño de algoritmos. Bien vale el esfuerzo.

Así que ve quitándote el miedo a las matemáticas y acompáñanos en este camino de la computación cuántica.

--

--

Alejandro Martínez Valencia
QuantumHispano

I’m a Physicist working in Data Science and Artificial Intelligence. I am now an enthusiast of Reinforcement Learning and Quantum Computing.