← Volver

La superposición no significa probar todas las soluciones a la vez

La superposición permite representar amplitudes asociadas a distintos estados, pero una medición no nos entrega todos esos estados. La clave de los algoritmos cuánticos está en manipular amplitudes mediante interferencia para favorecer resultados útiles.

Superposición
Superposición

Hay una suposición errónea sobre computación cuántica que aparece con demasiada frecuencia: «como un cúbit puede estar en 0 y 1 al mismo tiempo, un ordenador cuántico puede probar todas las soluciones simultáneamente».

Este error conceptual se produce más en desarrolladores de software porque tenemos interiorizado el concepto de paralelización o computación en paralelo.

La superposición es una de las propiedades que hacen posible la computación cuántica, pero por sí sola no resuelve un problema ni nos permite leer de golpe todas las alternativas representadas por un registro cuántico. Si fuese así, diseñar algoritmos cuánticos sería muy sencillo, y no lo es: prepararíamos una superposición con todas las entradas posibles, ejecutaríamos una operación y preguntaríamos al ordenador cuál es la respuesta correcta.

El problema está precisamente en esa última parte: la medición.

Qué significa realmente que un cúbit esté en superposición

Para comprender bien el concepto de superposición, no tenemos más remedio que utilizar la notación matemática que se usa en computación cuántica, que te aseguro que es más fácil de lo que parece.

Vamos lo básico: un bit clásico almacena un 0 o un 1. El estado de un cúbit, en cambio, puede escribirse como

∣ψ⟩=α∣0⟩+β∣1⟩|\psi\rangle = \alpha |0\rangle + \beta |1\rangle

, en donde α\alpha y β\beta son números complejos llamados amplitudes, como ya hemos visto en algunos de mis artículos anterior. Además, deben cumplir

∣α∣2+∣β∣2=1|\alpha|^2 + |\beta|^2 = 1

Lo importante aquí es no confundir amplitudes con dos valores clásicos almacenados simultáneamente. Al medir el cúbit en la base computacional obtendremos 0 con probabilidad ∣α∣2|\alpha|^2 y 1 con probabilidad ∣β∣2|\beta|^2. Una única medida produce un único resultado clásico.

Podemos verlo con una de las puertas más habituales en computación cuántica, la puerta Hadamard. Si comenzamos en ∣0⟩|0\rangle y aplicamos HH (así representamos la aplicación de transformación de la puerta Hadamard):

|0⟩ ──H──M──

, obtenemos

H∣0⟩=∣0⟩+∣1⟩2H|0\rangle = \frac{|0\rangle + |1\rangle}{\sqrt{2}}

Al medir muchas ejecuciones independientes del circuito, observaremos aproximadamente la mitad de resultados 0 y la mitad 1. Pero en cada ejecución obtenemos únicamente uno de ellos. IBM Quantum describe precisamente un estado general mediante amplitudes complejas normalizadas y la medición de una superposición como un resultado probabilístico.

Esto ya debería hacernos sospechar de la expresión «probar todas las soluciones a la vez». Aunque preparemos muchas posibilidades, no disponemos al final de un return capaz de devolverlas todas, y sé que esto choca al principio bastante cuando te acercas a esta disciplina por primera vez.

Muchos cúbits tampoco solucionan el problema

La confusión se vuelve todavía más tentadora cuando pasamos de uno a varios cúbits. Con nn cúbits podemos describir un estado general como una combinación de 2n2^n estados de la base computacional:

∣ψ⟩=∑x=02n−1αx∣x⟩|\psi\rangle = \sum_{x=0}^{2^n-1} \alpha_x |x\rangle

con

∑x∣αx∣2=1\sum_x |\alpha_x|^2 = 1

Por ejemplo, dos cúbits inicialmente en ∣00⟩|00\rangle, después de aplicar una Hadamard a cada uno, quedan en

12(∣00⟩+∣01⟩+∣10⟩+∣11⟩).\frac{1}{2}(|00\rangle+|01\rangle+|10\rangle+|11\rangle).
|0⟩ ──H──M──
|0⟩ ──H──M──

Tenemos amplitudes asociadas a cuatro estados. Sin embargo, al medir no recibimos una lista con 00, 01, 10 y 11. Recibimos uno de esos cuatro resultados.

Este detalle cambia por completo la perspectiva. Un circuito puede transformar conjuntamente las amplitudes de muchísimos estados de la base, pero representar esas posibilidades no equivale a extraer el resultado de una computación clásica realizada independientemente sobre cada una de ellas.

Llegados a este punto, lo normal es que te preguntes: ¿para qué sirve preparar una superposición?

La parte interesante no es solo la superposición: es la interferencia

Vale, vamos a añadir otro concepto para enredarnos un poco más, aunque te aseguro que cuando interiorizas todo esto, te parece lo más natural del mundo.

Las amplitudes poseen magnitud y fase (vienen representadas por números complejos). Esto permite que, durante la evolución del circuito, contribuciones correspondientes a diferentes caminos computacionales se sumen o se cancelen. Ahí aparece la interferencia.

Hay un circuito mínimo que lo muestra mejor que muchas analogías:

|0⟩ ──H──H──M──

La primera Hadamard prepara

∣+⟩=∣0⟩+∣1⟩2|+\rangle = \frac{|0\rangle+|1\rangle}{\sqrt{2}}

