Saltearse al contenido

Estimación de fase

La estimación de fase (EF) es una primitiva cuántica que es utilizada en distintos algoritmos. Permite extraer información legible de superposiciones.

Por ejemplo, es utilizada en el algoritmo de Shor, HHL, entre otros. Internamente, esta primitiva utiliza la transformada de Fourier inversa.

El objetivo de la primitiva es obtener una estimación de la fase global o autovalor (eigenvalue) de una operación aplicada a un estado cuántico que es autovector (eigenvector).

Para entender mejor qué valor es el que obtiene la primitiva se propone el siguiente ejemplo:

Supóngase el estado inicial ψ\ket{\psi}, el cual es un autovector de la operación UU. Al ser un autovector de UU, se cumple Uψ=eiθψU\ket{\psi}=e^{i \theta}\ket{\psi}, siendo eiθe^{i\theta} el autovalor.

Por ejemplo, suponiendo que existe un estado cuántico que es autovector de UU con el siguiente valor:

$$\ket{0}$$
$$\ket{1}$$

y que al aplicar la operación UU, se obtiene el siguiente estado:

$$\ket{0}$$
$$\ket{1}$$

U\overset{U}{\rightarrow}

$$\ket{0}$$
$$\ket{1}$$

Notar que las magnitudes no cambiaron, ni la fase relativa cambió, y por ende se obtuvo el mismo estado cuántico pero con un autovalor eπie^{\pi i} (180180^\circ).

El algoritmo de EF nos permite obtener una estimación sobre este autovalor.

Aunque parezca que esta información obtenida es arbitraria y que no sea practicamente útil, es altamente importante en muchos algoritmos como los mencionados previamente.

El algoritmo de estimación de fase se puede dividir en cuatro secciones: inicialización, superposición, aplicación de puertas controladas y uso de la transformada de Fourier cuántica inversa.

En el siguiente gráfico se dividen las etapas utilizando σi\ket{\sigma_i} para representar el estado cuántico en cada sección.

Estructura de la primitiva EF de forma general, con cuatro señalizadores indicando las distintas secciones del algoritmo. Las puertas siguen un patron escalonado del cubit de control, empezando por el ultimo (de arriba hacia abajo) y finalizando con el primero (el de arriba) como cubit de control.

Figura (1): Estructura de la primitiva EF de forma general, con cuatro señalizadores indicando las distintas secciones del algoritmo. En ciertas bibliografías se aplican las puertas U controladas con el orden inverso.

El algoritmo recibe tres parámetros como entrada:

  • qsalidaq_{salida} el cual es un registro inicializado en 00 sobre el cual se dejará el resultado. Llamaremos tt al tamaño en cubits de qsalidaq_{salida}.
  • qentradaq_{entrada} es el autovector del cual se quiere obtener el autovalor.
  • La puerta controlada de U.

La notación U2gU^{2^g} implica que se realizan 2g2^g operaciones sucesivas de U. Esto conlleva un gran costo computacional, por lo que se busca poder crear una puerta que cumpla el mismo funcionamiento que U2gU^{2^g} de una forma más eficiente que simplemente repetir la operación original.

En la primer etapa σ1\ket{\sigma_1} se inicializan los estados cuánticos, el registro de qsalidaq_{salida} con 0 y el registro qentradaq_{entrada} con el autovector.

σ1=0tψ\begin{align} \ket{\sigma_1}&=\ket{0}^{\otimes t}\ket{\psi} \end{align}

Luego en la segunda etapa se crea una superposición de qsalidaq_{salida}:

σ2=Ht0tψ=2t/2(0+1)tψ=2t/2(0+1)(0+1)(0+1)ψ\begin{align} \ket{\sigma_2}&=H^{\otimes t}\ket{0}^{\otimes t}\ket{\psi}\\ &=2^{-t/2}(\ket{0}+\ket{1})^{\otimes t}\ket{\psi}\\ &=2^{-t/2}(\ket{0}+\ket{1})(\ket{0}+\ket{1})\ldots(\ket{0}+\ket{1})\ket{\psi} \end{align}

En la tercer etapa se aplican las puertas controladas de U. Así, ocurre el fenómeno de retroceso de fase, por lo que aplicar la puerta U2hU^{2^h} puede generalizarse de la siguiente manera:

U2hγ=U2h1Uγ=U2h1eiθγ=eiθ2hγ\begin{align} U^{2^h}\ket{\gamma}&=U^{2^{h-1}}U\ket{\gamma}\\ &=U^{2^{h-1}}e^{i \theta}\ket{\gamma}\\ &=e^{i\theta 2^{h}}\ket{\gamma} \end{align}

Por lo tanto, al aplicar las puertas controladas de U al estado superpuesto de σ2\ket{\sigma_2} se obtiene:

σ3=2t/2(0+eiθ2t1)(0+eiθ2t11)(0+eiθ201)ψ\begin{align} \ket{\sigma_3}&=2^{-t/2}(\ket{0}+e^{i \theta 2^{t}}\ket{1})(\ket{0}+e^{i \theta 2^{t-1}}\ket{1})\ldots(\ket{0}+e^{i \theta 2^{0}}\ket{1})\ket{\psi} \end{align}

