jueves, 27 de octubre de 2022

Entender la Computación cuántica

 

En los últimos años, el interés por la computación cuántica ha ido aumentando gracias a los avances que se están consiguiendo y a las increíbles aplicaciones que promete satisfacer. 

En este artículo vamos a realizar una breve introducción al fascinante mundo de la computación cuántica. Para ello, aprenderemos qué es la computación cuántica, de dónde viene, qué diferencias tiene con respecto a la computación convencional y hacia donde se dirige.


Un poco de historia

La computación cuántica no es un concepto nuevo, si no que arranca en la década de 1970, cuando el físico estadounidense Paul Benioff comenzó su investigación sobre la información cuántica  y la viabilidad teórica de la computación cuántica. En 1980 describió una máquina de Turing trabajando con algunos de los principios de la mecánica cuántica. A este planteamiento le seguiría la teoría de la información cuántica en ordenadores y robots, aplicando los fundamentos de la física, las matemáticas y la lógica. Su mayor logro fue demostrar que era posible la creación de un modelo reversible de computación cuántica.

En 1982, el Nobel de física estadounidense Richard Feynman, propuso en una conferencia del MIT sobre Física de la Computación, el uso de fenómenos cuánticos para realizar cálculos complejos mediante un ordenador cuántico.

En 1985, el físico británico (nacido en Israel) David Deutsch, de la Universidad de Oxford, y miembro de la Royal Society, describió el primer ordenador cuántico universal, el cual aplicaría el principio de Church-Turing ampliado en el que dicho ordenador cuántico podría simular cualquier otro ordenador cuántico. Tras ello,  fue el primero en formular un algoritmo cuántico y en exponer la idea de que el ordenador cuántico podría ejecutar este tipo de algoritmos. 

En 1995, el matemático estadounidense Peter Shor, diseñó un algoritmo cuántico que demostró que un cálculo tan complejo como el de los factores primos es muchísimo más rápido ejecutándose en un ordenador cuántico. Poco después planteó un sistema de de corrección de errores en el cálculo cuántico. Gracias a este algoritmo, se puede reventar los sistemas actuales de criptografía, con lo que descubrió a todo el mundo el increíble potencial de la computación cuántica.  

En 1998, el MIT consiguió el primer medio para el análisis de información en un qubit, al difundir el primer qubit usando una solución de aminoácidos. Al mismo tiempo, la Universidad de Berkeley presentó el primer computador de 2 qubits

En 2001, se consigue ejecutar el algoritmo de Shor en un ordenador cuántico de 7 qubits del Laboratorio Nacional de Los Álamos, gracias a IBM y a la Universidad de Stanford.

En 2007, investigadores de la Universidad de Yale y del NIST consiguen crear el primer bus cuántico, uniendo componentes cuánticos mediante superconductores. Este bus puede usarse como memoria cuántica para almacenamiento temporal.

En 2008, la NSF consigue por vez primera almacenar un qubit en un átomo de fósforo, aumentando el tiempo de persistencia de la información (1,75 segundos).

En 2009, investigadores de la Universidad de Yale crean el primer procesador cuántido de estado sólido, muy similar a un microprocesador clásico.

En 2012, IBM creó un chip cuántico estable que podría llegar a empresas y hogares en una década.

En 2017, IBM presentó un procesador cuántico comercial de 17 qubits

En 2019, IBM presentó el primer ordenador cuántico comercial, el IBM Q System One. También presentó el ordenador cuántico más potente del mundo, compuesto de 53 qubits. Google demostró la supremacía cuántica, es decir, la demostración de que un ordenador cuántico podría desempeñar una tarea extremadamente compleja en unos pocos segundos, mientras que a un superordenador convencional le costaría miles de años. Por cierto, en el diseño de esta demostración participó el informático y matemático español Sergio Boixo.

En 2021, IBM consigue el primer procesador de 127 qubits.

En 2022, investigadores de la Universidad Tecnológica de Delft (Países Bajos) lograron desarrollar el primer procesador de silicio de 6 qubits. El Instituto Japonés de Ciencia Molecular consiguió utilizar una doble compuerta cuántica, lo que permitió el intercambio de energía e información entre dos átomos en tan sólo 6,5 nanosegundos, usando un láser molecular. Un equipo de la Universidad de Gales del Sur ha diseñado un procesador cuántico a escala atómica que simula el comportamiento de una molécula, tal y como planteó el físico Richard Feynman hace casi 60 años. Científicos de Harvard y del MIT desarrollan un ordenador cuántico de 256 qubits, dentro del proyecto QuEra Computing.

