Hace poco más de un mes, fui a una charla de Juan Ignacio Cirac en la Ciudad de las Artes y las Ciencias de Valencia. Hizo un recorrido por los descubrimientos de la física cuántica, para llegar y profundizar sobre la aportación de la mecánica cuántica al tratamiento de la información. La unidad mínima de información es el bit, y éste puede tomar los valores 0 o 1. Cualquier ordenador actual, sea doméstico o un sistema de varios procesadores trabajando en paralelo, se basa en los bits, y por lo tanto en el sistema binario. Esta representación de la información, permite que con N bits, podamos obtener 2^N estados. He usado la palabra «estados» adrede para introducir el bit cuántico, también llamado qubit, la aportación de la cuántica. Los dos estados posibles son también el 0 y el 1, pero la mecánica cuántica aporta entre otras cosas, la superposición. Por lo que un qubit puede estar… ¡en ambos estados a la vez! Cosa que nuestro conocido bit, no puede permitirse. Cuando se busca potencia de cálculo, ponemos a trabajar varios procesadores en paralelo de N bits; de esta forma se reparten tareas y se realizan cálculos que no se pueden afrontar con un sólo procesador. Son los llamados supercomputadores, empleados por ejemplo en la predicción meteorológica. En un metro cúbico hay que realizar miles de cálculos numéricos de las cientos de ecuaciones diferenciales que se ven implicadas.
Volvamos a la superposición de estados de nuestros qubits. Lo primero de lo que nos damos cuenta casi de forma intuitiva, es que necesitamos muchos menos qubits que bits para representar la misma información. Y no menos importante, podemos hacer muchísimas más cosas a la vez. Con un bit sólo podemos hacer una cosa: apagar o encender el interruptor -y son excluyentes-. Con un qubit apagamos, encendemos… y estamos apagados y encendidos a la vez. El espíritu del minino de Schrödinger nos acompaña 🙂 Ahora empezad a añadir qubits y sus distintos estados. Podemos poner un estado a hacer la tarea X, otro la tarea Y, y así sucesivamente, de forma no excluyente. Imagino que sois conscientes de la dimensión que esto empieza a tomar, con cada qubit añadido y sus posibles estados superpuestos. Sobre el papel la teoría es muy bonita, el modelo teórico está desarrollado. Pero llevar esto a la práctica, como dijo Ignacio, lo verán otros.
Y es que no sólo disponemos de las bondades de la mecánica cuántica para este modelo, sino también de los inconvenientes. Y uno muy importante es el principio de incertidumbre. Cuando observamos en un sistema cuántico, alteramos lo que estamos viendo/midiendo. Así que uno de los mayores retos es conseguir un sistema que se pueda aislar bien. En el sistema actual de microprocesadores, con el paso de los años se ha conseguido aumentar cada vez más el número de transistores por milímetro cuadrado, y ello ha conllevado un incremento en la capacidad de procesamiento y almacenamiento de la información. Hay un límite físico a la hora de seguir empequeñeciendo dichos transistores, porque precisamente los efectos cuánticos entran en juego y el material semiconductor no seguirá comportándose como se espera. Nuestro modelo de bit clásico ya no se puede desarrollar a esas escalas. De ahí que el qubit tome el testigo y podamos aprovechar toda su potencia, si finalmente se consigue llevar esto a un hardware físico de forma eficiente. Lo que sí que existen ya son simuladores cuánticos.
Las aplicaciones de un futuro ordenador cuántico no sólo estarían focalizadas en la potencia de cálculo y la realización simultánea de tareas, sino también en la seguridad de la información -recordad que cuando observamos, «modificamos»-. Pero esto es un tema para abordarlo en otra ocasión con más profundidad, y tras ver cómo está diseñada la transmisión de la información por internet, el tema de la privacidad -que por cierto no existe- y el espionaje, que es noticia día sí, día no, por el caso Snowden entre otros. No dudo que habrá futuras aplicaciones que surgirán precisamente del desarrollo de dicho ordenador cuántico, y que actualmente no existen o no imaginamos todavía. En este tipo de charlas, al final siempre se establece un pequeño coloquio entre el ponente y los asistentes, que puede llegar a veces a los 20 minutos o media hora. En este caso no fue así, según dijeron por el tiempo disponible. Una pena, porque estoy segura de que se hubiera generado un debate de lo más interesante. Yo iba con unas preguntas en mente, y he de confesar que tras la charla, me surgió una cuestión que no había considerado hasta ese mismo momento, y es la que voy a exponer al menos ahora aquí.
Con un ordenador hay que interaccionar, hay que decirle lo que tiene que hacer y cómo. Para ello hemos desarrollado los sistemas operativos y los lenguajes de programación. Pero los sistemas operativos se escriben en un lenguaje, así que voy a centrarme en los lenguajes de programación. Programamos, escribimos código con una sintaxis más o menos «humana», mezclamos operaciones aritméticas y lógicas, con sentencias de control en las que se usan palabras del lenguaje natural. Esto el microprocesador no lo entiende, él sólo entiende el lenguaje de unos y ceros, sólo maneja bits. Si estamos programando en C o en Java, tenemos un compilador o un intérprete, que se encarga de traducir el código que escribimos en unos y ceros. También está la opción de programar en código máquina o ensamblador de dicho procesador, que tiene una traducción directa. ¿Qué ocurrirá con el ordenador cuántico? ¿La interacción y la programación de tareas, se hará del mismo modo? ¿Los lenguajes de programación se tendrán que reinventar? Bueno, imagino que podremos seguir escribiendo en un lenguaje natural, pero los compiladores/traductores, ¿será necesario rediseñarlos para que interactúen como deben con los qubits? Evidentemente estos siguen siendo unos y ceros, pero sometidos a las leyes de la mecánica cuántica. ¿Implicará esto un cambio de paradigma para este menester? ¿O bastará seguir haciendo lo mismo pero metiendo más lógica para considerar las superposiciones y entrelazado de estados? Sé que se sigue haciendo lo mismo en los simuladores, y una cosa es un sistema con unos pocos qubits, y otra muy distinta un ordenador cuántico.
Desde luego ahora mismo no tiene sentido un ordenador doméstico cuántico, cuando se desarrolle será para hacer las funciones que ahora mismo están reservadas a los supercomputadores o servidores de internet -incluso para almacenamiento masivo en bases de datos-. Pero ahora es ahora, y mañana ya veremos. Así que para obtener la respuesta, esperaré a encontrarme con el espíritu del gato de Schrödinger. Mientras, me quedaré con el otro atravesando gateras. Ya sabéis, ése que no estiró la pata 😉
3 comentarios
María de la Iglesia dice:
21 ago 2013
Yo que vengo de la programación estructurada y todavía no controlo la programación orientada a objetos .. 😛 …… ni me imagino que pasaría con la programación cuántica ……. socorrrooooo…… 🙁
Eva Alloza dice:
22 ago 2013
Ay María, yo ni eso, la cuestión es que no sé imaginarme como sería físicamente ese ordenador cuántico ¿tendría infinitos gatos de Schrödinger muriendo y sobreviviendo a la vez?
Bromas a parte, Susana, lo que explicas es muy interesante y las grandes posibilidades que puede dar en el futuro, pero el camino es largo y todo lo que sea necesario desarrollar para llegar al ordenador cuántico también va a ser muy interesante y seguro que aplicable a muchísimos más procesos. No te puedo contestar ni una de tus dudas, a caso añadir muchísimas más 😉
BitCuántico dice:
14 may 2016
Muy Bueno.