En el mundo de la tecnología cada vez se habla más de los ordenadores cuánticos y de lo que son capaces de hacer pero, ¿sabemos realmente qué es lo que les diferencia de los ordenadores convencionales?, ¿cuál es el sistema que hace que estas máquinas estén revolucionando la computación? En esta serie de dos artículos damos respuesta a estas y otras preguntas sobre este tema.

¿Qué significa que un ordenador sea cuántico?

Los ordenadores convencionales, como gran parte de la tecnología que usamos ahora mismo, serían imposibles sin la mecánica cuántica. El diseño de muchos de sus componentes (circuitos integrados, transistores de efecto de campo, diodos de efecto túnel, pantallas,…) es imposible sin ella. Sin embargo, no decimos que sean ordenadores cuánticos. ¿Qué es lo que diferencia entonces a los ordenadores cuánticos? Esta diferencia no es a nivel de componentes, sino en cómo se efectúa la computación. Los datos que manejan los ordenadores convencionales son los estados de corte o conducción de componentes electrónicos. Los ceros y unos, nuestros bits de toda la vida, son, en definitiva, voltajes. Y la circuitería convencional está diseñada para manejar estos voltajes, obteniendo nuevos voltajes acordes a la operación binaria que ejecutan.

La diferencia que introduce un ordenador cuántico está en que la información que manipula no procede de los estados de corte o conducción de una miríada de transistores, sino que procede del estado cuántico de partículas o sistemas. Para ello utiliza nuevos tipos de componentes que sean capaces de manipularlos controladamente aplicando las leyes de la mecánica cuántica, permitiendo así la implementación de algoritmos computacionales. De esta forma llegamos a una primera pregunta que debemos responder si queremos empezar a entender de qué va toda esta película.

¿Qué es el estado cuántico?

El estado cuántico es el estado físico en que se encuentra un sistema cuántico. Estos estados se representan mediante vectores. La famosa función de onda no es más que un vector en un tipo de espacio vectorial que se usa en mecánica cuántica para modelar los sistemas físicos, el espacio de Hilbert. En este punto nos vale aquello que aprendimos en nuestra época de estudiantes de que cualquier vector de un espacio vectorial es expresable como una combinación lineal de un conjunto de vectores de ese espacio que denominamos base.

Una característica de la Mecánica Cuántica es que hay magnitudes físicas que están cuantizadas y que no pueden tomar cualquier valor. El conjunto posible de valores de una magnitud constituye una base del espacio de Hilbert (estrictamente hablando, constituyen la base el conjunto de vectores, llamados propios, asociados a esos valores, llamados también propios) y, por tanto, cualquier vector de este espacio se podrá expresar como combinación lineal de ellos.

Pero hemos dicho antes que el estado físico del sistema es representado mediante vectores, lo cual nos lleva a un resultado muy importante y que es crucial para la computación cuántica: el estado cuántico de un sistema se puede expresar como una combinación lineal o superposición de los estados propios (vectores de la base que estamos considerando).

Esto es lo que se llama principio de superposición, que no es más que la expresión formal de la famosa paradoja del gato de Schrödinger, en la cual, mientras no miremos dentro de la caja, el vector que define el estado físico del gato es una superposición de los estados posibles del mismo: vivo y muerto (esos serían los vectores de nuestra base en este caso). Al mirar (al hacer una medición o interacción con el sistema), la superposición se rompe y el sistema se revela en uno de sus estados posibles: vivo o muerto.

No he comentado antes que, en los vectores de estado cuánticos, los coeficientes que multiplican a los vectores de la base en la combinación lineal están relacionados con la probabilidad de que cuando observemos el sistema, este se encuentre justo en ese estado propio. En concreto, se identifica su probabilidad con el cuadrado del coeficiente correspondiente, lo cual conduce a una condición de normalización sobre estos coeficientes, ya que la suma de sus cuadrados debe ser la unidad pues al medir el sistema se encontrará en uno de ellos (la probabilidad de encontrar al sistema en uno cualquiera de ellos es 1).