En este repaso histórico hemos sintetizado unos pocos de los hitos más relevantes, pero ha habido muchos e importantes acontecimientos en la reciente historia de la computación cuántica. 

  

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

La computación cuántica (también conocida como informática cuántica) aborda la computación desde un paradigma diferente a la que conocemos actualmente, abriendo una nueva puerta a posibilidades que hasta hoy eran inalcanzables o muy difíciles de alcanzar.


Diferencias entre la computación cuántica y la computación clásica

La primera diferencia entre la computación cuántica y la computación clásica está basada en la forma de la unidad básica de información. 

La computación básica trata la información en secuencias de unos y ceros (bits), que representan puertas lógicas por las que pasa electricidad (1) o no (0) en un momento determinado. La secuencia combinada de bits conforma la generación de valores numéricos representados de forma binaria. Así, los chips y microprocesadores basan su capacidad de almacenar y realizar cálculos en este formato: 4 bits (nibbles), 8 bits, 16 bits, 32 bits, 64 bits, etc.

La computación cuántica trata la información mediante qubits (quantum bits ó bits cuánticos), los cuales pueden valer, 0, 1 o ambos valores a la vez (lo que se conoce como superposición cuántica). 

Estos valores cuánticos se pueden representar en una esfera de Bloch, basada en la mecánica cuántica:

Fuente: Wikimedia

Esta característica ofrece nuevas posibilidades lógicas que requieren de nuevos algoritmos para tratar problemas complejos que son inalcanzables para la computación clásica. 

Entre algunas de las soluciones que ofrece la computación cuántica se encuentra la posibilidad de generar números aleatorios reales (lo cual es esencial para generar hashes para la blockchain), o resolver en unos segundos cálculos complejos que a un ordenador clásico le llevaría años realizar. Investigadores de Google confirmaron que un cálculo que le hubiera llevado realizar 10.000 (diez mil) años a un superordenador actual, en su ordenador cuántico se realizó en apenas 200 segundos.

Entre muchas de las virtudes de la computación cuántica se encuentra la posibilidad de resolver en apenas unos segundos problemas complejos que le llevaría a la computación clásica decenas o cientos de años, como puede ser el descifrado de información encriptada. 

Para entender un poco la magnitud de procesamiento de la computación cuántica, imaginemos un ordenador cuántico de apenas 30 qubits, el cual podría ejecutar 10 billones (10 millones de millones) de FLOPS (operaciones en coma flotante por segundo). Para hacernos una idea, comparado con las videoconsolas más potentes de la actualidad, una XBox One Series X trabaja con 12 TFLOPS, la PlayStation 5 tiene una capacidad de 10,28 FLOPS. Es decir, que este ordenador cuántico tendría la potencia de casi 1 billón de PlayStations 5.


Diferencias entre ordenadores cuánticos y ordenadores clásicos

La arquitectura de un ordenador cuántico es más sencilla, ya que solo se limita a un conjunto de qubits para funcionar, por lo que no requiere de memoria ni de procesadores.

Sin embargo, los ordenadores cuánticos son muy sensibles ante cambios ambientales. Por ello, requieren que la presión atmosférica sea casi inexistente, que estén aislados del campo magnético terrestre y que la temperatura ambiente sea lo más próxima al cero absoluto (-273º C). Estos ordenadores están sellados y manejados desde ordenadores normales.

Fuente: clipset.com

Estas condiciones son extremas, pues si hay interacción con partículas externas se producirían fallos de medición o se borrarían las superposiciones de estados. Los átomos no deben moverse ni colisionar entre sí. Por este motivo, estos ordenadores están funcionando durante intervalos muy cortos de tiempo.

¿Sustituirá la computación cuántica a la computación clásica?

La computación clásica ha revolucionado la forma en que resolvemos problemas complejos en todos los ámbitos: empresarial, personal, educacional, investigación, comunicaciones, etc. Y seguirá dándonos muchas sorpresas y grandes satisfacciones por mucho (muchísimo) tiempo.

