¿Qué es la computación cuántica?

robotechnics

 

¿Cuál es el origen de la computación cuántica?

A principios del siglo XX, Planck y Einstein proponen que la luz no es una onda continua (como las ondas de un estanque) sino que está dividida en pequeños paquetes o cuantos. Esta idea, en apariencia simple, servía para resolver un problema llamado la «catástrofe ultravioleta». Pero a lo largo de los años otros físicos fueron desarrollándola y llegando a conclusiones sorprendentes sobre la materia, de las cuales a nosotros nos interesarán dos: la superposición de estados y el entrelazamiento.

Para entender por qué nos interesan, hagamos un pequeño receso y pensemos en cómo funciona un ordenador clásico. La unidad básica de información es el bit, que puede tener dos estados posibles (1 ó 0) y con los que podemos realizar varias operaciones lógicas (AND, NOT, OR). Juntando n bits podemos representar números y operar sobre esos números, pero con limitaciones: sólo podemos representar hasta 2^n estados distintos, y si queremos cambiar x bits tenemos que realizar al menos x operaciones sobre ellos: no hay forma de cambiarlos mágicamente sin tocarlos.

Pues bien, la superposición y el entrelazamiento nos permiten reducir esas limitaciones: con la superposición podemos almacenar muchos más que sólo 2^n estados con n bits cuánticos (qubits), y el entrelazamiento mantiene fijas ciertas relaciones entre qubits de tal forma que las operaciones en un qubit afectan forzostamente al resto.

La superposición, si bien parece una bendición a primera vista, también es un problema. Tal y como demostraba Alexander Holevo en 1973, aunque tengamos muchos más estados que podemos guardar en n qubits, en la práctica sólo podemos leer 2^n distintos. El por qué lo veíamos en un artículo en Genbeta sobre las bases de la computación cuántica: un qubit no vale sólo 1 ó 0 como un bit normal, sino que puede ser un 1 en un 80% y un 0 en un 20%. El problema es que cuando lo leemos sólo podemos obtener o 1 ó 0, y las probabilidades que tenía cada valor de salir se pierden porque al medirlo lo hemos modificado.

Rendija Cuántica Si tenemos una bola cuántica que oscila 100% en horizontal, siempre pasará por una rendija horizontal. Si oscila en una superposición 50% horizontal y 50% en vertical, sólo pasará algunas veces cuando justo entre con el ángulo adecuado y rebote con el interior de la rendija, y al salir estará oscilando 100% horizontal.

Esa discrepancia entre la información que guardan los qubits y la que podemos leer nosotros llevaba a Benioff y a Feynman a demostrar que un ordenador clásico no sería capaz de simular un sistema cuántico sin una cantidad desproporcionada de recursos, y a proponer modelos para un ordenador cuántico que sí fuese capaz de hacer esa simulación.

Esos ordenadores cuánticos probablemente no serían más que una curiosidad científica sin el segundo concepto, el entrelazamiento, que permite desarrollar dos algoritmos bastante relevantes: el temple cuántico en 1989 y el algoritmo de Shor en 1994. El primero permite encontrar valores mínimos de funciones, que así dicho no suena muy interesante pero tiene aplicaciones en inteligencia artificial y aprendizaje automático, tal y como comentamos en otro artículo. Por ejemplo, si conseguimos codificar la tasa de error de una red neuronal como una función a la que podamos aplicar temple cuántico, ese valor mínimo nos dirá cómo configurar la red neuronal para que sea lo más eficiente posible.

El segundo algoritmo, el algoritmo de Shor, nos sirve para descomponer un número en sus factores primos de manera mucho más eficiente que lo que podamos lograr en un ordenador normal. Así dicho, de nuevo, no suena para nada interesante. Pero si os digo que RSA, uno de los algoritmos más usados para proteger y cifrar datos en Internet, se basa en que factorizar números es exponencialmente lento (añadir un bit a la clave implica doblar el tiempo que se tarda en hacer un ataque por fuerza bruta), entonces la cosa cambia. Un ordenador cuántico con suficientes qubits dejaría completamente obsoletos muchos sistemas de cifrado.

