← Volver

Phase kickback: el mecanismo oculto tras muchos algoritmos cuánticos

Una introducción visual y matemática al phase kickback, el mecanismo que convierte fases cuánticas en información útil para muchos algoritmos.

Phase KickbackDeutsch-Jozsa
Tu primera aplicación cuántica

Hay conceptos de computación cuántica que parecen mucho más extraños de lo que realmente son porque solemos encontrarlos por primera vez dentro de algoritmos ya bastante complejos. El phase kickback, o retroceso de fase, es uno de ellos, y reconozco que cuando me enfrenté a este concepto por primera vez, me costó mucho comprenderlo, al menos en una primera aproximación.

La idea esencial del phase kickback es esta: bajo determinadas condiciones, una fase asociada a la acción de una operación sobre un cúbit objetivo aparece como una fase relativa en el cúbit de control. Esa fase no se observa directamente al medir, pero podemos transformar después esa información de fase en diferencias de probabilidad que sí son medibles. De algún modo, al manipular las fases, estamos manipulando la información que representan los cúbits.

Dicho así, quizá siga sonando poco intuitivo. Vamos a desmontarlo como haríamos con una pieza de software que no terminamos de comprender: primero aislamos el mecanismo mínimo, observamos qué entra y qué sale y, solo después, volvemos al sistema completo.

Para comprender lo que sigue a continuación, hace falta cierta familiaridad con el álgebra lineal de la computación cuántica y nociones básicas de ésta, para lo que recomiendo el libro “Dancing with cúbits”, de Robert S. Sutor.

¿Es imprescindible comprender phase kickback para un Quantum Software Engineer?

Como habrás visto en este artículo (y en otros que he publicado por el momento), todo está lleno de conceptos de la computación cuántica, de naturaleza matemática (notación de Dirac, autoestados, fases globales y relativas, números complejos, etc), así como concepto puramente cuánticos como phase kickback, entrelazamiento y otros.

Te puedes preguntar si realmente hace falta conocer todo esto con detalle y profundidad para implementar algoritmos cuánticos.

Mi opinión es que un Quantum Software Engineer, no tiene por qué ser un experto en todo lo anterior, pero sí conocerlo mínimamente; es como un programador de computación clásica que ignorase qué es un byte o cómo se almacena la información en el disco duro, por poner un simple ejemplo.

Si te pasa como a mí, comienzas queriendo programar una solución cuántica y poco a poco, vas tirando del hilo, descubriendo un mundo del que realmente dudo mucho que se pueda terminar nunca de conocer en toda su riqueza y profundidad, porque un simple concepto te lleva a otro, vas tirando del hilo, y éste es interminable, algo que para mí es precisamente lo que me proporciona un interés creciente y rico sobre la computación cuántica.

Antes de empezar: una fase no es todavía un resultado

Un estado cuántico puede multiplicarse por un número complejo de módulo uno sin que cambien directamente las probabilidades de una medida en la base computacional. Por ejemplo:

∣ψ⟩↦eiϕ∣ψ⟩|\psi\rangle \mapsto e^{i\phi}|\psi\rangle

Si toda la función de estado queda multiplicada por el mismo factor, hablamos de una fase global. Esa fase no altera las probabilidades observables.

Lo interesante aparece con las fases relativas. Considera estos dos estados:

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

Si medimos cualquiera de ellos directamente en la base computacional, obtenemos 0 y 1 con la misma probabilidad. Sin embargo, no son el mismo estado. El signo menos introduce una fase relativa entre las dos amplitudes. Una puerta Hadamard permite revelar la diferencia:

H∣+⟩=∣0⟩H|+\rangle=|0\rangle H∣−⟩=∣1⟩H|-\rangle=|1\rangle

Este detalle es fundamental. En un algoritmo cuántico no necesitamos «medir una fase» directamente. Podemos hacer que esa fase participe en una interferencia posterior y termine modificando probabilidades que sí podemos observar.

El circuito mínimo

Tomemos dos cúbits. El primero será el control y el segundo el objetivo. Preparamos el control en superposición:

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

Y preparemos el objetivo en el estado ∣1⟩|1\rangle. El estado conjunto es entonces:

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

Ahora aplicamos una puerta CNOT, controlada por el primer cúbit. Sabemos que X|1\rangle=|0\rangle, de modo que el resultado sería un estado entrelazado. Pero el phase kickback se ve con mucha más claridad si elegimos como objetivo un autoestado del operador que controlamos.