La computación cuántica se erige para resolver otro tipo de problemas, concretamente aquellos que la computación clásica no es capaz de afrontar o que sería inviable de resolver. El enfoque de la computación cuántica es explorar nuevas posibilidades de resolver problemas complejos.

Por tanto, la computación cuántica complementará a la computación convencional y viceversa. Ante problemas sencillos y poco complejos, la computación clásica seguirá siendo más eficiente y viable que la computación cuántica. Se abre un mundo de oportunidades y posibilidades en que lo mejor de ambas se complementen para afrontar nuevos e interesantes retos.

Conceptos básicos de la computación cuántica

Durante los últimos años se están logrando muchos e importantes avances en la computación cuántica. Empresas, universidades, institutos y laboratorios de tecnología como el MIT, Universidad de Berkeley, Universidad de Stanford, Universidad de Yale, IBM, Microsoft, Rigetti, D-Wave Systems, Xanadu o QCI están compitiendo en investigación y desarrollo, proponiendo nuevos modelos de hardware y software cada vez más sofisticados y eficientes.

No obstante, vamos a hacer una breve revisión de algunos conceptos básicos en los que está basada la computación cuántica.


Superposición cuántica y la paradoja del gato de Schrödinger

Quizá sea está la característica básica más importante y conocida de la computación cuántica. El principio de superposición es una regla de la física cuántica en la que pueden existir, al mismo tiempo, dos estados. 

La paradoja del gato de Schrödinger es una representación de dicho principio, propuesto por el físico y premio Nobel austríaco Erwin Schrödinger. Esta paradoja explica la superposición a través de un experimento mental en la que tenemos un gato dentro de una caja opaca, la cual, en su interior, posee un mecanismo que une un detector de electrones a un martillo. Justo debajo del martillo se encuentra un frasco de cristal con un letal veneno. Este mecanismo se activaría si el detector detectase un electrón, con lo que el martillo se desplomaría y rompería el frasco, con el fatal desenlace para el pobre gato.

Si abrimos la caja puede que encontremos al gato muerto, o puede que el electrón tome otra dirección y el detector no lo perciba y el gato se salve.

Al final del experimento hay un 50% de probabilidades sobre el estado del gato: vivo o muerto.

Pero la paradoja de la mecánica cuántica estriba en que un electrón es, al mismo tiempo, onda y partícula. Es decir, que toma caminos distintos a la vez, pero no se excluyen, si no que se superponen, como las ondas de agua en un lago. Por tanto, el electrón tomaría el camino del detector y el camino contrario al mismo tiempo. Ambas probabilidades se cumplen simultáneamente, por lo que el gato acabaría vivo y muerto a la vez. Solamente, al abrir la caja, veremos si el gato está vivo o muerto.


Entrelazamiento

Un conjunto de 2 qubits puede representar, a la vez, la siguiente superposición de valores: 00, 01, 10 y 11. A medida que se incrementa el número de qubits, también se incrementa exponencialmente la capacidad de superposición y aumenta la representación de información. A esto se denomina entrelazamiento, pues los qubits se entrelazan en una correlación cuántica, pudiendo realizar operaciones en paralelo o simultáneamente (lo que se conoce como paralelismo cuántico).

En la física, el entrelazamiento cuántico ocurre cuando dos partículas están tan conectadas que lo que le ocurre a una le afecta a la otra, sin importar su distancia. Esta es la clave del teletransporte, y fue una propiedad predicha por Einstein, Podolsky y Rosen (paradoja EPR).


La decoherencia cuántica

El principio de superposición del qubit nos lleva a la posibilidad de obtener simultáneamente múltiples resultados, como consecuencia de la multiplicidad de estados de los qubits implicados en una operación lógica cuántica. Esto se vuelve exponencial a medida que realicemos operaciones con más qubits. 

La decoherencia cuántica se produce en el momento en que las condiciones requeridas para mantener un estado cuántico entrelazado desaparecen. Básicamente, el sistema deja de comportarse según las reglas de la mecánica cuántica y comienza a comportarse acorde a las reglas de la física convencional. Esto provoca que el estado de los qubits se rompa con facilidad, afectando a la superposición y al entrelazamiento, desapareciendo los efectos cuánticos.