Puede parecer que hemos introducido simplemente un 50 % de probabilidad para cada resultado. Pero aplicamos una segunda Hadamard y ocurre algo revelador:

H∣+⟩=∣0⟩H|+\rangle = |0\rangle

El resultado deja de ser 50/50. En el circuito ideal, la medición devuelve 0 con probabilidad 1. Las amplitudes han interferido. La puerta Hadamard es además su propia inversa, por lo que H2=IH^2=I.

Podemos hacer aún más visible el papel de la fase introduciendo una puerta ZZ entre las dos Hadamard:

|0⟩ ──H──Z──H──M──

Después de la primera Hadamard tenemos ∣+⟩|+\rangle. La puerta ZZ cambia la fase relativa y produce

∣−⟩=∣0⟩−∣1⟩2|-\rangle = \frac{|0\rangle-|1\rangle}{\sqrt{2}}

La segunda Hadamard transforma este estado en ∣1⟩|1\rangle. Una fase que no distinguíamos midiendo inmediatamente después de la primera Hadamard termina convirtiéndose, gracias a la interferencia, en una diferencia observable.

Eso se parece mucho más a lo que queremos conseguir en un algoritmo cuántico.

Un algoritmo cuántico necesita preparar, transformar e interferir

Supongamos que tenemos un espacio enorme de candidatos a una solución. Poner esos candidatos en superposición es solo el comienzo, de hecho, la mayoría de lagoritmos cuánticos comienzan de ese modo. Si terminamos el circuito y medimos inmediatamente, obtendremos una muestra según la distribución de probabilidades existente. No hay ninguna razón para que sea precisamente la solución que buscamos.

El trabajo del algoritmo consiste en diseñar transformaciones que exploten la estructura del problema. De manera simplificada, queremos que determinados caminos interfieran destructivamente y reduzcan la amplitud de resultados que no interesan, mientras otros interfieren constructivamente y aumentan la amplitud de los resultados útiles. Y por último, medimos, claro.

Ésta es una diferencia fundamental respecto a imaginar un gigantesco for ejecutándose mágicamente en paralelo.

Además, no todos los algoritmos cuánticos utilizan exactamente la misma estrategia ni ofrecen el mismo tipo de mejora. Algunos explotan interferencia y periodicidad, otros realizan amplificación de amplitud, otros están diseñados para estimar propiedades de estados cuánticos. Hablar simplemente de «paralelismo cuántico» puede ocultar precisamente lo más importante: cómo consigue el algoritmo que la información útil termine siendo observable.

Pero como somos humanos, y salvando las distancias, siguiendo la expresión popular del martillo de Maslow (si la única herramienta que conoces es un martillo, todos tus problemas parecerán clavos, o algo por el estilo), y, del mismo modo, los desarrolladores de software que hemos interiorizado tanto la computación clásica, tratamos como es normal, adaptar todos los conceptos que conocemos tan bien, a este otro modelo de computación, y en ese paso, se producen muchas confusiones.

La medición impone las reglas del juego

Para un desarrollador de software, quizá éste sea el cambio mental más importante. Estamos acostumbrados a pensar que, si una computación ha generado información internamente, podremos inspeccionarla después. La computación cuántica no funciona así.

El vector de estado contiene amplitudes, no un array clásico que podamos recorrer para imprimir sus 2n2^n componentes desde un procesador cuántico. La medición que hacemos sobre el registro produce resultados clásicos de acuerdo con las probabilidades determinadas por esas amplitudes.

Por eso un algoritmo cuántico útil no se limita a crear muchos estados posibles. Debe organizar la evolución de sus amplitudes para que la medición revele información que nos interese con suficiente probabilidad, normalmente recurriendo también a múltiples ejecuciones y procesamiento clásico de los resultados.

Ese matiz es importante porque elimina parte de la aparente magia sin restarle interés a la computación cuántica. Al contrario: el problema realmente interesante no es tener 2n2^n términos en la descripción matemática de nn cúbits. El reto consiste en conseguir que las operaciones cuánticas hagan algo computacionalmente aprovechable con ellos.

Una forma más útil de pensar en la superposición

Yo evitaría la idea de que un ordenador cuántico «prueba todas las soluciones a la vez». Afirmar eso puede que sea un primer paso para digerir realmente lo que está ocurriendo. Como atajo divulgativo parece explicar mucho, pero después obliga a desaprender demasiado.

Es más preciso pensar que un registro cuántico puede mantener amplitudes asociadas a múltiples estados de una base y que un circuito transforma esas amplitudes, incluidas sus fases, antes de medir. La superposición crea el espacio en el que puede producirse esa evolución; la interferencia permite redistribuir amplitudes; la medición determina qué información clásica podemos recuperar.

Y ahí está buena parte del arte de los algoritmos cuánticos: no en generar todas las posibilidades, sino en diseñar una evolución en la que las posibilidades que nos interesan tengan una forma útil de hacerse visibles al final.

Después de leer lo anterior, tendrás una idea más clara de la imprecisión cuando escuches a alguien decir que un ordenador cuántico es rápido porque «prueba todas las soluciones al mismo tiempo». Una superposición no es la respuesta a un problema. Es solo parte del mecanismo con el que determinados algoritmos cuánticos intentan construirla.