¿Qué se ha conseguido hasta el momento con la computación cuántica?

Hasta ahora, la computación cuántica es un campo que no se ha aplicado mucho en el mundo real. Para que nos hagamos una idea, con los veinte qubits del ordenador cuántico comercial que anunciaba IBM, podríamos aplicar el algoritmo de factorización de Shor sólo a números menores que 1048576, que como os podéis imaginar no es muy impresionante.

Aun así, el campo tiene una evolución prometedora. En 1998 se presentó el primer ordenador cuántico (sólo dos qubits, y necesitaba una máquina de resonancia magnética nuclear para resolver un problema «de juguete» (el llamado problema de Deutsch-Jozsa). En 2001 se ejecutó por primera vez el algorimo de Shor. Sólo 6 años más tarde, en 2007, D-Wave presentaba su primer ordenador capaz de ejecutar el temple cuántico con 16 qubits. Este año, la misma compañía anunciaba un ordenador de temple cuántico de 2000 qubits. Por otra parte, los nuevos computadores de IBM, aunque con menos qubits, son capaces de implementar algoritmos genéricos y no sólo el del temple cuántico. En resumidas cuentas, parece que el empuje es fuerte y que la computación cuántica cada vez será más aplicable a problemas reales.

¿Cuáles pueden ser esas aplicaciones? Como comentábamos antes, el algoritmo del temple cuántico es muy apropiado para problemas de aprendizaje automático, lo cual hace de los ordenadores que lo implementen sean extermadamente útiles, aunque lo único que puedan hacer sea ejecutar ese único algoritmo. Si se pueden desarrollar sistemas que, por ejemplo, sean capaces de transcribir conversaciones o identificar objetos en imágenes y se puedan «traducir» para entrenarlos en ordenadores cuánticos, los resultados podrían ser órdenes de magnitud mejores que los ya existentes. El mismo algoritmo también se podría usar para encontrar soluciones a problemas en medicina o química, como encontrar los métodos óptimos de tratamiento para un paciente o estudiar las posibles estructuras de moléculas complejas.

Los ordenadores cuánticos genéricos, que aunque ahora mismo disponen de menos qubits, sí podrían ejecutar más algoritmos. Por ejemplo, podrían usarse para romper gran parte de de la criptografía usada ahora mismo como comentábamos antes (lo cual explica por qué la NSA quería tener un ordenador cuántico). También servirían como buscadores supperrápidos si se consigue implementar el algoritmo de búsqueda de Grover, y para la física y química pueden ser muy útiles como simuladores eficientes de sistemas cuánticos.

Las barreras que todavía hay que vencer

Por desgracia, los algoritmos y códigos para ordenadores clásicos no se podrían usar en ordenadores cuánticos y obtener una mejora en velocidad mágicamente: es necesario desarrollar un algoritmo cuántico (cosa no trivial) e implementarlo para poder obtener esa mejora. Eso, de primeras, restringe mucho las aplicaciones de los ordenadores cuánticos y será un problema a sortear cuando esos sistemas estén más desarrollados.

Sin embargo, el principal problema al que se enfrenta la computación cuántica es construir los ordenadores. Comparado con un ordenador normal, un ordenador cuántico es una máquina extremadamente compleja: funcionan a una temperatura cercana al cero absoluto (-273 ºC), el soporte de qubits son superconductores y los componentes para poder leer y manipular los qubits no son sencillos tampoco.

Además, los qubits no suelen ser estables, en el sentido de que son muy sensibles a las perturbaciones y al ruido. Esto puede llevar a errores en los cálculos (por ejemplo, si el ordenador calcula 1 + 1 y un qubit cambia por ruido igual el resultado nos sale 3) pero también a que el ordenador no sea cuántico propiamente dicho.

¿Que cómo puede ser un ordenador cuántico no cuántico? Tal y como habíamos explicado antes, los dos conceptos relevantes de un ordenador cuántico son la superposición y el entrelazamiento, y sin ellos no pueden existir las mejoras de velocidad que prometen los algoritmos cuánticos. Si las perturbaciones del ordenador modifican qubits en superposición y los llevan a estados clásicos rápidamente, o si rompen el entrelazamiento entre varios qubits, lo que tenemos no es un ordenador cuántico sino sólo una computadora extremadamente cara que sólo sirve para ejecutar un puñado de algoritmos de manera equivalente a un ordenador normal (y probablemente dé resultados erróneos).

De las dos propiedades, el entrelazamiento es la más difícil de mantener y de probar que existe. Cuantos más qubits haya, más fácil es que uno de ellos se desentrelaze (lo que explica por qué aumentar el número de qubits no es una tarea trivial). Y no basta con construir el ordenador y ver que salen resultados correctos para decir que hay qubits entrelazados: buscar evidencias de entrelazamiento es toda una tarea en sí misma y de hecho la falta de evidencias era una de las principales críticas a los sistemas de D-Wave en sus inicios,

¿Y habrá móviles cuánticos en el futuro?

De momento, parece que la computación cuántica se va a limitar a empresas grandes que puedan aplicarla a problemas complejos y costosos computacionalmente, un poco de forma similar a los inicios de la computación clásica. Probablemente cada vez habrá ordenadores cuánticos más potentes, llegando a lo que Google decía sobre la supremacía cuántica a partir de la cual los ordenadores cuánticos podrían resolver problemas para los que ni el supercomputador más grande tiene suficientes recursos.

Empresas como Google, Microsoft o IBM podrían usar los ordenadores cuánticos para entrenar de manera más eficiente sistemas de aprendizaje automático, o para fines científicos simulando proteínas o sistemas cuánticos. En cualquiera de los casos, serán avances que no probablemente no notaremos mucho como usuarios más allá de la nota de prensa de turno.

Y más a largo plazo, ¿qué podemos esperar? A priori y con los materiales que se están construyendo ahora mismo los ordenadores cuánticos, no parece que la miniaturización sea demasiado factible. Pero ya hay investigaciones sobre nuevos materiales que podrían servir para crear ordenadores cuánticos más accesibles. Quién sabe si de aquí a cincuenta años podamos comprar «CPUs cuánticas» para mejorar la velocidad de nuestros ordenadores.

 

 

La primera pregunta que se nos debería ocurrir cuando hablemos de computación cuántica es: ¿por qué? ¿Qué clase de pensamientos malvados tenían en la cabeza los pioneros de este campo? ¿No les bastaba con la informática tradicional?

Pues lo cierto es que no. A los físicos no les bastaba. Uno de los primeros «momentos de lucidez» es la charla de Richard Feynman en 1982, en la que explicaba cómo era imposible simular sistemas cuánticos en ordenadores tradicionales.

La razón es que estos sistemas son muy complejos. Y no complejos por la teoría que tienen detrás (que también) sino por el número de estados posibles que pueden tener.

Supongamos que queramos simular el movimiento de las bolas en una mesa de billar en un ordenador. Para cada bola, tenemos que guardar dos cantidades: cuánto se mueve a lo largo y cuánto a lo ancho. Dos números por cada «elemento del sistema».

Hay tantos estados posibles en un sistema cuántico que es impracticable simularlos con un ordenador tradicional. Necesitamos más.

Ahora bien, ¿qué pasa si nuestras bolas de billar son «bolas cuánticas» (sea lo que sea eso)? Si sólo tenemos una es fácil: tenemos que guardar cuánto se mueve a lo largo y cuánto a lo ancho. La cosa se complica si tenemos dos bolas. Para la primera, tenemos que guardar cuánto se mueve en esas dos direcciones, pero además cuánto se mueve a lo largo y a lo ancho con respecto a la segunda bola (luego veremos por qué). Cuatro medidas. Si añadimos una bola más al sistema, necesitaremos saber las dos direcciones con respecto a la tercera bola, y además cuánto se mueve a lo larcho y ancho con respecto al movimiento conjunto de la segunda y tercera bola. Un lío.

Por suerte, ese lío está matemáticamente bien definido. Es un lío exponencial. Si tenemos n bolas, necesitaremos 2n medidas por cada una. Y esto tiene consecuencias importantes.

Si tenemos nuestra mesa de billar normal con 2.000 bolas y añadimos una más, necesitaremos guardar dos medidas más. Con nuestra mesa de billar cuántica, si tenemos 2.000 bolas y añadimos una más, necesitamos el doble de medidas. Si en la mesa clásica nos quedamos sin capacidad, nos ponemos el gorro de fabricante de móvil y ponemos una CPU más y otro GB de RAM (por ejemplo) y listos. Si en la mesa cuántica nos quedamos sin capacidad para simular, tenemos que doblar nuestra capacidad de proceso. Ya podéis imaginaros que, en la práctica, es irrealizable hacer simulaciones cuánticas con un número grande de partículas en un ordenador clásico.

clasicovscuantico.png

Por qué importa

El hecho de que un ordenador cuántico evolucione de forma exponencial implica que siempre podemos lograr que sea más rápido que uno tradicional. La analogía la tenéis en el gráfico: ya podemos coger el peor modelo de ordenador cuántico y el mejor tradicional, que al final el cuántico siempre acabará siendo mejor.

Pero, ¿y si usamos un ordenador cuántico? ¿Y si conseguimos aprovechar de alguna forma esa faceta exponencial de las partículas cuánticas para que al añadir una CPU más, siempre dupliquemos la capacidad de procesamiento?

Esa es la idea de la computación cuántica. Aprovechar los estados entrelazados de las partículas para obtener más potencia, calculando a una escala mucho mayor.

Un poco de física

Si la explicación de antes con bolas de billar os ha convencido de que las partículas cuánticas están entrelazadas, podéis saltaros esta sección. Si no, vamos a tener que meternos un poco en el mundo de la física (y en el de la matemática también) para entender qué es lo que hay por detrás de esa característica fundamental de la computación cuántica.

Imagino que todos estaréis familiarizados con el principio de conservación de la energía, que nos dice que la energía de un sistema aislado siempre se conserva. Por ejemplo, si tu tiras un balón en el vacío (donde no hay aire y por lo tanto no hay rozamiento) girando a 10 vueltas por minuto, siempre seguirá girando a la misma velocidad. No cambiará la velocidad de giro a no ser que haya alguna influencia externa.

1: Más o menos. Más formalmente, la magnitud que se conserva es el momento angular, que es la velocidad de giro por la masa. En este caso concreto, si los minibalones son de la misma masa la suma de vueltas por minuto de cada uno debería ser 20.

Bien, ahora supongamos que vuestro balón se divide en dos minibalones a mitad de camino. No ha habido ninguna influencia externa, así que esa «velocidad de giro» debería mantenerse. Si un minibalón está girando a 10 vueltas por minuto, el otro no puede estar girando porque si no habríamos sacado vueltas de la nada, cosa que la física nos dice que no se puede.

Podríamos decir que la velocidad de giro de esos dos minibalones está entrelazada. Si mides la velocidad de un balón, sabrás automáticamente la velocidad del otro.

Algo así, más o menos, es lo que ocurre con el entrelazado cuántico. Una medición en una partícula determina exactamente qué es lo que se medirá en la otra, por muy lejos que esté. Sin embargo, hay una diferencia fundamental con el ejemplo de los minibalones.

En el caso de los minibalones, cuando ambos se dividen tienen una velocidad de giro concreta. Lo único que pasa es que no sabemos cuál es, pero tenerla la tienen. Pero si nos vamos al mundo cuántico, la cosa no es exactamente así. Dos minibalones cuánticos no tendrían una velocidad y dirección de giro concretas: tienen varias superpuestas, y cuando lo medimos lo que hacemos es fijar esa dirección.

Ese es el otro concepto «extraño» de la física cuántica: la superposición de estados. La superposición nos interesa mucho porque es otro fundamento de la computación cuántica. Más tarde veremos por qué, pero de momento nos centramos en la física.

Seguro que muchos habéis visto alguna vez gafas de sol polarizadas. Estas gafas aprovechan una característica cuántica de los fotones (las partículas de luz): el spin, que podemos imaginarnos ahora como una pequeña oscilación en una dirección, como veis en imagen.

oscilaciones.png

La trayectoria de la partícula es la línea negra. Pero además, puede oscilar horizontalmente (rojo) o verticalmente (azul).

Las gafas de sol están polarizadas en una dirección, y actúan como un muro con rendijas horizontales. Un fotón que haya pasado a través de las gafas de sol sólo podrá haber salido por esas rendijas, y por lo tanto estará oscilando horizontalmente, de lado a lado.

Pero si tenéis unas gafas polarizadas a mano y miráis a través de ellas, en seguida os daréis cuenta de que os estoy mintiendo en algo. Con todas las posibles direcciones que puede tener una oscilación (infinitas), debería haber muy pocos fotones con oscilación exactamente horizontal. Es decir, debería pasar muy poca luz por las gafas, y sin embargo, si os las ponéis, veréis que pasa bastante. ¿Qué está pasando?

oscilacion.png

Cualquier dirección en la que oscile se puede expresar como dos componentes: una horizontal y otra vertical. No siempre podemos decir que oscile en horizontal o en vertical, sino que lo correcto es decir que oscila en una dirección que es una combinación de ambas. Por volver a la nomenclatura física: está en una superposición de estados de oscilación vertical y horizontal.

Volvamos a las gafas y al muro con rendijas. Lo que ocurriría en nuestra analogía es que no sólo pasan los fotones que oscilan en horizontal. Es muy probable que los que oscilan casi en horizontal también acaben pasando porque justo cuando llegan al muro tienen un ángulo que les permite entrar. Eso sí, cuando salgan de ella se habrán «golpeado» y la oscilación habrá cambiado: siempre saldrán con la dirección de las rendijas. Cuanto más horizontal sea la oscilación, mayor será la probabilidad de que acaben entrando en alguna rendija.

El experimento de las gafas de sol y la luz polarizada es interesante, y si os fijáis tiene implicaciones importantes. ¿Cómo podemos medir la componente horizontal y la vertical de un fotón? Hemos dicho que cuando pasa por el cristal polarizado horizontalmente (o muro con rendijas, si lo preferís) siempre sale con oscilación horizontal. Y es que hemos cambiado la oscilación del fotón al medirlo.

Nunca podremos medir con total precisión ciertos aspectos físicos de una partícula.

Y eso no es una limitación del experimento. Es una limitación física, llamada el Principio de Incertidumbre de Heisenberg. Es imposible ser 100% precisos a la hora de medir magnitudes físicas emparejadas, como pueda ser la componente horizontal y vertical de oscilación de ese fotón, porque no podemos medir sin tocar la partícula, y por lo tanto modificando alguna de sus magnitudes.

Hasta aquí la «introducción» física de este artículo. Si sois físicos, es posible que hayáis encontrado algunas imprecisione. Unas son intencionadas para simplificar las cosas, en algunas me habré equivocado: la física cuántica es un tema muy complejo y difícil de entender.

Independientemente de ello, tenemos que quedarnos con dos ideas fijas: el entrelazamiento y la superposición de estados.

La computación cuántica: el primer algoritmo

Ahora que ya tenemos los fundamentos de la cuántica que nos interesan, vamos a aplicarlos a la informática. Para ello, el enfoque es simple: vamos a tratar de reproducir lo más básico de un ordenador y a partir de ahí ver si podemos construirlo como si fuese tradicional. De hecho, sólo esa parte básica nos bastará para entender qué es lo que hace tan especial a la computación cuántica.

¿Y qué es ese bloque básico de la computación tradicional? Pues las puertas lógicas. Tienen una o varias entradas; según pase o no electricidad por ellas sacarán o no electricidad por la salida. Por ejemplo, el inversor tiene una entrada y una salida: si la entrada no está conectada saldrá electricidad, y viceversa. Otro ejemplo, la AND (y, conjunción): sólo sale electricidad cuando las dos entradas tienen electricidad.

De la misma forma, se diseñaron puertas similares para ordenadores cuánticos. Y si las puertas clásicas operan sobre bits, donde un 1 es «hay electricidad» y un 0 es «no hay electricidad», las cuánticas operan sobre qubits. Los qubits se refieren a magnitudes físicas emparejadas. Por ejemplo, un 0 sería «el fotón oscila horizontalmente» y un 1 sería «el fotón oscila verticalmente». Como veíamos antes, no sólo hay horizontal y vertical, sino que puede haber una combinación o superposición de ambas.

Las puertas cuánticas operan sobre los qubits de una forma peculiar. Podemos imaginar una puerta que sea una rotación, que modifique la dirección oscilación de una partícula en 90 grados (un cuarto de vuelta). Si tenemos en cuenta que la oscilación tiene dos componentes, lo que hace la puerta es rotar 90 grados la oscilación horizontal y rotar también 90 grados la vertical.

No sé si os habréis dado cuenta de la sutilidad que hay ahí. Con un único «cable», una única puerta y una única operación, hemos obtenido dos resultados.

2: La analogía es muy imprecisa, pero nos sirve para entender el concepto.

Unamos eso a lo que habíamos visto antes del entrelazamiento. Cuando tenemos dos qubits cada qubit tendría cuatro «componentes» o estados: la oscilación horizontal y vertical, y además la horizontal y vertical con respecto a la oscilación horizontal y vertical del otro qubit2 respectivamente. Al hacer una transformación sobre dos qubits, haríamos cuatro operaciones.

Una única operación para calcular múltiples valores al mismo tiempo.

Generalizando, la gran ventaja de la computación cuántica es, como decíamos antes, que con una transformación sobre n qubits podemos hacer 2n operaciones al mismo tiempo.

De esta forma, problemas que se consideraban «difíciles», como por ejemplo la factorización de números, se convierten en «fáciles». Peter Shor diseñó en 1994 un algoritmo para factorizar cualquier número en tiempo polinómico (es decir, «rápido»). Y ese algoritmo es interesante porque precisamente RSA, que protege nuestros datos cuando navegamos, basa su seguridad en el hecho de que se tarda muchísimo (años) en factorizar un número arbitrario suficientemente grande. Dicho de otra forma, la computación cuántica sería toda una revolución en el mundo de la seguridad. Y eso sólo con un algoritmo.

¿Y cómo programo para un ordenador cuántico?

Como todo en la vida, la computación cuántica no es tan bonita. Sí, podemos paralelizar cálculos con mucha más facilidad, pero hay un problema. Recordemos las gafas de sol y el muro con rendijas. Decíamos que sólo podíamos medir una componente de cada uno de los fotones: con los qubits pasa lo mismo. Pueden estar en una superposición de todos los estados que quieras, pero sólo puedes obtener un 1 o un 0 al medir cada uno de ellos. Es decir, a pesar de que en un conjunto de 3 qubits «haya» ocho (23) componentes o estados, sólo obtendrás 3 cuando mires cada uno de los qubits.

El problema de la computación cuántica es que no podemos medir y obtener todos los valores que se calculan al transformar qubits

Esto implica que hay que cambiar la forma de pensar a la hora de diseñar los algoritmos para ordenadores cuánticos. Por ejemplo, el algoritmo de Shor se basa en resultados de álgebra, que establecen una relación entre factores de un número y el período de una función específica. Aprovechando esa capacidad que comentábamos de hacer varias operaciones a la vez, el algoritmo de Shor calcula muchos valores de la función usando los estados de varios qubits, y después aplica la transformada de Fourier cuántica (por si la transformada de Fourier no diese miedo ya de por sí) para combinar todos esos resultados de tal forma que, al medir el estado de los qubits, se obtenga el período de la función de forma aproximada.

Ahora mismo, esa es una de las principales barreras teóricas para desarrollar algoritmos enfocados a ordenadores cuánticos: sí, podemos hacer muchísimas operaciones, pero no podemos obtener los resultados de todas ellas y hay que buscar formas de extraer la información que nos interesa de ahí.

Las dificultades, sin embargo, no se acaban ahí. En Xataka desarrollaremos los retos a los que se enfrenta ahora mismo la computación cuántica, qué le falta para ser realizable en la práctica y los avances que se han logrado hasta ahora.

Sobre ROBOTechnics 121 artículos
Robotica educativa y programacion