Los estados cuánticos se mantienen durante un período de tiempo limitado, durante el cual hay que realizar las operaciones con los qubits. Esto se vuelve más difícil a medida que se añaden más qubits. Pasado este tiempo, la decoherencia de un sistema cuántico producirá errores, ya que los algoritmos no retornarán los resultados esperados. Por este motivo, los ordenadores cuánticos tienen unas características muy especiales para funcionar (tales como su temperatura de trabajo a -273 grados), con el fin de evitar perturbaciones y ruido.

Algoritmo cuántico

Un algoritmo cuántico difiere bastante de un algoritmo convencional. 

Un algoritmo cuántico permite la ejecución de una serie de puertas cuánticas sobre entidades (qubits o registros cuánticos), a los que les sigue un punto de medición. 

Los cómputos se realizan utilizando qubits que operan entre sí a través de puertas cuánticas, manipulando estados. Cuando se enlazan puertas cuánticas es posible calcular funciones complejas.

El algoritmo cuántico se suele representar en un circuito formado por puertas cuánticas, en donde se transforma el estado de un conjunto de qubits desde una superposición inicial hasta una superposición final. 
Ejemplo de circuito con un algoritmo cuántico. Fuente: Towards Data Science


Ya se han desarrollado algunos algoritmos importantes, entre los que cabe destacar:
  • Algoritmo Deutsch-Jozsa (1992): Desarrollado por David Deutsch y Richard Jozsa. Determina si una función de tipo caja negra es constante o balanceada. 
  • Algoritmo de Shor (1995): Desarrollado por Peter Shor. Descompone un número N en factores en tiempo y espacio. Se ha convertido en un referente debido a su papel en el desencriptado de datos.
  • Algoritmo de Grover (1996): Desarrollado por Lov K. Grover. Demuestra que una búsqueda en una base de datos sin ordenación es mucho más rápida usando computación cuántica.  
Existe una multitud de algoritmos cuánticos. Pueden consultarse parte de ellos en el Zoo de Algoritmos Cuánticos.

Campos de aplicación de la computación cuántica

La computación cuántica genera grandes expectativas para dar solución a importantes retos y problemas que hoy en día, con la computación y los ordenadores convencionales, serían impensables. Por ejemplo:
  • Ciberseguridad. Al principio comentamos que en pocos segundos se podría desencriptar cualquier dato encriptado con los potentes algoritmos actuales. Pero también da pie a utilizar nuevos algoritmos de encriptación más robustos, como QKD (Quantum Key Distribution). Esto llevará a redefinir la seguridad en internet y el uso de criptografía cuántica.
  • Medicina y Salud. Ayudará y mejorará la investigación del ADN, y permitirá desarrollar nuevos medicamentos y tratamientos personalizados. Creación y simulación de estructuras moleculares, como las proteínas.
  • Finanzas. Optimización de los sistemas de detección del fraude, gestión de riesgos, simulaciones de previsiones de "crashes" financieros e inversiones seguras, recomendaciones de inversiones.
  • Transporte. Mejora de la planificación del tráfico, optimización de rutas, eficiencia de asignación de aviones en aeropuertos o la eficiencia de los aviones.
  • Industria 4.0. Resolución de problemas logísticos en las cadenas de suministro. Creación de materiales verdes alternativos. Desarrollo de superconductores eficientes. 
  • Química. Investigación de las reacciones químicas (aplicado, por ejemplo, a las baterías). Investigación de estructuras moleculares y simulación de sus reacciones.
  • Ciencia. Testeo de teorías científicas aún sin validar. Búsqueda de eventos de Higgs y el origen del universo. Investigación en la ciencia cuántica.
  • Meteorología. Análisis y predicción del clima.
  • Inteligencia Artificial. Se está avanzando en el campo de la inteligencia artificial cuántica. IBM está produciendo y mejorando un algoritmo de clasificación de aprendizaje automático cuántico. También se está trabajando en el comportamiento hiperrealista de personajes autónomos (no controlados) en videojuegos. También se está avanzando en la inteligencia artificial de vehículos autónomos.
  • Comunicaciones. Se está trabajando en un Internet cuántico, más rápido, seguro y libre de espionaje. Esto podría ser clave en nuevos servicios, tales como el metaverso. 
  • Blockchain. La computación cuántica será clave para la web3, basada en tecnología Blockchain. Algunos de los factores clave de Blockchain son la generación de hashes, la encriptación y la firma de de las cadenas de bloques, asegurando la inmutabilidad de los mismos. La criptografía postcuántica resolvería este problema y aseguraría la inmutabilidad y la seguridad de la blockchain. 

