Path: blob/main/translations/es/algorithms/phase-kickback.ipynb
3858 views
Retroceso de Fase (Phase Kickback)
En esta página, cubriremos un comportamiento de compuertas cuánticas controladas conocido como "retroceso de fase" (phase kickback). Este interesante efecto cuántico es un bloque de construcción en muchos algoritmos cuánticos famosos, incluido el algoritmo de factorización de Shor y el algoritmo de búsqueda de Grover.
Vectores propios
Ya deberías estar familiarizado con los vectores propios y los valores propios, pero si no, puedes leer una buena introducción aquí . Si estás familiarizado, entonces deberías reconocer la ecuación de vector propio:
ParseError: KaTeX parse error: Undefined control sequence: \class at position 1: \̲c̲l̲a̲s̲s̲{_matrix-A}{A}\…Esto es aún más simple en la computación cuántica. Dado que todos nuestros vectores de estado tienen una magnitud de 1, nuestros valores propios también deben tener una magnitud de 1, es decir, . Entonces, para una compuerta cuántica y su estado propio , tenemos:
ParseError: KaTeX parse error: Undefined control sequence: \class at position 1: \̲c̲l̲a̲s̲s̲{_matrix-U}{U}\…Para resumir: si una compuerta gira (y solo gira) todas las amplitudes de un vector de estado en la misma cantidad, entonces ese estado es un estado propio de esa compuerta.
Explorando los vectores propios
Usa el widget a continuación para ver cómo una compuerta de un solo qubit transforma un estado de un solo qubit. ¿Puedes averiguar qué estados son propios y de qué compuertas?
Compuertas controladas y estados propios
Una vez que te sientas cómodo con el concepto de estados propios, podemos comenzar a pensar en lo que sucede cuando controlamos estos circuitos en el estado de otro qubit. Por ejemplo, sabemos que la compuerta Z que actúa sobre el estado introduce una fase global negativa (), averigüemos qué sucede cuando controlamos esta operación.
La compuerta Z controlada
|10〉
Si el qubit de control es , entonces el comportamiento es trivial, no pasa nada.
|11〉
Si el qubit de control es , la compuerta introduce una fase global (observa el signo menos en la imagen de la derecha), pero los estados del qubit no cambian.
|1+〉
La compuerta Z controlada no hace nada cuando el control es , e introduce una fase negativa cuando el control es . Cuando el qubit de control está en superposición, la compuerta cambia la fase relativa entre los estados y del qubit de control.
Cuando el control es , y el objetivo es , la compuerta Z controlada cambia el estado del qubit de control , pero deja el qubit objetivo sin cambios. Este efecto se denomina "retroceso de fase" (phase kickback), ya que el valor propio regresa al estado del qubit de control.
En términos más generales, si tenemos una compuerta cuántica y su estado propio , entonces actuando sobre agregará una fase global como vimos anteriormente.
ParseError: KaTeX parse error: Undefined control sequence: \class at position 1: \̲c̲l̲a̲s̲s̲{_matrix-U}{U}\…Si controlamos la operación por otro qubit en una superposición de y , entonces esto tendrá el efecto de rotar el qubit de control alrededor del eje Z por un ángulo . Es decir:
ParseError: KaTeX parse error: Undefined control sequence: \class at position 1: \̲c̲l̲a̲s̲s̲{_matrix-CU}{CU…En el ejemplo anterior, vemos que el 'control' de la compuerta Z controlada en realidad está haciendo una rotación en Z; algo que solo debería haber estado observando el qubit que ha cambiado. Por esta razón, a menudo verás la compuerta Z controlada dibujada como dos controles.
La Compuerta CNOT
Veamos el efecto de retroceso de fase con una compuerta diferente de dos qubits. Dado que el estado es un estado propio de la compuerta X, con valor propio , obtenemos:
ParseError: KaTeX parse error: Undefined control sequence: \class at position 1: \̲c̲l̲a̲s̲s̲{_matrix-CX}{CX…Nuevamente, en este caso el cambio de fase es , por lo que nuestro qubit de control se voltea alrededor del eje Z.
Ejemplo resuelto
Retroceso con la compuerta CNOT (haz clic para expander)
Cuando recordamos que la compuerta H hace la transformación y (y viceversa), obtenemos lo siguiente identidad:
El problema de Deutsch
Acabamos de ver que condicionar una acción en el estado de un qubit en realidad puede cambiar el estado del qubit de control. Este es un efecto 'cuántico', es decir, algo que no vemos que suceda con los bits clásicos.
En la computación cuántica, queremos crear algoritmos que las computadoras clásicas no puedan ejecutar, por lo que un buen lugar para comenzar es tratar de replantear este efecto como un problema a resolver. De esta manera, podemos probar que las computadoras cuánticas son al menos un poco mejores en algo que las computadoras clásicas.
El problema de Deutsch hace exactamente esto. Este es un problema de 'caja negra'; un problema artificial en el que se nos permite aplicar una función a nuestros bits, pero no podemos ver cómo opera la función. El desafío es descubrir algunas propiedades de la caja probando diferentes entradas y salidas.
El problema de Deutsch es el siguiente: tenemos una función reversible clásica (a la que llamaremos de forma abreviada), que actúa sobre dos bits, y . La función dejará el bit solo, pero puede o no cambiar el bit . El problema de Deutsch nos pide que averigüemos si se comporta de manera diferente dependiendo del valor de (lo llamaremos comportamiento "balanceado"), o si ignora a y siempre hace lo mismo con (comportamiento "constante"). El desafío es hacer esto aplicando la menor cantidad de veces posible.
El mejor algoritmo clásico para este problema aplica dos veces con diferentes valores de , luego observa si se comportó de manera diferente.
Algoritmo de Deutsch
Como habrás adivinado, podemos usar el retroceso de fase (phase kickback) para crear un algoritmo cuántico que funciona incluso mejor que el algoritmo clásico. Si ponemos el qubit en el estado y el qubit en el estado , entonces cualquier cambio condicionado a devolverá una fase negativa relativa, volteando al qubit de a . Luego podemos aplicar una compuerta H a para ver si se produjo un retroceso de fase o no.
Más información
Si es constante, la función puede no hacer nada o voltear el qubit . Si está balanceada, la función puede voltear a solo cuando es , o voltear a solo cuando es . Puedes ver los cuatro escenarios en la imagen a continuación.
Con ambas funciones constantes, el qubit superior permanecerá sin cambios (ya que no le estamos haciendo nada), y con las funciones equilibradas, el efecto de retroceso cambia el qubit superior de a .
Este no es el ejemplo más impresionante de aceleración cuántica; es muy específico y no encontramos problemas de caja negra en la naturaleza. En cambio, el problema de Deutsch nos da un resultado alentador y algunos efectos interesantes para ser explorados. En el resto de este curso, ampliaremos este sencillo experimento para resolver problemas aún más impresionantes, incluida la factorización.
Ejercicio
Haz una función, deutsch() que tome una función Deutsch como QuantumCircuit y use el algoritmo Deutsch para resolverlo en un simulador cuántico. Tu función debe devolver True si la función Deutsch está balanceada y False si es constante.
Puedes usar la función deutsch_problem() para crear un QuantumCircuit que puedes usar como entrada para tu función deutsch().
Resumen
En esta página revisamos:
recapitulación del concepto de valores y vectores propios
exploración del efecto de retroceso de fase (phase kickback) y revisión de algunos ejemplos específicos
se introdujo el problema de Deutsch como un escenario donde las computadoras cuánticas tienen una ventaja sobre las computadoras clásicas
Si olvidas todo lo demás de esta página, lo más importante que debes recordar y sentirte cómodo es este resumen de retroceso de fase a continuación:
Recordatorio: Retroceso de fase (Phase kickback)
Si tenemos una compuerta cuántica y su estado propio , entonces actuando sobre agregará una fase global . Es decir:
ParseError: KaTeX parse error: Undefined control sequence: \class at position 1: \̲c̲l̲a̲s̲s̲{_matrix-U}{U}\…Si controlamos la operación por otro qubit en una superposición de y , entonces esto tendrá el efecto de rotar el qubit de control alrededor del eje Z por un ángulo . Es decir:
ParseError: KaTeX parse error: Undefined control sequence: \class at position 1: \̲c̲l̲a̲s̲s̲{_matrix-CU}{CU…