← Volver

Los números complejos están en la base de la computación cuántica

Una introducción a los números complejos, la fórmula de Euler y la fase cuántica para entender cómo funcionan los algoritmos cuánticos.

Números ComplejosEulerAlgebra Lineal
Los números complejos están en la base de la computación cuántica

Los números complejos están en la base de la computación cuántica

Cuando un desarrollador de software comienza a estudiar computación cuántica, es imprescindible aceptar que tendrá que repasar álgebra lineal: vectores, matrices, producto interno, valores propios…, tal y como he descrito en otros artículos.

Sin embargo, hay otro ingrediente matemático que puede parecer secundario al principio y que, en realidad, está por todas partes, y que son los números complejos.

No están ahí por una cuestión de elegancia matemática ni porque alguien decidiera complicar innecesariamente la notación. Los estados cuánticos se describen mediante amplitudes complejas y las operaciones que hacemos sobre ellos modifican tanto sus magnitudes como, de forma especialmente importante, sus fases. Créeme cuando te digo que aquí está realmente la complejidad: en computación cuántica se manipula la información en base a fases representadas por números complejos.

Y es precisamente en las relaciones entre esas fases donde aparece uno de los mecanismos esenciales de la computación cuántica: la interferencia.

Si vienes del desarrollo de software, piensa por un momento en una variable que no contiene simplemente un valor, sino información suficiente para determinar cómo ese valor puede combinarse con otros más adelante. Algo parecido ocurre con una amplitud cuántica: conocer únicamente su magnitud no es suficiente. Su fase también importa.

Voy a empezar por el principio.

Un número complejo no es más que dos dimensiones bien organizadas

Un número complejo se escribe habitualmente como:

z=a+biz = a + bi

, donde aa es la parte real, bb la parte imaginaria e ii es la unidad imaginaria, definida por:

i2=−1i^2 = -1

Esto es matemáticas básicas que seguramente estudiaste en algún momento en el instituto.

Aunque el término «imaginario» pueda sugerir algo extraño, geométricamente la idea es bastante sencilla. Podemos representar zz como un punto, o como un vector, en un plano de dos dimensiones: el eje horizontal representa la parte real y el vertical la imaginaria.

Por ejemplo:

z=3+4iz = 3 + 4i

, corresponde al punto (3,4)(3,4). Su módulo es la distancia desde el origen:

∣z∣=32+42=5|z| = \sqrt{3^2 + 4^2} = 5

Hasta aquí no hay demasiado misterio. Pero podemos describir exactamente el mismo número de otra forma: en lugar de indicar cuánto avanzamos en los ejes real e imaginario, podemos especificar una distancia al origen y un ángulo.

Ahí comienza lo interesante para la computación cuántica.

Notación polar: magnitud y fase

Si rr es el módulo de un número complejo y θ\theta el ángulo que forma con el eje real, podemos escribir:

z=r(cos⁡θ+isin⁡θ)z = r(\cos\theta + i\sin\theta)

Esta es su forma polar. La cantidad rr nos dice cuánto «mide» el número complejo y θ\theta determina su fase. Quédate con este concepto porque te aseguro que es es vital en computación cuántica.

Podemos recuperar sus componentes cartesianas mediante:

a=rcos⁡θa = r\cos\theta b=rsin⁡θb = r\sin\theta

Para un programador, podríamos pensar que las formas cartesiana y polar son dos representaciones distintas del mismo objeto. Y en esencia lo es, pero la forma que elijamos nos permite desarrollar otros conceptos a posteriori. Ninguna cambia el valor matemático subyacente, pero cada una hace más naturales ciertas operaciones. Sumar números complejos suele resultar cómodo en forma cartesiana; entender rotaciones y cambios de fase resulta mucho más intuitivo en forma polar.

Esto último nos lleva a una de las expresiones más importantes de las matemáticas utilizadas en computación cuántica.

La fórmula de Euler: el puente que necesitamos

La fórmula de Euler establece que:

eiθ=cos⁡θ+isin⁡θe^{i\theta} = \cos\theta + i\sin\theta

Esta es una de las expresiones más bellas de las matemáticas, y que resulta especialmente importante en computación cuántica.

Esta expresión nos permite que la forma polar anterior puede escribirse de manera mucho más compacta:

z=reiθz = r e^{i\theta}

Esta expresión reúne en una sola entidad la magnitud rr y la fase θ\theta.

Hay una interpretación geométrica especialmente útil: eiθe^{i\theta} representa un punto de módulo uno sobre el círculo unidad del plano complejo. Variar θ\theta equivale a desplazarse alrededor de ese círculo. Multiplicar por un factor de la forma eiϕe^{i\phi}, por tanto, introduce una rotación de fase.

Así, si tenemos

z=reiθz = r e^{i\theta}

, y lo multiplicamos por eiϕe^{i\phi}, obtenemos:

z′=zeiϕ=rei(θ+ϕ)z' = z e^{i\phi} = r e^{i(\theta+\phi)}