Programación en computación cuántica

¿Podemos iniciarnos en el apasionante mundo de la computación cuántica sin tener un ordenador cuántico? La respuesta es SI.

No es necesario ser miembro de un equipo restringido de investigadores en una prestigiosa universidad, ni trabajar en una de las pocas empresas que construyen ordenadores cuánticos. 

Afortunadamente, tanto Google, como IBM y Microsoft desarrollan software y herramientas para que podamos aprender y construir código y algoritmos, y ponen a nuestra disposición capacidad de cómputo en uno o varios de sus ordenadores cuánticos para testearlo y ejecutarlo.

Google proporciona una plataforma muy completa llamada Google Quantum AI, en la que ofrecen una librería de Python llamada Cirq con la que podemos desarrollar nuestros algoritmos cuánticos. Para testear y ejecutar nuestros algoritmos, Google nos facilita la Quantum Virtual Machine

En el caso de IBM, ofrece un entorno de ejecución llamado Qiskit. Mediante sus herramientas podemos, de manera visual, algoritmos cuánticos usando circuitos usando qubits, puertas lógicas y otros recursos esenciales. También podemos generar estos circuitos directamente con código, usando una librería en Python, que también nos permite visualizar el circuito y simular su ejecución. Adicionalmente, IBM ofrece recursos cuánticos para poder ejecutar estos algoritmos. Podemos elegir uno de estos recursos o máquinas a lo largo del planeta (según la carga y pool que haya), y esperar nuestro turno. IBM también ofrece sistemas y simuladores (de pago) para planes empresariales.

La solución de Microsoft se llama Azure Quantum, en donde tenemos a nuestra disposición los servicios y recursos en la nube suficientes para poder usar el potencial de la computación cuántica. Para desarrollar, Microsoft ha desarrollado el lenguaje Q# y el kit de desarrollo Quantum, el cual puede ser utilizado desde Visual Studio o desde Visual Studio Code. Esta herramienta de desarrollo permite utilizar el lenguaje F#,  Qiskit o Cirq. Al igual que IBM, Microsoft también nos proporciona hardware cuántico y simuladores para poder testear y ejecutar nuestros algoritmos.


Los retos de la computación cuántica

Día a día se logran pequeños avances, y hay algunos objetivos clave para los próximos años.

El reto más importante y urgente es conseguir qubits de calidad, que mantengan la integridad de los estados cuánticos durante más tiempo, lo que permitirá realizar operaciones y algoritmos cada vez más complejos. Adicionalmente, los sistemas de corrección de errores serán claves para garantizar los resultados.

Recientemente, en España, se ha creado el proyecto CUCO, subvencionado por el CDTI y el Ministerio de Ciencia e Innovación, y formado por un consorcio de siete empresas. El objetivo de CUCO es la investigación y la implantación de tecnologías basadas en computación cuántica que puedan ser aplicadas a la industria.

Para 2024 se prevé establecer un estándar de criptografía postcuántica, lo que abre el camino a desarrollar criptosistemas que se puedan ejecutar en ordenadores clásicos pero que no puedan ser atacados por ordenadores cuánticos. 

Para 2025, IBM tiene como objetivo lanzar un ordenador cuántico de 4000 qubits, usando múltiples grupos de procesadores escalados modularmente y ejecutándose en paralelo. Esta tecnología mejoraría la mitigación de errores y orquestaría las cargas de trabajo de forma inteligente. 

Para 2030 se prevé alcanzar el millón de qubits

Para 2040 se prevé romper la criptografía RSA y la curva elíptica.

Queda pendiente saber si llegaremos a usar algún día un ordenador personal o un teléfono móvil cuántico. Pero, sin duda alguna, la carrera de la innovación en la computación cuántica no ha hecho más que empezar. Y las sorpresas que nos deparan son apasionantes.

Referencias


Noticias sobre Computación cuántica:
Desarrollo con IBM Quantum: