Entradas etiquetadas como ‘algortimo de Grover’

¿Cómo funciona en realidad un ordenador cuántico?

Por Carlos Sabín (CSIC)*

En una entrada reciente hablábamos de uno de los tópicos más resistentes en la divulgación de la física cuántica, aquel según el cual las cosas estarían en «dos sitios a la vez». Cuando esa manera de pensar se traslada a los computadores, el ordenador cuántico es presentado como una máquina que estaría en un montón de estados a la vez y que, por tanto, sería capaz de “hacer un montón de cálculos en paralelo». Este suele ser el enfoque, de hecho, en casi todos los textos divulgativos que se escriben sobre computación cuántica. Es un enfoque consistente desde el punto de visto lógico, pero tiene un problemilla: es falso.

Interior de un ordenador cuántico

Interior de un ordenador cuántico. / IBM Research (CC-BY-SA).

Como explica brillantemente Scott Aaronson en un cómic ilustrado por Zach Weinersmith, la computación cuántica tiene poco que ver con un montón de ordenadores clásicos trabajando en paralelo. De hecho, no sería tan interesante si fuera así, ¿no? En realidad, la computación cuántica se basa en dos ideas, digamos, ‘genuinamente cuánticas’, que en jerga técnica se denominan con las palabrejas ‘superposición’ e ‘interferencia’.

La primera es precisamente la palabra para designar que en la física cuántica las propiedades pueden estar indefinidas o, mejor dicho, definidas solo por probabilidades. Esto hace que el cúbit, la unidad mínima de información en computación cuántica, pueda comportarse de un modo muy distinto a los bits clásicos. Mientras que un bit tiene que estar necesariamente en uno de sus dos estados posibles, 0 ó 1, un cúbit se puede preparar para que tenga una cierta probabilidad de estar en 0 y otra cierta probabilidad de estar en 1. Lo mismo puede hacerse con un conjunto de cubits: se pueden preparar para tener una cierta probabilidad de estar en, digamos, 0000011000… y una cierta probabilidad de estar en 0000111111… o lo que sea.

La segunda palabreja quiere decir que en física cuántica las cosas pueden interferir, de la misma forma que interfiere la luz: cuando dos ondas de luz se encuentran en un sitio, el resultado puede ser que no haya la misma luz que la suma de la luz de las dos ondas por separado: puede haber más luz (interferencia constructiva) o menos luz (interferencia destructiva). Un ordenador usaría la interferencia constructiva para aumentar la probabilidad de tener una de las posibilidades iniciales (la solución del problema) y la interferencia destructiva para reducir las de todas las demás. Esto sólo es posible si en el proceso se genera el famoso entrelazamiento cuántico: es decir, en algún punto es preciso que un conjunto de cubits no solo esté en superposición, sino que existan correlaciones muy fuertes entre ellos, correlaciones que solo pueden alcanzarse en un sistema cuántico. No todas las superposiciones tienen esa propiedad.

Un ejemplo que sí la tiene sería un caso con dos cubits preparados para que tengan una probabilidad del 50% de estar en 00 y la misma probabilidad de estar en 11. El estado de cada cúbit es completamente aleatorio (cada uno de ellos tiene la misma probabilidad de estar en 0 o en 1) pero está totalmente correlacionado con el de su compañero: si hago una medida y determino que el estado de uno de ellos es, por ejemplo, 0, inmediatamente sé que el estado del otro cúbit es también 0.

Circuito de cuatro cubits

Circuito de cuatro cubits. / IBM Research (CC-BY-SA).

El ejemplo de la guía telefónica

Veamos un ejemplo bonito de esto. Por diversos motivos, el interés de este ejemplo es meramente académico, pero confío en que sirva para entender mejor cómo podría funcionar un ordenador cuántico.

Imagine que tiene un número de teléfono pero no sabe a qué persona pertenece. Imagine también que se le ocurre usar la guía telefónica para esto. Puesto que el orden de la guía es alfabético para los nombres, resulta que los números no tienen ninguna ordenación en absoluto, así que ya se puede preparar para una búsqueda lenta y tediosa.

¡Ah, pero podemos usar un ordenador! El ordenador, básicamente, hará lo mismo que haría usted: ir número por número y compararlo con el que tiene usted, hasta que haya una coincidencia. Podría haber mucha suerte y que el ordenador encontrase esa coincidencia tras comparar pocos números… pero también podría haber muy mala suerte y que el ordenador tuviese que rastrear casi toda la guía.

En general, podemos decir que el número de búsquedas que habrá que hacer (el número de pasos del algoritmo que está aplicando el ordenador) crecerá linealmente con el número total de teléfonos de la guía: si multiplicamos por dos el número total de números de teléfono, también aumentará por dos el número de pasos. Pues bien: si tenemos un ordenador cuántico, podemos usar una receta, el ‘algoritmo de Grover’, que hará que encontremos el resultado correcto en menos pasos. Con este algoritmo si aumentamos por dos el número total de teléfonos, el número de pasos aumentará sólo en la raíz cuadrada de dos.

Simplifiquemos aún un poco más, para ver exactamente de qué estamos hablando. Imagine que tras una fiesta usted ha apuntado cuatro números de teléfono en un ordenador (por supuesto, a estos efectos, un teléfono móvil es un pequeño ordenador), cada uno con su nombre correspondiente. Unas semanas más adelante, vaciando los bolsillos, usted se encuentra con una servilleta arrugada donde hay un número escrito, pero ya no se distingue el nombre. No hay problema: solo tiene que introducir el número en su ordenador para que busque a cuál de los cuatro contactos que usted apuntó corresponde.

Si su aparato es clásico, su agenda digital de cuatro números necesitará unos cuantos bits: la información de cada número (por ejemplo, «Nombre: …, Número: …») estará clasificada por el valor de dos bits: o bien 00, o bien 01, o bien 10, o bien 11. Pongamos que el número que busca está guardado en la casilla 10. Cuando usted teclee el número de la servilleta, el ordenador irá casilla por casilla hasta encontrar la 10, identificar el nombre asociado al número y devolvérselo. Con mucha suerte, su número estará en la primera casilla de búsqueda, pero con mala suerte estará en la última, y el ordenador tendrá que dar cuatro pasos antes de encontrar lo que usted busca.

Pero usted mola mucho más que todo eso y tiene un pequeño ordenador cuántico. Entonces, para encontrar su número solo necesita dos cubits y haberse bajado la app ‘Grover’. El primer paso que dará la app será preparar los cubits para que tengan una probabilidad del 25% de estar en 00, una probabilidad del 25% de estar en 01… y así con las cuatro posibilidades. Cuando usted introduzca el número, la app lo identificará como el correspondiente a, por ejemplo, 01, y entonces sabrá la operación (puerta lógica cuántica) que tiene que aplicar sobre el ambos cúbits. Tras esa operación, el algoritmo de Grover nos dice que los cubits ahora estarán en un estado tal que la probabilidad de estar en 01 (o el que sea) es exactamente el 100%. Es decir, en este caso concreto, con solo cuatro números, usted encontrará siempre el número en un solo paso.

Errores cuánticos

Naturalmente, esto (aunque es muy molón) no tiene gran aplicación práctica: la diferencia en el número de pasos no es muy grande, y usted puede encontrar un número en una lista de cuatro con un golpe de vista. Pero si pensamos en una guía de un millón de números, estamos hablando de la diferencia entre hacer un número de pasos del orden de un millón (con un ordenador convencional) o del orden de mil (con un ordenador cuántico). Por supuesto, para eso necesitamos correr la app Grover en un ordenador cuántico con muchos más cubits, y eso todavía no es posible. De momento, los ordenadores cuánticos tienen a lo sumo unas cuantas decenas de cubits, y todavía cometen muchos errores.

Uso dos cubits del ordenador cuántico de IBM para encontrar un número de teléfono en una lista de 4.

Uso dos cubits del ordenador cuántico de IBM para encontrar un número de teléfono en una lista de 4.

Para hacernos una idea, he lanzado el experimento que acabo de describir con dos cubits en el ordenador cuántico de IBM, que es accesible en línea. En la imagen, vemos las operaciones que hay que hacer en el caso de estar buscando el 00. En el primer instante de tiempo (todo lo que ocurre en la misma línea vertical es simultáneo) las dos puertas H sirven para preparar a los cubits en el estado inicial descrito más arriba. Todo lo demás, salvo las dos últimas operaciones, es el proceso de transformación de los cubits, y podemos considerar que es un paso del algoritmo de Grover (este paso sería distinto si estuviera buscando el 01, el 10 o el 11). En el camino, los cubits se entrelazan. Para una búsqueda en una lista más larga, ese paso tendría que repetirse un cierto número de veces.

Las dos últimas operaciones son medidas del estado de los dos cubits. La teoría nos dice que en un ordenador cuántico ideal el resultado de estas medidas sería siempre 00, con probabilidad 100 %. Como los ordenadores cuánticos reales todavía tienen errores que los alejan del comportamiento ideal, el resultado real no es perfecto: como vemos en la segunda imagen, tras 1024 repeticiones del experimento, la probabilidad de obtener el 00 fue del 87 % (ocurrió en 890 ocasiones). Esto nos da una idea realista del estado de la computación cuántica en la actualidad: incluso en ejemplos sencillos y académicos como este los errores son todavía significativos. Por supuesto, esto podría cambiar rápidamente en los próximos años, pero, como ven, hay mucho trabajo por delante todavía.

Resultados de 1024 repeticiones del experimento de la imagen anterio

Resultados de 1024 repeticiones del experimento de la imagen anterior. El resultado correcto se obtuvo el 87% de las veces.

Como resumen, confiamos en que haya quedado claro que un ordenador cuántico no es un aparato que realiza muchas operaciones a la vez o en paralelo. Si así fuera, no sería muy distinto de un supercomputador clásico. Al contrario, un ordenador cuántico usa las propiedades de la física cuántica para acelerar un cálculo concreto. Las correlaciones entre los distintos bits cuánticos pueden hacer que se llegue al resultado deseado significativamente antes de lo que lo haría un ordenador convencional. Eso requiere de recetas específicas para cada problema, las cuales conocemos en un número pequeño de casos, de momento. En el futuro, no solo habrá que diseñar esas recetas para cada caso de interés, sino que habrá que conseguir que los ordenadores cuánticos cometan muchos menos errores, o sean capaces de corregirlos.

* Carlos Sabín es investigador del CSIC en el Instituto de Física Fundamental, responsable del blog Cuantos completos y autor del libro Verdades y mentiras de la física cuántica (CSIC-Catarata).