Para X, uno de esos autoestados es ∣−⟩|-\rangle:

X∣−⟩=−∣−⟩X|-\rangle=-|-\rangle

Ese signo menos es el que nos interesa. Preparemos entonces:

∣+⟩∣−⟩|+\rangle|-\rangle

Antes de aplicar la CNOT podemos escribirlo como:

12(∣0⟩∣−⟩+∣1⟩∣−⟩)\frac{1}{\sqrt{2}} \left(|0\rangle|-\rangle+|1\rangle|-\rangle\right)

La operación controlada no aplica X cuando el control está en ∣0⟩|0\rangle, y sí lo hace cuando está en ∣1⟩|1\rangle:

12(∣0⟩∣−⟩+∣1⟩X∣−⟩)\frac{1}{\sqrt{2}} \left(|0\rangle|-\rangle+|1\rangle X|-\rangle\right)

Como ∣−⟩|-\rangle es autoestado de X con autovalor −1-1:

12(∣0⟩∣−⟩−∣1⟩∣−⟩)\frac{1}{\sqrt{2}} \left(|0\rangle|-\rangle-|1\rangle|-\rangle\right)

Podemos factorizar el segundo cúbit:

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

Y aquí está todo el mecanismo. La aplicación de X sobre el cúbit objetivo ha introducido un signo −1-1, pero al reorganizar el estado vemos que esa fase relativa ha quedado asociada al cúbit de control, parece misterioso, pero es efecto de la mecánica cuántica. El objetivo, además, permanece en su autoestado.

De ahí el nombre phase kickback: podemos pensar que la fase «retrocede» desde la operación aplicada al objetivo hacia el control. Es una imagen útil, aunque matemáticamente no hay ninguna partícula ni información viajando hacia atrás. Lo que estamos haciendo es reescribir el estado conjunto después de una operación controlada.

La versión general

El ejemplo anterior no es una peculiaridad de la puerta X. Supongamos una operación unitaria UU y un autoestado ∣u⟩|u\rangle tal que:

U∣u⟩=eiϕ∣u⟩U|u\rangle=e^{i\phi}|u\rangle

Si el cúbit de control está en una superposición general:

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

, enteonces antes de la operación controlada tenemos:

(α∣0⟩+β∣1⟩)∣u⟩(\alpha|0\rangle+\beta|1\rangle)|u\rangle

Al aplicar la versión controlada de UU:

α∣0⟩∣u⟩+β∣1⟩U∣u⟩\alpha|0\rangle|u\rangle+ \beta|1\rangle U|u\rangle

Y usando la propiedad de autoestado:

α∣0⟩∣u⟩+βeiϕ∣1⟩∣u⟩\alpha|0\rangle|u\rangle+ \beta e^{i\phi}|1\rangle|u\rangle

que podemos escribir como:

(α∣0⟩+βeiϕ∣1⟩)∣u⟩(\alpha|0\rangle+\beta e^{i\phi}|1\rangle)|u\rangle

La fase eiϕe^{i\phi} asociada al autovalor de UU aparece ahora como fase relativa en el control. Este es el phase kickback en su forma más general.

Y fíjate en un detalle importante: el estado objetivo ∣u⟩|u\rangle sigue siendo el mismo. La información interesante está ahora codificada en la fase relativa del control, y aquí está la clave de todo.

Si vienes del desarrollo de software, piensa en información codificada

Para un desarrollador de software puede resultar útil abandonar por un momento la intuición física y pensar en representaciones de información.

En programación estamos acostumbrados a que el mismo dato cambie de representación para que una operación posterior pueda utilizarlo. Un entero puede convertirse en una cadena, un conjunto de bits puede interpretarse como una máscara y una estructura puede serializarse antes de enviarla por la red. La información no desaparece: cambia la forma en la que está codificada.

Salvando las distancias, aquí ocurre algo parecido. La fase por sí sola no es un bit clásico que podamos leer. El circuito la codifica como fase relativa y después utilizamos otras puertas para convertir esa diferencia en amplitudes y, finalmente, en probabilidades observables hacia el resultado útil que queremos obtener.

Esta forma de pensar ayuda a evitar una confusión habitual: un algoritmo cuántico no obtiene su utilidad simplemente de «tener muchas posibilidades en superposición». Lo relevante es cómo transforma y hace interferir sus amplitudes para que la información que buscamos termine siendo accesible mediante una medida.

Deutsch-Jozsa: la fase como mensajero