Es útil reescribir θ=2πj\theta=2\pi j, donde j=0.jt1jt2j0j=0.j_{t-1}j_{t-2}\ldots j_0 siendo jj una fracción en binario, para obtener un formato similar al de QFTQFT:

σ3=2t/2(0+e2πi2t(0.jt1jt2j0)1)(0+e2πi2t1(0.jt1jt2j0)1)(0+e2πi20(0.jt1jt2j0)1)ψ\begin{align} \ket{\sigma_3}&=2^{-t/2}(\ket{0}+e^{2\pi i 2^{t}(0.j_{t-1}j_{t-2}\ldots j_0)}\ket{1})(\ket{0}+e^{2\pi i 2^{t-1}(0.j_{t-1}j_{t-2}\ldots j_0) }\ket{1})\\& \ldots(\ket{0}+e^{2\pi i 2^{0}(0.j_{t-1}j_{t-2}\ldots j_0)}\ket{1})\ket{\psi} \end{align}

Aplicar la operación 2h(0.jt1jt2j0)2^h(0.j_{t-1}j_{t-2}\ldots j_0) implica realizar un desplazamiento binario (shift) de hh posiciones.

Hacer un desplazamiento a una fracción binaria puede incrementar la parte entera del número. Por ejemplo, si se desplaza la fracción binaria 0.110.11 (0.750.75 en decimal) por una posición se obtiene 1.101.10 (2.52.5 en decimal).

Debido a que multiplicar enteros por 2π2\pi es redundante, se puede simplificar de la siguiente manera:

σ3=2t/2(0+e2πi(0.j0)1)(0+e2πi(0.j1j0)1)(0+e2πi(0.jt1jt2j0)1)ψ\begin{align} \ket{\sigma_3}&=2^{-t/2}(\ket{0}+e^{2\pi i (0.j_0)}\ket{1})(\ket{0}+e^{2\pi i (0.j_1j_0) }\ket{1})\\& \ldots(\ket{0}+e^{2\pi i (0.j_{t-1}j_{t-2}\ldots j_0)}\ket{1})\ket{\psi} \end{align}

El resultado de esta simplificación es idéntico al estado cuántico luego de aplicar QFTQFT sobre el estado j\ket{j}. Por lo que aplicar QFTQFT^\dag resulta en j\ket{j}:

σ4=QFT(2t/2(0+e2πi(0.j0)1)(0+e2πi(0.j1j0)1)(0+e2πi(0.jt1jt2j0)1)ψ)=j\begin{align} \ket{\sigma_4}&=QFT^\dag(2^{-t/2}(\ket{0}+e^{2\pi i (0.j_0)}\ket{1})(\ket{0}+e^{2\pi i (0.j_1j_0) }\ket{1})\\& \ldots(\ket{0}+e^{2\pi i (0.j_{t-1}j_{t-2}\ldots j_0)}\ket{1})\ket{\psi})\\ &=\ket{j} \end{align}

Finalmente, al medir la respuesta se obtiene una estimación de jj. A partir de jj se puede obtener el ángulo θ\theta y su autovalor:

θ=2πj=2π0.jt1jt2j0autovalor=eiθ\begin{align} \theta&=2\pi j=2\pi0.j_{t-1}j_{t-2}\ldots j_0\\ autovalor &= e^{i \theta} \end{align}

Para este ejemplo se utilizará la operación Hadamard con su versión controlada.

El autovector del cual se va a obtener el autovalor es ψ=0.3826800.923881\ket{\psi}=0.38268\ket{0}-0.92388\ket{1}, que se puede construir aplicándole a un cubit inicializado en 0\ket{0} la puerta Pauli-X, seguida por una rotación en el eje YY, usando RotY de π/4\pi/4 radianes (4545^\circ grados).

El autovector que se eligió coincide con el estado cuántico de la sección “Objetivo”. Su autovalor es eπie^{\pi i} (180180^\circ).

Notar que se aplica una sola vez la puerta Hadamard controlada. Esto se debe a que la puerta controlada de Hadamard es Hermitiana, cumpliendo la propiedad:

{H2i=Hsi i=0H2i=Isi i>0\begin{cases} H^{2^i}=H& \text{si }i = 0\\ H^{2^i}=\mathbb{I}& \text{si }i > 0\\ \end{cases}

Por lo que solo es necesario aplicarla donde el número de ocurrencias no es par (solo el primer cubit).

Interpretando el resultado, se obtiene 1000\ket{1000} como medición para los primeros 4 cubits. Esto implica haber leído el número 0.100020.1000_2=0.5100.5_{10}. Para obtener el autovalor, se inserta este valor en el exponencial:

e2πi0.5=eπi=180e^{2\pi i 0.5}=e^{\pi i}= 180^\circ

De esta manera se obtiene el autovalor del autovector con la operación Hadamard.

Bibliografía:
Recomendada
Alternativa
Opcional