A pesar de haber escrito ya unas cuantas entradas sobre computación cuántica, todavía no he llegado al punto en que le explico cómo funciona un ordenador cuántico, y las reglas fundamentales para escribir algoritmos para estos futuros aparatos. Voy a aprovechar la pausa para hacerlo, y le adelanto que el asunto se las trae.
Voy a usar una metáfora muy mía, a la que llamo quantum drag & drop. La voy a explicar usando un ordenador imaginario con un solo qubit, pero es fácilmente extrapolable al número de qubits que se le ocurra. La simplificación sólo nos servirá para hacer más fácil la imaginación visual. Es sencillo visualizar una esfera de Bloch para un qubit. Las hiper-esferas de más de un qubit pueden que las visualice algún extraterrestre, pero que yo sepa, nadie me lee fuera de este planeta.
Inicialización, rotación y medición
La idea, básicamente, consiste en que todo algoritmo cuántico tiene tres partes: inicialización, rotación (o transformación) y medición. No hay nada nuevo en esto: lo hemos estando viendo desde el inicio de este blog.
- Inicialización
- Casi nadie piensa en la inicialización de verdad, porque el ordenador cuántico ya nos la da hecha. Pero hay que recordarlo de vez en cuando: el ordenador comienza con un estado cuántico bien determinado, que normalmente es el estado que se asocia a una cadena de ceros clásicos.
- Transformación: superposición
- La primera parte de la transformación, en la mayoría de los algoritmos útiles, consiste en transformar ese estado inicial a un estado que sea una superposición de estados de la base de medición. La transformación es una simple rotación del estado inicial. Estamos hablando de un espacio multidimensional complejo, pero las dichosas transformaciones no dejan de ser rotaciones.
- Más transformaciones
- … y a partir de ese momento, seguimos rotando el estado conseguido. Al final, no importa cuántas rotaciones hagamos: las rotaciones son un grupo algebraico, y la ejecución de dos de ellas es simplemente otra rotación.
- ¡Colapso!
- Las rotaciones son matemáticamente bonitas y comprensibles, pero para terminar el algoritmo, hay que medir. Y para medir, hay que provocar el colapso del estado cuántico. Esto es muy feo. Hay tropecientas sectas entre los físicos, y no hablemos ya de filósofos, enfrentadas por cómo interpretan este rollo del colapso, o según la excusa que dan para ignorarlo. Este paso es el que proporciona la salida del algoritmo: una cadena de ceros y unos clásicos.
La metáfora visual
Necesitaríamos imaginar una hiper-esfera de Bloch, pero nos vamos a tener que apañar con la esfera de un qubit. No hay diferencias en el argumento básico, y si alguien descubre que me equivoco, que me lo diga inmediatamente, por favor.
El estado inicial que proporciona el ordenador es algo parecido a esto:
La bolita azul que está en el polo norte marca en qué estado cuántico está el aparato. Como convenio, vamos a suponer que un cero «clásico» es el polo norte, y que el uno «clásico» es el polo sur. El estado solamente puede moverse sobre la superficie de la esfera, y todo lo que no sea el polo norte o el polo sur es un estado superpuesto.
¡Mucho cuidado con esto! En muchos libros, le explicarán que, en el caso de N-qubits, el estado en alguno de las esferas correspondientes a los qubits separados, puede estar dentro de la esfera. Pero eso ocurre solamente si consideramos los qubits por separados. Cuando se utiliza una hiper-esfera para el conjunto de qubits, el estado siempre estará en la superficie de la hiper-esfera, porque la única transformación posible es una rotación.
Tras la inicialización, en la que nosotros no intervenimos para nada, nuestro papel es agarrar la bolita de las narices y hacerla rodar sobre la esfera o hiper-esfera hasta el sitio que queramos, para que quede más o menos así:
¿Le extrañaría mucho si llamo «drag» a esta parte del algoritmo? A continuación, naturalmente, vendrá el «drop«: soltamos la bolita, y esta regresará a uno de sus estados «naturales» clásicos. En el caso de un un qubit, al polo norte o sur. En el caso que no podemos visualizar cómodamente de con N-qubits, a uno de los 2^N estados clásicos marcados en la superficie de la hiper-esfera. A cuál de ellos, exactamente, dependerá del azar, y de los pesos en el estado transformado de los estados de la base de medición. Dicho en otras palabras: si estábamos más cerca del polo norte que del sur, es más probable que veamos a Santa Claus que a un pingüino. Pero a no ser que estamos en el mismísimo polo norte, siempre hay la posibilidad de ver al pingüino.
Voilà, c’est tout!
Conclusiones inevitables
Hay mucha exageración ahora mismo con las capacidades de la computación cuántica. Esto no beneficia a nadie… excepto a algunos cazadores sin escrúpulos de subvenciones, que se aprovechan de la mano suelta de los políticos y del miedo de todos a «quedarse atrás».
No hay que caer en el extremo contrario: la computación cuántica tiene muchas aplicaciones… o las tendrá cuando el hardware esté realmente disponible. Pero el Office, la contabilidad de la empresa y el Spotify van a seguir funcionando sobre una CPU clásica.
Hay sólo tres o cuatro algoritmos cuánticos útiles, y llevamos veinte años en esta situación. Es difícil prever lo que el genio humano puede conseguir. Pero, por favor, no perdamos el contacto con la Realidad.