El reconocido físico Richard Feynman fue uno de los primeros en instalar, en 1982, la idea de un «computador cuántico», máquina que aprovecharía las propiedades de la mecánica cuántica para realizar cálculos imposibles para un computador clásico. Si bien en sus inicios el interés por los computadores cuánticos se remitía solo a la teoría, a principios de los años 90 comenzaron a surgir los primeros algoritmos que realmente se beneficiarían de un computador cuántico. Desde entonces, la investigación se ha volcado no solo a la teoría de la computación cuántica, sino también a intentos de construir estas máquinas con una capacidad de cómputo mucho mayor a lo que podamos imaginar.
Este artículo es una brevísima y muy superficial introducción a lo que significa, hoy, hablar de computación cuántica. Al estar basada en la mecánica cuántica, una rama de la física extremadamente difícil de comprender por intuición (ya que todo lo que ocurre en el dominio de la física cuántica es totalmente distinto a lo que acostumbramos en nuestra vida diaria), la computación cuántica también está llena de conceptos difíciles de entender y mucho más de explicar, pero que intentaré aclarar lo más posible. Porque, en palabras del mismo Feynman:
Si crees que entiendes la mecánica cuántica, no entiendes la mecánica cuántica.
Computación clásica
Los computadores como los conocemos operan a través de bits y transistores. Los transistores son las partes básicas del circuito, que almacenan información y que definen las operaciones que un computador puede realizar. A partir de un par de transistores se pueden desarrollar componentes electrónicas similares a un interruptor, llamadas biestables o flip-flops, con dos posibles estados equivalentes a «apagado» y «encendido». Cada biestable puede almacenar una unidad digital de información, o un bit, abreviación de binary digit (dígito binario). Un bit puede encontrarse solo en un estado de los dos posibles: 0 («apagado») ó 1 («encendido»).
Con esta sencilla manera de almacenar información, y con transitores que realizan operaciones entre bits, es que puedes hacer todo lo que haces en un computador: desde mirar Facebook en tu teléfono hasta correr un pesado videojuego o, en el caso de la computación científica, correr simulaciones del origen del Universo. Absolutamente toda la computación como la conocemos y a la que estamos acostumbrados es clásica, basada en transistores y bits. Los computadores están formados por circuitos integrados, o chips, que poseen millones de transistores capaces de realizar distintas operaciones y almacenar información.
Cada caracter o número dentro de un computador es almacenado como una serie de bits. Mientras más números o información en general podamos almacenar en un circuito, más operaciones pueden ser realizadas por dicho computador. Los primeros computadores tenían capacidad de memoria de unos pocos bytes (1 byte = 8 bits). Hoy en día, es probable que en tu bolsillo tengas un pendrive USB de varios gigabytes de memoria (1 gigabyte = 8 x 10⁹ bits), cuyo chip no es más grande que la punta de tu dedo pero posee más de 4 mil millones de transistores.
La Ley de Moore
Fue en 1965 que Gordon Moore, futuro fundador de Intel, hizo la observación de que el número de transistores presentes en un chip se duplica cada dos años aproximadamente. Esta proposición, conocida actualmente como la Ley de Moore, se ha cumplido hasta el día de hoy.
Esta ley refleja el acelerado avance de los computadores en los últimos años. Mientras más transistores haya en un chip, más operaciones se pueden realizar. Dicho avance es lo que ha llevado a que hoy podamos resolver problemas computacionales que décadas atrás parecían imposibles. Se llama problemas intratables a los problemas que le tomarían a un computador un tiempo enorme en resolver, varios años o incluso siglos. Gracias a la existencia de cada vez más transistores en los circuitos integrados, los problemas intratables son cada vez menos.
Sin embargo, hay un límite físico para la Ley de Moore: si se quiere seguir doblando el número de transistores en un chip, los transistores deben ir haciéndose cada vez más pequeños, hasta alcanzar, incluso, el nivel atómico. El problema es que el mundo atómico se rige por la mecánica cuántica, que es totalmente diferente a la física clásica que rige el mundo que nos rodea y al que estamos acostumbrados.
Es este límite, entre otras cosas, lo que ha llevado a algunos científicos a diseñar computadores cuánticos, que no son sólo una versión más pequeña y más rápida de los computadores clásicos, sino que funcionan de manera completamente diferente.
Bits vs Qubits
En el caso de los computadores clásicos, la información se almacena a través de bits, y cada bit tiene dos posibles estados: 0 ó 1. Por otro lado, los computadores cuánticos usan bits cuánticos, o qubits, para almacenar información. Hay distintos elementos físicos que podrían usarse como qubits: átomos, iones, o incluso fotones y electrones. En la práctica, una de las partículas más usadas para generar qubits han sido los electrones más externos del átomo de Fósforo (que tiene 15 electrones en total).
La gracia de utilizar átomos o electrones como qubits es que se rigen por la física cuántica, es decir, un qubit puede almacenar los valores 0, 1, o 0 y 1 a la vez, gracias a la superposición cuántica, fenómeno que permite a un átomo estar en más de un estado al mismo tiempo, mientras no midamos en qué estado se encuentra (¡algo impensado en la física clásica!). En el momento que medimos en qué estado se encuentra un qubit, todos sus estados posibles colapsan en uno solo, que es nuestra observación final. Pero un qubit no solo tiene la capacidad de almacenar una enorme cantidad de estados diferentes, también puede ejecutar operaciones sobre cada uno de esos estados, independientemente del resto. Si lo pensamos así, la computación cuántica puede no sonar tan maravillosa: si un qubit puede existir en estado 0, 1, y 0 y 1 a la vez, ¿por qué simplemente no reemplazamos un qubit por tres bits que representen dichos estados?
La respuesta está en el entrelazamiento cuántico. Además de la superposición, que permite a un átomo estar en varios estados a la vez, el entrelazamiento genera que dos qubits estén íntimamente ligados, y que la información que ellos almacenan provenga de todas las combinaciones de diferentes estados en los que pueden existir.
Esto es más fácil de comprender con un ejemplo. Supongamos que tenemos dos bits y dos qubits. En el primer caso, con dos bits puedo almacenar una de las siguientes combinaciones:
00
01
10
11
Es decir, con dos bits puedo almacenar solo dos informaciones: el valor del primer bit, y el valor del segundo bit. Esto puede traducirse en un número, un caracter, o lo que sea, pero siempre con dos bits podremos tener dos «piezas» de información.
En el caso de los qubits, y debido al entrelazamiento cuántico, los dos qubits pueden estar en el mismo estado (ambos en 0 o ambos en 1), o pueden estar en distintas combinaciones de estados entre ellos. Es decir, para expresar la probabilidad de que un sistema de dos qubits se encuentre en un cierto estado, la definimos con coeficientes que definen la probabilidad de cada caso:
En este caso, el primer estado tiene una probabilidad α% de existir, el segundo caso existe con probabilidad β%, el tercero con probabilidad γ%, y el cuarto con probabilidad δ%. Noten que ahora, con solo dos qubits, almacenamos cuatro piezas de información: los cuatro coeficientes que determinan el estado del sistema: α, β, γ, y δ. Es decir, si con cierto número de bits puedo almacenar n números, o caracteres, o lo que sea, con el mismo número de qubits puedo almacenar veces esa información. Con «solo» 300 qubits podríamos almacenar 2³⁰⁰ piezas de información, es decir, más que el número de partículas que hay en el Universo. Un chip clásico con 2³⁰⁰ transistores es imposible de construir.
Tal como un computador cuántico puede almacenar una enorme cantidad de información en un solo qubit, también puede procesar toda esa información al mismo tiempo. Es esa propiedad la que les permite resolver, en tiempo finito, problemas que a un computador clásico podrían tomarle décadas.
Sin embargo, hay un problema: como se mencionó más arriba, un qubit se encuentra en todos sus estados posibles al mismo tiempo mientras no midamos en qué estado se encuentra. Al momento de medirlo, su superposición de estados colapsará a algún estado en específico, y ese será el «resultado» que podremos obtener del computador cuántico. Aquí, la mecánica cuántica nos juega una mala pasada: el resultado nos entrega solo uno de todos los estados posibles, y el resto de la información se pierde. En el ejemplo de los dos qubits entrelazados, es equivalente a decir que al momento de medir obtendremos solo uno de los cuatro coeficientes.
Es decir, para utilizar computadores cuánticos, se deben definir problemas de modo que durante su computación se necesite la existencia de gran cantidad de estados a la vez en un qubit, pero que su respuesta final pueda determinarse solo con un estado. Si el problema que intentamos resolver requiere que la respuesta sea una combinación de los estados del qubit, un computador cuántico no nos será útil para resolverlo.
¿Existen ya los computadores cuánticos?
Como todo lo que respecta a la computación cuántica, esta pregunta no es simple de responder. Google, por ejemplo, ha señalado que posee un computador cuántico de 512 qubits, llamado D-Wave Two. Este fue comprado a la compañía canadiense D-Wave, que promete ser la primera en comercializar computadores cuánticos. Sin embargo, un gran número de investigadores del área señala que lo que D-Wave ofrece no es realmente un computador cuántico, ya que puede resolver solo un tipo de problema específico, e incluso hay quienes dicen que, si bien D-Wave se beneficia del uso de qubits, la mayor parte de su funcionamiento real está basado en principios de física clásica.
Esta dificultad para definir qué es y qué no es un computador cuántico hace que sea complicado determinar si existen o no. Sin embargo, lo que si se ha logrado en varios laboratorios alrededor del mundo es la creación y el manejo de qubits. A principios de los 2000 se comenzaron a realizar cálculos en pequeños grupos de 7 u 8 qubits cada uno. El manejo físico de estos qubits se realiza a través de campos magnéticos y trampas de iones, entre otras técnicas. Científicos de IBM en conjunto con la Universidad de Standford lograron, en el año 2001, demostrar el algoritmo de Shor utilizando 7 qubits. El algoritmo de Shor fue el primer algoritmo diseñado, específicamente, para ejecturse en un computador cuántico.
El año 2007, D-Wave presenta su primer «computador cuántico», de 16 qubits. El 2008 se comienzan a hacer avances en el almacenamiento de información al interior de un qubit, utilizando electrones del átomo de Fósforo. En los últimos años, la mayor parte de la investigación se ha dedicado a generar qubits más estables. Recordemos que los qubits no solo se utilizan para realizar las operaciones, sino también para almacenar toda la información necesaria para éstas. A fines del año pasado, científicos rusos mostraron que fueron capaces de crear qubits en simples transistores de silicio, como los de un computador clásico.
IBM dio a conocer, a principios de mayo, el primer computador cuántico accesible a través de la nube, dando a los usuarios acceso a su procesador cuántico de 5 qubits para realizar operaciones. Por ahora, el acceso está restringido para científicos que realmente tengan un proyecto claro que pueda beneficiarse del uso de este procesador. Esto nos muestra, por un lado, lo difícil que puede llegar a ser generar un computador cuántico de solo unos pocos qubits, ya que este procesador es el más avanzado logrado por IBM. Por otro lado, puede ser un augurio que nos muestra que la computación cuántica está cada vez más cerca de los usuarios.
El futuro de la computación cuántica
Ya vimos que los computadores cuánticos no permiten tomar los mismos problemas que resolvemos con computadores clásicos, pero existen algunos desafíos computacionales para los cuales esta tecnología parece ser la solución perfecta. Uno de esos es la factorización en primos. La factorización, tal como su nombre lo indica, corresponde a encontrar los dos factores que, multiplicados, retornan cierto número. Por ejemplo, el 10 puede tener factores 10 y 1 ó 2 y 5, pero solo estos dos últimos son sus factores primos. El 33 solo puede tener los factores 3 y 11, ambos primos.
En principio suena como un problema trivial, y parece un poco ridículo dedicarse a desarrollar computadores cuánticos para resolverlo. Sin embargo, la factorización en primos es la base de la criptografía actual. La criptografía es el proceso utilizado para encriptar o codificar mensajes e información, y hoy en día permite, por ejemplo, que puedas comprar en internet de manera segura. En términos muy simples, supongamos que yo quiero enviarte un número secreto, digamos el 35. Para eso, en lugar de enviarte el 35 y que cualquiera pueda leerlo, te mando solo una parte del mensaje: el 7. Cualquiera que vea el mensaje verá un 7, y no comprenderá el significado. La diferencia es que tu, y solo tu, conoces lo que debes hacer para obtener el verdadero mensaje secreto: multiplicar el número por 5. El 5 es tu llave secreta, y mientras nadie más que tu la conozca, nadie podrá leer tus números secretos.
Si bien el principio no es exactamente el mismo del ejemplo, la criptografía se basa en algo similar, pero los números que utiliza son multiplicaciones de números primos extremadamente grandes, con resultados de más de 200 dígitos. Encontrar los factores primos del 35 es fácil, y se puede hacer a mano. Encontrar los factores primos de un número de 230 dígitos le tomaría varios años a los computadores clásicos más avanzados. Se cree que este es uno de los problemas que la computación cuántica podría resolver. Por supuesto, esto trae muchas implicancias: ¿qué pasaría si se logra desencriptar mensajes en tiempo real? ¿en qué nivel se vería vulnerada nuestra seguridad y privacidad en internet?
Existen otras aplicaciones que en el futuro podrían verse favorecidas por el uso de computadores cuánticos. Por ejemplo, para obtener predicciones metereológicas más certeras, ya que la computación cuántica permitiría evaluar rápidamente muchas más variables de las que un computador clásico puede analizar en un tiempo razonable. También hay posibles aplicaciones en el área de la medicina, ya que con computadores cuánticos se podría analizar rápidamente distintas configuraciones y composiciones de nuevas drogas, y determinar cuál es la más apropiada para atacar cierta enfermedad, ahorrando así tiempo y recursos a los investigadores. Otras aplicaciones son evaluar rápidamente esquemas eficientes para el tráfico, tanto terrestre como aéreo; entrenar de manera mucho más rápida a inteligencias artificiales y algoritmos de aprendizaje computacional; y analizar rápidamente imágenes para detectar cambios, por ejemplo, en imágenes satelitales.
Por ahora, las posibilidades son infinitas, y la computación cuántica es un área que se está investigando y desarrollando rápidamente. Si bien hoy es aún difícil estimar cuánto afectará la computación cuántica nuestra vida diaria, ni cuándo llegarán a existir computadores cuánticos para aplicaciones más estandarizadas y diversas, no cabe duda de que la computación cuántica será una de las tecnologías más importantes en el futuro. Citando a N. David Mermin, físico teórico de la Universidad de Cornell:
Sólo una persona imprudente declararía que no habrán computadores cuánticos útiles en el año 2050, pero sólo una persona imprudente vaticinaría que los habrá.
Fuentes y links de interés
- Quantum Computing: A simple introduction — Explain that stuff!
- A tale of two qubits: how quantum computers work — Ars Technica
- Closing In On Quantum Computing — Wired
- The Long-Awaited Promise of a Programmable Quantum Computer — MIT Technology Review
- Quantum Computing 101 — Microsoft
- How does a quantum computer work? — Veritasium
- Do quantum computers exist? — Plus Magazine
- D-Wave’s Year of Computing Dangerously — IEEE Spectrum
- Why nobody can tell whether the world’s biggest quantum computer is a quantum computer — Quartz
Qué rico encontrarse con artículos como éste. Gracias por tomarse el tiempo de explicarlo y redactarlo de manera tan efectiva y con su debido nivel de detalle sin caer en tecnicismos profundos que asusten.
Muchas gracias por tu comentario, me alegra saber que se cumplió el objetivo 🙂
¡Saludos!
me sumo, primera vez que encuentro un articulo que explique tan bien el tema de la computacion cuantica (que antes no habia comprendido)
Gracias!
Qué capacidad de aclarar algo tan complejo. Muchas gracias. La difusión de la ciencia y la tecnología, paralelamente a su dificultad intrínseca, puede hacerse artísticamente. Un abrazo.
Muchas gracias por tu comentario, me alegro que te haya gustado el artículo 🙂 ¡Saludos!
La computación clásica trabaja con 0 y 1 de manera estricta , cuando eso no ocurre se habla de fallas que hay que evitar, en cambio la mecánica cuántica es probabilista, no tendríamos las mismas ventajas de la computación clásica, habría que tener un computador cuántico real y fijar sus limites en cuanto a lo que pueden y no pueden hacer.
He devorado varios artículos del blog y éste es uno de los mejores. Gracias por difundir esta información de modo tan ameno e interesante. Uno más que estará atento a nuevos contenidos!
Muchas gracias por tu comentario 🙂 ¡Me alegro que te guste!