Google vuelve a la carga: ahora, la computación cuántica

El 18 de julio de 2016 la empresa Google logró simular una molécula de hidrógeno (H2).

Pero refrenemos el —por otra parte, comprensible— entusiasmo. Simular una molécula de hidrógeno no es noticia: hasta la fecha se han llegado a simular con precisión moléculas más complejas, como la de propano (C3H8). La novedad no está en el qué, sino en el cómo, y es que esta simulación ha sido sólo la prueba de una tecnología en la que Google —no sabemos si asesorado por ocultas inteligencias artificiales— acaba de dar un paso de gigante. Me refiero, cómo no, a la anhelada computación cuántica.

Cuentos cuánticos

El Santo Grial de la computación fue vislumbrado por primera vez en un tormentoso día de los años ochenta, a las tres de la tarde, por el famoso físico y premio Nobel Richard Feynman, el mismo que dijo una vez: «La Física es como el sexo: seguro que da alguna compensación práctica, pero no es por eso por lo que lo hacemos».

Richard Feynman, junto a los diagramas que llevan su nombre. Fuente.

La idea es sencilla. Si la miniaturización de los componentes informáticos —los transistores— continúa al ritmo de las últimas décadas, en poco tiempo se alcanzará la frontera con el mundo cuántico —a saber, ese en el que un gato puede estar vivo y muerto al mismo tiempo—. A esas escalas, los transistores tradicionales dejan de ser viables, pues los electrones se «escapan» de su confinamiento cavando túneles diminutos. Se estima que se alcanzará este punto en 2021, ¡a la vuelta de la esquina!

Pero lo que el dios cuántico te quita con una mano, te lo da con la otra. Si bien no puede haber transistores de menos de 5 nm, sí podríamos tener bits cuánticos, o qubits. A diferencia de un bit clásico, cuyo estado puede ser 0 o 1 —«apagado» o «encendido»—, un qubit puede estar en una superposición de estados, como el famoso gato. Las operaciones realizadas con ese qubit se aplican a ambos estados, si bien al observar el resultado, el qubit «colapsa» a uno solo —dada una probabilidad conocida—. Si operamos sobre dos qubits, manejamos los cuatro posibles valores. ¿Tres qubits?, ocho valores. El número de valores es exponencial con el de qubits, y eso permite acelerar la solución a ciertos problemas.

Bit clásico (izquierda) de sólo dos valores posibles, comparado con un qubit (derecha) de infinitas posibles superposiciones. Fuente

¿Qué problemas y cuánta aceleración aporta la computación? Si «un montón» no te parece una respuesta satisfactoria, puedes pasarte por la siguiente sección. Si, sobre todo después de leer el encabezado, ya te parece que «un montón» es aceptable, salta a la tercera sección. ¡Elige tu propio artículo!

Atención, sección con un alto orden de complejidad

A los informáticos nos gusta clasificar y ordenar las cosas. Por eso somos informáticos. Una de las cosas que clasificamos son los algoritmos, y lo hacemos de acuerdo a su «dificultad» medida como el tiempo que tarda un ordenador clásico en ejecutarlo. Pero, claro, el mismo algoritmo —por ejemplo, uno que calcule la solución de una expresión aritmética— tardará más o menos dependiendo de la velocidad del ordenador y del tamaño de la entrada —el número de operaciones en la expresión de nuestro ejemplo—, así que abstraemos la dificultad en función de susodicho tamaño, al que llamamos «n», e ignoramos los múltiplos —si un algoritmo tarda en función de 2n en un ordenador, se puede teorizar otro ordenador clásico el doble de rápido que sólo tardará n—.

Decimos que un algoritmo es «de orden de complejidad n», o O(n), si el tiempo que tarda es lineal con el tamaño de la entrada —es decir, si al doblar el tamaño de la entrada también se dobla el tiempo de ejecución—. Existen algoritmos O(1) — que siempre tardan lo mismo — , O(log n), O(n), O(n^2), etc.

Un orden de complejidad es mayor que otro si a partir de cierto número de elementos siempre tarda más que el otro. Fuente

A los algoritmos cuyo orden de complejidad es O(np) o inferior se les clasifica como P —polinomiales—, «fáciles», en nuestro idioma, e incluyen tareas como ordenar una lista alfabéticamente. Todos los que estén por encima, como O(n!) o O(2^n), son los «difíciles». Se los considera difíciles porque a partir de cierto tamaño de entrada, el tiempo necesario para ejecutar el algoritmo es inabarcable. Por ejemplo, si se trata de hallar la ruta más corta entre unas ciudades —el famoso problema «difícil» del viajante de comercio—, puede que para cien ciudades nuestros ordenadores caseros tarden un par de minutos, y al subir a mil ciudades un ordenador del top500 tardaría la vida del Universo.

Sobre la computación cuántica, que también debía tener un hueco en la sección técnica, antes he dicho que podemos operar sobre todos los valores superpuestos de una serie de qubits. Si bien eso es cierto, cuando leemos la salida del algoritmo obtenemos sólo uno de los valores resultado, destruyendo el resto. Es como abrir la caja donde está el gato: descubres si estaba vivo o muerto, y pierdes su superposición.

¡Pues vaya!, dirás. Pero no te des de baja de tu suscripción al Quantum Information & Computation todavía. Es posible realizar las operaciones muchas veces para obtener, con ciertas probabilidades conocidas, los demás resultados. Es más, existen técnicas que elevan la probabilidad de obtener el resultado deseado.

Es cierto que se han creado algoritmos cuánticos muy rápidos para ciertas tareas —algunos de los cuales, como el de factorización de enteros largos, cambiarán la sociedad de arriba a abajo—, pero el mundo de la computación cuántica todavía está en pañales; queda muchísimo partido que sacarle a la superposición de estados. Para más información, este vídeo:

Para cerrar esta sección, y como recompensa, he aquí otra cita de Feynman:

«Hay otro tipo de cosa que no entendéis, queriendo decir: no me lo creo, es demasiado descabellado, es el tipo de cosa que simplemente no voy a aceptar. Con esto espero que estéis conmigo y tenéis que aceptarlo porque es así como funciona la naturaleza. Si queremos saber el modo en que funciona la naturaleza, la miramos cuidadosamente, observándola y… ese es el aspecto que tiene. ¿No te gusta? Pues vete a otra parte, a otro universo donde las reglas sean más simples, filosóficamente más agradables, psicológicamente más fáciles. No puedo evitarlo ¿vale? Si voy a deciros honestamente cómo parece ser el mundo para los seres humanos que han luchado tan duro como han podido para entenderlo, sólo puedo deciros el aspecto que tiene».

Por qué es importante la computación cuántica

La gracia de la computación cuántica es que algunos de los problemas «difíciles» para un ordenador clásico, son «fáciles» para uno cuántico. Un ejemplo es el problema de factorizar un número natural, para el que existe un algoritmo cuántico —el algoritmo de Shor— muy rápido.

El ejemplo de factorizar un número natural no es meramente ilustrativo: ¡es el meollo del asunto! Nuestros sistemas de seguridad en informática —es decir, en todo, a efectos prácticos— se basan en que los ordenadores no pueden factorizar números muy grandes en tiempos razonables —tiempos por debajo de, digamos, la descomposición de un agujero negro mediano por radiación de Hawking—. Pongamos por ejemplo el sistema RSA de clave pública.

En el sistema RSA, Alice —protagonista por antonomasia— genera dos claves, una pública y otra privada. La clave pública permite a otra persona —digamos, Bob— encriptar la información privada que desea enviar a Alice, de modo que sólo ella podrá desencriptarla haciendo uso de su clave privada. Ambas se obtienen a partir de ciertas operaciones sobre dos números primos muy grandes elegidos al azar. Así, dado que un ordenador clásico encuentra muy difícil factorizar la clave pública para hallar los primos y obtener la clave privada, la información secreta de Alice está a salvo.

El sistema RSA, así como muchos otros basados en la factorización números grandes, es la base de sistemas de seguridad como https —la web en la que tus datos están «seguros»— o la mayoría de las transacciones bancarias. Casi nada.