El módulo no cambia. Lo que cambia es el ángulo.

Quédate con esta idea porque reaparecerá continuamente cuando analices circuitos y algoritmos cuánticos: muchas operaciones cuánticas pueden entenderse como transformaciones controladas de amplitudes y fases.

Del número complejo al cúbit

Vamos a ver ahora la relación entre números complejos y el concepto de cúbit.

Un cúbit puro se puede escribir como:

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

con α,β∈C\alpha,\beta \in \mathbb{C} y la condición de normalización:

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

Aquí aparece una diferencia importante respecto a un bit clásico. α\alpha y β\beta no son probabilidades. Son amplitudes de probabilidad complejas (esto es, incluye una magnitud y una fase). Si medimos el cúbit en la base computacional, las probabilidades son:

P(0)=∣α∣2P(0) = |\alpha|^2 P(1)=∣β∣2P(1) = |\beta|^2

Al medir perdemos acceso directo a la fase de las amplitudes. Esto puede llevar a una conclusión equivocada: si la probabilidad depende únicamente del módulo al cuadrado, ¿para qué necesitamos la fase?

Aquí está lo sutil y lo esencial de la cuestión: precisamente porque las amplitudes pueden combinarse antes de la medición. Léelo de nuevo porque esto es un concepto fundamental.

La computación cuántica no obtiene su comportamiento interesante de observar directamente números complejos (y no es casualidad, es herencia, claro está, de la mecácnica cuántica). Lo obtiene de transformar sus relaciones de fase para que unas amplitudes se refuercen y otras se cancelen antes de que midamos el sistema.

La diferencia esencial entre fase global y fase relativa

Supongamos el estado:

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

Si multiplicamos todo el estado por un mismo factor de fase:

∣ψ′⟩=eiϕ∣0⟩+∣1⟩2|\psi'\rangle = e^{i\phi}\frac{|0\rangle + |1\rangle}{\sqrt{2}}

los dos vectores representan el mismo estado físico observable. A ese factor común lo llamamos fase global.

Sin embargo, comparemos:

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

, con

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

Las probabilidades de obtener 00 o 11 al medir directamente en la base computacional son las mismas en ambos casos: 1/21/2. Pero los estados no son equivalentes. Existe una diferencia de fase relativa de π\pi entre sus componentes.

Podemos verlo aplicando otra puerta Hadamard HH:

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

, mientras que:

H∣ψ−⟩=∣1⟩H|\psi_-\rangle = |1\rangle

¿Te has dado cuenta de lo que ha ocurrido? Una información que era invisible en una medición directa se ha convertido, mediante interferencia, en una diferencia completamente observable (esto es, medible).

Esa es una de las razones por las que pensar únicamente en «probabilidades» resulta insuficiente para comprender un algoritmo cuántico. Hay que pensar en amplitudes complejas y en las fases relativas que existen entre ellas.

Las puertas de fase: cambiar para que aparentemente nada cambie

Una puerta ZZ actúa de la siguiente forma:

Z∣0⟩=∣0⟩Z|0\rangle = |0\rangle Z∣1⟩=−∣1⟩Z|1\rangle = -|1\rangle

Si aplicamos ZZ sobre ∣1⟩|1\rangle, la probabilidad de medir 11 sigue siendo uno. A primera vista parece que no ha sucedido nada relevante. Sin embargo, −1-1 puede escribirse usando Euler como:

−1=eiπ-1 = e^{i\pi}

La puerta ha introducido una fase de π\pi sobre esa componente. De forma más general, una puerta de fase puede expresarse como:

P(ϕ)=(100eiϕ)P(\phi)= \begin{pmatrix} 1 & 0 \\ 0 & e^{i\phi} \end{pmatrix}

Su acción es:

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

No estamos cambiando directamente ∣β∣2|\beta|^2. Estamos modificando su fase relativa respecto de α\alpha. Ese cambio podrá hacerse visible más tarde si el circuito vuelve a combinar las amplitudes.

En otras palabras, una puerta cuántica puede realizar trabajo computacional aunque una medición inmediata antes y después parezca ofrecer exactamente la misma distribución. Puff, comprendo que no es fácil de comprander al principio.

Un algoritmo cuántico también es una ingeniería de interferencias

Esta idea aparece, con distintas formas y niveles de sofisticación, en algoritmos cuánticos clásicos y bien conocidos, pero es esencial que comprendas esto perfectamente para profundizar en computación cuántica e ir más allá.

En Deutsch-Jozsa, por ejemplo, el oráculo codifica información de la función en fases mediante el mecanismo conocido como phase kickback. Después, las transformaciones Hadamard hacen interferir las amplitudes y permiten distinguir el caso constante del balanceado bajo el modelo de consulta del algoritmo.

La idea puede resumirse esquemáticamente como:

∣x⟩⟼(−1)f(x)∣x⟩|x\rangle \longmapsto (-1)^{f(x)}|x\rangle