Phase kickback está presente en la mayoría de algoritmos cuánticos conocidos, y el de Deutsch-Jozsa no es una excepción. Su oráculo suele expresarse mediante una operación del tipo:

Uf∣x⟩∣y⟩=∣x⟩∣y⊕f(x)⟩U_f|x\rangle|y\rangle=|x\rangle|y\oplus f(x)\rangle

Si el segundo registro se prepara en ∣−⟩|-\rangle, la acción del oráculo puede escribirse como:

Uf∣x⟩∣−⟩=(−1)f(x)∣x⟩∣−⟩U_f|x\rangle|-\rangle=(-1)^{f(x)}|x\rangle|-\rangle

El valor de f(x)f(x) ya no necesita quedarse almacenado como un 0 o un 1 en el segundo registro. Aparece como una fase (−1)f(x)(-1)^{f(x)} asociada al estado ∣x⟩|x\rangle.

Después, las puertas Hadamard hacen interferir esas amplitudes. El algoritmo aprovecha precisamente el patrón de fases introducido por el oráculo para distinguir, bajo la promesa del problema, entre una función constante y una equilibrada.

Por tanto, cuando vemos ese segundo cúbit preparado como ∣−⟩|-\rangle, no está ahí por una convención extraña. Está construido deliberadamente para convertir la evaluación de la función en información de fase.

Estimación de fase (QPE): llevar la idea mucho más lejos

La estimación cuántica de fase (Quantum Phase Estimation, QPE) convierte este mecanismo en el centro del algoritmo.

Partimos de un operador unitario y uno de sus autoestados:

U∣u⟩=e2πiθ∣u⟩U|u\rangle=e^{2\pi i\theta}|u\rangle

El objetivo es estimar θ\theta.

QPE utiliza varios cúbits de control sobre los que se aplican operaciones controladas de potencias de UU, como UU, U2U^2, U4U^4 y así sucesivamente. Gracias al phase kickback, esas operaciones codifican distintas potencias de la fase sobre el registro de control:

e2πiθ,e2πi2θ,e2πi4θ,…e^{2\pi i\theta},\quad e^{2\pi i2\theta},\quad e^{2\pi i4\theta},\ldots

Después entra en juego la transformada cuántica de Fourier inversa, que reorganiza esa información de fase para que pueda recuperarse mediante una medición del registro de control.

Aquí se aprecia mejor por qué el phase kickback es algo más que una curiosidad matemática. Es un mecanismo para codificar información sobre los autovalores de una operación en un registro que posteriormente podemos procesar.

La estimación de fase es, a su vez, una pieza conceptual importante de otros algoritmos cuánticos. Comprender bien este mecanismo evita tratarlos como una sucesión casi mágica de puertas.

Lo que hay que recordar

Si tuviera que reducir el phase kickback a una sola expresión, sería esta:

U∣u⟩=eiϕ∣u⟩⟹CU:(α∣0⟩+β∣1⟩)∣u⟩↦(α∣0⟩+βeiϕ∣1⟩)∣u⟩U|u\rangle=e^{i\phi}|u\rangle \quad\Longrightarrow\quad CU: (\alpha|0\rangle+\beta|1\rangle)|u\rangle \mapsto (\alpha|0\rangle+\beta e^{i\phi}|1\rangle)|u\rangle

Pero aprender la fórmula no es suficiente. Lo importante es comprender qué nos está diciendo.

Tenemos una operación controlada; el objetivo es un autoestado de la operación; al actuar UU, ese estado solo adquiere su autovalor como factor de fase; y, como la operación únicamente se ejecuta en la rama donde el control vale ∣1⟩|1\rangle, esa fase se convierte en relativa entre las ramas del cúbit de control.

Después podremos hacerla interferir y convertirla en algo medible.

Para alguien acostumbrado a programar, quizá esta sea la idea más útil con la que quedarse: en computación cuántica, una parte esencial del trabajo de un algoritmo consiste en elegir dónde y cómo codificar la información para poder recuperarla más tarde. A veces estará en los estados de la base computacional; otras, en amplitudes; y en algoritmos como los que hemos visto, estará temporalmente escondida en una fase.

El phase kickback deja de parecer tan misterioso cuando lo miramos así. No es una propiedad añadida artificialmente al circuito. Surge directamente del álgebra de las operaciones controladas y los autoestados. Y una vez que lo reconoces, empiezas a verlo detrás de muchos circuitos cuánticos que antes parecían bastante más difíciles de interpretar.