Estos coeficientes pueden no depender del tiempo (la probabilidad de encontrar al sistema en cada estado propio no cambia con el tiempo, por lo que se llaman estados estacionarios) o depender del tiempo (las probabilidades van cambiando con el tiempo, por lo que se llaman estados no estacionarios). Aunque puede sonar contradictorio, los estados estacionarios pueden evolucionar en el tiempo, no así las probabilidades asociadas. Esto se debe a que estos coeficientes, en general, son números complejos (el espacio de Hilbert es un espacio vectorial de variable compleja) y la dependencia temporal puede estar en una exponencial compleja, cuyo módulo es la unidad (la conocida fórmula de Euler), de ahí que, al elevar al cuadrado el coeficiente para obtener la probabilidad, la dependencia temporal desaparezca y esta sea constante en el tiempo (estacionaria).

Tanto en el caso estacionario como en el no estacionario, la evolución del sistema es determinista en el sentido estricto del término y viene dada por la ecuación de onda de Schrödinger para el caso de partículas sin spin no relativistas.

¿Y esto qué tiene que ver con la computación cuántica?

A estas alturas, los que aún aguanten leyendo, se preguntarán qué tiene que ver todo esto con la computación cuántica. Ya adelanté que la información en el ordenador cuántico “es portada” en el estado cuántico, que ahora denominamos qubits. Un qubit es un sistema cuántico con dos estados propios (dos posibles estados) o por extensión, la información que contiene un sistema cuántico de estas características. Por tanto, siendo 0 y 1 los estados propios de nuestro qubit, su vector de estado tendrá esta forma:

Sistemas cuánticos que cumplen esta premisa hay muchos, empezando por los electrones y fotones, más simples, si bien hay muchos otros sistemas atómicos, moleculares e incluso redes cristalinas que se pueden utilizar a tal fin.

Para los fines computacionales es preciso poder conservar la información del estado cuántico, por lo que nos interesa que el estado de superposición no cambie con el tiempo, es decir, que los coeficientes y no dependan del tiempo, de manera que tratemos con sistemas que se puedan encontrar en situación estacionaria.

Podríamos pensar que no hemos ganado tanto, teníamos dos niveles de voltaje para representar ceros y unos y ahora tenemos sistemas con dos posibles estados para representar ceros y unos. ¿Dónde está la magia? No debemos caer en el error de aquel rey que quiso premiar al inventor del ajedrez otorgándole el doble de granos de trigo por cada casilla del tablero sin caer en la cuenta de que no había suficientes cereales en el mundo para ello.

Tengamos en cuenta que mientras un bit puede tomar el valor 0 ó 1 (or exclusivo), el sistema que constituye el qubit, en virtud del principio de superposición de la mecánica cuántica, toma ambos valores simultáneamente. ¿Y esto qué mejora supone? Imaginemos un circuito electrónico convencional que trabaja con una entrada de 16 bits (por cada una de las 16 patas de entrada del circuito llega bien un cero, bien un uno, pero solo un valor) y que produce una salida determinada (una única combinación de 16 ceros y unos fruto del procesamiento). El dispositivo cuántico equivalente que reciba 16 qubits a la entrada, está recibiendo el equivalente en información a 2 elevado a 16 bits, puesto que cada qubit toma dos valores posibles. Y a la salida tendremos, no una única combinación de 16 ceros y unos resultado del procesamiento, sino  2 elevado a 16 combinaciones procesadas en paralelo (65.536 resultados). Esto pone de manifiesto el tremendo salto en potencia de computación que supone el cambio al paradigma cuántico. Este es el motivo por el que la criptografía tal y como se conoce actualmente está temblando.

Antonio Martín VivasDigital Banking Tech & Channel – Web Channel Scrum Master