El advenimiento de la computación cuántica obligará a remodelar todos los sistemas con los que nos habíamos sentido tan seguros hasta la fecha. Como consuelo nos queda la encriptación cuántica, un sistema teóricamente irrompible. La pregunta es qué se alcanzará primero: la ruptura de los sistemas RSA o la popularización de la encriptación cuántica.

Comparación entre el tiempo que le lleva factorizar un número al mejor algoritmo clásico, comparado con el algoritmo cuántico de Shor. Fuente

Pero, además de romper claves secretas, la computación cuántica también abriría las puertas a la simulación eficiente del comportamiento de moléculas grandes. Dichas simulaciones no son nada baladíes: permiten comprender cómo funcionan las proteínas, las enzimas, los ácidos nucleicos o las membranas celulares de, por poner un ejemplo totalmente al azar, las células neuronales.

Este conocimiento puede salvar vidas al permitirnos el desarrollo de medicinas más precisas. Más allá de la medicina, la ciencia de los nuevos materiales —como el famoso grafeno—, también puede beneficiarse enormemente de poder predecir las propiedades emergentes de según qué estructuras atómicas.

Hasta nuestros días, la simulación del comportamiento de la materia a escala cuántica es un problema «difícil» en nuestros ordenadores clásicos. ¿Y qué mejor que un ordenador cuántico para simular efectos cuánticos?

¿Qué ha conseguido Google, exactamente?

Desde que Feynman —quien también dijo «odiaría morir dos veces, ¡es tan aburrido!»— atisbara este modelo de computación, su desarrollo teórico conoció cumbres e inviernos, y siempre topaba con el mismo problema: la escalabilidad —o cómo usar a la vez más de una docena de qubits sin tener que rediseñar el circuito para cada nuevo qubit—. Hasta la fecha, el ordenador cuántico más grande contenía una docena de qubits. Este problema hizo que se acuñara la expresión «la computación cuántica es el futuro, y siempre lo será».

Ese era el estado de ánimo al respecto de la materia hasta que llegó Google — ¿no empezamos a atisbar un patrón?— y con una implementación de un ordenador cuántico de cuatro qubits y el uso de un sistema cuántico con el ilustrativo nombre de Variational quantum eigensolver, logró simular con precisión las energías de una molécula de Hidrógeno.

D-Wave, el «ordenador cuántico» del que sólo hay dos ejemplares: uno es propiedad de Google (en la imagen) y el otro de la NASA. Fuente

El hito logrado por Google consiste en que, según alegan los físicos de la compañía, su implementación es la primera versión de un ordenador cuántico escalable. Si un servidor no entiende mal, esto significa que podrían comenzar a escalarlo en cualquier momento, y que pronto contaríamos con ordenadores cuánticos, no de cuatro qubits, ni de ocho, sino de miles. Y con miles de qubits, estamos hablando ya de un ordenador cuántico funcional.

Pero atención, que hay más. El circuito Variational quantum eigensolver fue desarrollado para simular el funcionamiento de nuestro propio cerebro a nivel cuántico. No es la primera vez, precisamente, que Google muestra interés en las redes neuronales y sus aplicaciones. La empresa está siguiendo una senda muy clara hacia la consecución de una Inteligencia Artificial General, capaz de imitar a la perfección la nuestra propia. El futuro está más cerca de lo que imaginamos.

Richard Feynman, a quien hace tiempo que no nombro, va a cerrar perfectamente este artículo:

«Mientras estás solucionando un problema, no te preocupes. Ahora, después de que has resuelto el problema, es el momento de preocuparse».
Si no te ha quedado muy claro en qué consiste la computación cuántica, Kurzgesagt te lo explica de nuevo.

También puede interesarte:

Si te ha gustado el texto, por favor compártelo en las redes sociales que uses habitualmente o recomiéndalo en Medium.

Carlos Vázquez trabaja como desarrollador web en Londres. Coautor del libro de relatos Uno más y lo dejo, escribe ficción desde hace más de diez años.

Puedes seguirle en twitter en @CarlosVazquezPI, y puedes mantenerte al tanto de las publicaciones de Punto y Coma en @PuntoyComaMed o en la página de Facebook.