El valor de f(x)f(x) queda codificado en un signo, es decir, en una diferencia de fase de π\pi. Posteriormente, la interferencia convierte esa estructura de fases en amplitudes cuya medición proporciona la información buscada.

En el algoritmo de Grover también encontramos una lógica relacionada. El oráculo marca mediante una inversión de fase los estados que satisfacen la condición de búsqueda. Esa marca, por sí sola, no nos dice cuál es la solución al medir. El operador de difusión transforma después esas diferencias de fase de forma que aumenta la amplitud del estado marcado. Tras el número adecuado de iteraciones, la probabilidad de medir una solución es alta. Conviene ser preciso: Grover ofrece una mejora cuadrática en el modelo de búsqueda no estructurada, no una aceleración exponencial para cualquier problema de búsqueda.

La Quantum Fourier Transform (QFT) muestra quizá todavía más claramente la importancia de las fases. Su transformación puede escribirse como:

∣x⟩⟼1N∑k=0N−1e2πixk/N∣k⟩|x\rangle \longmapsto \frac{1}{\sqrt{N}}\sum_{k=0}^{N-1} e^{2\pi i xk/N}|k\rangle

Aquí los factores exponenciales complejos no son ornamentales: codifican relaciones de fase entre componentes. La estimación cuántica de fase (Quantum Phase Estimation, QPE), una subrutina central en numerosos algoritmos, utiliza precisamente interferencia y una transformada de Fourier inversa para extraer información sobre una fase asociada a un autovalor de un operador unitario.

En esencial, el circuito evoluciona en un espacio complejo

Para un sistema de nn cúbits, el estado puro general se escribe como:

∣ψ⟩=∑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

Las amplitudes αx\alpha_x son números complejos. Un circuito cuántico ideal aplica sucesivamente operadores unitarios sobre ese vector de estado:

∣ψt+1⟩=Ut∣ψt⟩|\psi_{t+1}\rangle = U_t|\psi_t\rangle

Por eso me parece especialmente útil pensar que la ejecución de un algoritmo cuántico es una evolución estructurada de amplitudes complejas. El algoritmo distribuye magnitudes, introduce y modifica fases relativas, entrelaza grados de libertad cuando intervienen varios cúbits y provoca interferencias que terminan concentrando probabilidad en determinados resultados.

Hay que evitar, no obstante, una simplificación excesiva: un algoritmo cuántico no consiste únicamente en «mover o modificar fases». Las amplitudes, el entrelazamiento, la elección de la base, la estructura del espacio de Hilbert y la secuencia completa de transformaciones unitarias forman parte del proceso. Pero la fase es uno de los conceptos que mejor explica por qué trabajar solo con probabilidades clásicas no basta.

Una forma útil de verlo desde el software

Cuando implementamos un simulador de circuitos, todo esto deja de ser abstracto. Un estado de nn cúbits puede representarse, de forma directa aunque costosa, mediante un vector de 2n2^n números complejos. Aplicar una puerta equivale a transformar ese vector mediante álgebra lineal compleja.

Para un desarrollador, esta es quizá la conexión más tangible: debajo de una API de alto nivel de un framework cuántico encontramos vectores complejos, matrices unitarias y operaciones que modifican sus amplitudes.

El conocido factor ii deja entonces de parecer una rareza matemática. Es parte de la estructura que permite representar rotaciones, fases e interferencias de una manera coherente.

Y aquí aparece una de esas ideas que merece la pena recordar cuando se continúa avanzando en computación cuántica: dos estados pueden producir inicialmente las mismas probabilidades de medida y, sin embargo, comportarse de forma diferente más adelante porque sus fases relativas son distintas.

Esa observación cambia bastante la forma de mirar un circuito.

Para terminar

Los números complejos no son un apéndice matemático de la computación cuántica. Son parte de su lenguaje natural, inherentes a la notaciónd de Dirac. La notación polar nos permite separar magnitud y fases; la fórmula de Euler convierte las rotaciones de fase en una expresión extraordinariamente compacta, y la dinámica unitaria de un circuito transforma amplitudes complejas hasta producir patrones de interferencia que podemos aprovechar computacionalmente.

Deutsch-Jozsa, Grover, la QFT o la estimación cuántica de fase son ejemplos distintos, pero todos obligan, tarde o temprano, a mirar más allá de las probabilidades y observar qué les está ocurriendo a las amplitudes antes de la medición.

Por todo esto, si vienes del desarrollo de software y estás aprendiendo computación cuántica, entender bien eiθe^{i\theta} no es un ejercicio académico que convenga superar para continuar con asuntos más interesantes. Es justo al revés: probablemente acabas de llegar a una de las piezas que permiten comprender qué está haciendo realmente un circuito cuántico, ejecutándose en las entrañas de un computador cuántico.

Y lo más extraordinario y excitante de esto, es que todo ello lo realiza la naturaleza constantemente…