Fundamentos de computación cuántica
Transcripción
Fundamentos de computación cuántica
Fundamentos de computación cuántica Andrés Sicard Ramı́rez Mario Elkin Vélez Ruı́z Juan Fernando Ospina Giraldo Luis Fernando Moreno (Grupo de Lógica y Computación. Universidad EAFIT, Medellı́n) {asicard,mvelez,jospina,lmorenos}@eafit.edu.co Cursillo en el X Encuentro ERM Universidad de Medellı́n Julio 12–16, 2004 – p. 1 Contenido 1. Introducción a la computación cuántica 2. Preliminares (matemáticos, físicos, informáticos) 3. Circuitos cuánticos 4. Algoritmos cuánticos (Deutsch, Deutsch-Jozsa, Shor) 5. Simuladores 6. Realización física – p. 2 Recursos bibliográficos (introductorios) • Texto guía: Isaac L. Chuang y Michael A. Nielsen. Quantum computation and quantum information. Cambridge: Cambridge University Press, 2000 . • N. David Mermin. From cbits to qubits: teaching computer scientists quantum mechanics. Eprint: arXiv.org/abs/quant-ph/0207118. • Eleanor Rieffel y Wolfgang Polak, An introduction to quantum computing for non-physicists. Eprint: arXiv.org/abs/quant-ph/9809016. • Dorit Aharonov. Quantum computation. Eprint: arXiv.org/abs/quant-ph/9812037. – p. 3 Recursos Internet • Servidor de los Alamos (arxiv.org/) (xxx.lanl.gov). • Virtual Journal of Quantum Computation (www.vjquantuminfo.org/). • Artículos clásicos (pm1.bu.edu/~tt/qcl.html). • Centre for Quantum Computation - Oxford (www.qubit.org/) • Simuladores (www.vcpc.univie.ac.at/~ian/hotlist/qc/programming.shtml) – p. 4 Introducción a la computación cuántica • Alan Mathison Turing (1936): Máquina de Turing • K. de Leeuw, E. F. Moore, C. E. Shannon y N. Shapiro (1956): Computación probabilista. • Charles H. Bennett (1973): Computación reversible. x y Compuerta no reversible: Compuerta reversible: x y xor xor x⊕y x x⊕y – p. 5 • Edward Fredkin y Tommaso Toffoli (1982): Compuertas universales reversibles. x y z x∧y x ⊕ z z⊕(x∧y) = ¬z z Toffoli x y z ⊕ (x ∧ y) ssi z = 0 (compuerta and), ssi y = 1 (compuerta xor ), ssi x = y = 1 (compuerta not), ssi x = 0; y = 1 (compuerta identidad). – p. 6 • Richard Feynman (1982, 1985): Computación mecánico-cuántica. • David Deutsch (1985): Máquinas de Turing cuánticas. Máquina de Turing Clásica ≡ ≡ Máquina de Turing Reversible Máquina de Turing Probabilista ≡ ≡ Máquina de Turing Cuántica – p. 7 • David Deutsch (1989): Circuitos cuánticos. Intercambio de qubits: | xi | yi ⊕ ⊕ ⊕ | yi | xi – p. 8 • Peter Shor (1994): Algoritmo para factorizar un número en sus factores primos de complejidad temporal polinomial Complejidad exponencial T (n) Complejidad polinomial n – p. 9 Algoritmo de Shor vs. algoritmo clásico Número de dígi- Algoritmo tos clásico 129 1.85 años 250 2.1 × 106 años 1000 4.5 × 1025 años Algoritmo de Shor 45.9 minutos 3.4 horas 3.07 días – p. 10 • Lov K. Grover (1996): Algoritmo de busqueda en una base de datos desorganizada. • Implementación • • • • 1998: 1999: 2000: 2001: 2-qubit 3-qubit 5-qubit 7-qubit (University of California Berkeley) (IBM-Almaden) (IBM-Almaden, Los Alamos) (IBM-Almaden) – p. 11 • Simuladores • Bernhard Ömer (1994): QCL: A Programming Language for Quantum Computers (para Linux). • Colin P. Williams y Scott H. Clearwater (1997): Simulador implementado en MATHEMATICAT M . – p. 12 Preliminares matemáticos • Álgebra líneal Espacios vectoriales y operadores líneales Representaciones matriciales y espectros Espacios y operadores unitarios • Álgebra multilineal Producto tensorial de espacios vectoriales Producto tensorial de operadores lineales • Análisis líneal Funciones de operadores líneales Ecuaciones de evolución Espacios de Hilbert y álgebras Banach Transformada cuántica de Fourier – p. 13 Álgebra líneal • Espacios vectoriales y operadores líneales • Representaciones matriciales y espectros • Espacios y operadores unitarios • Matrices hermíticas, matrices de Pauli – p. 14 Álgebra multilineal • Producto tensorial de espacios vectoriales • Producto tensorial de operadores líneales • Matrices de Dirac y álgebras de Clifford • Grupos y álgebras de Lie – p. 15 Análisis líneal • Funciones de operadores líneales • Exponencial de operadores líneales • Ecuaciones de evolución • Espacios de Hilbert y álgebras Banach • Transformada cuántica de Fourier – p. 16 Preliminares físicos – p. 17 – p. 18 – p. 19 – p. 20 – p. 21 – p. 22 – p. 23 – p. 24 – p. 25 – p. 26 – p. 27 – p. 28 – p. 29 – p. 30 – p. 31 – p. 32 – p. 33 – p. 34 – p. 35 – p. 36 – p. 37 Postulados de la mecánica cuántica • Primer postulado: A cada sistema físico descrito por la mecánica cuántica se le asocia un espacio de Hilbert, y a cada estado del sistema un vector (ket), de ese espacio. • Segundo postulado: Toda cantidad física medible está descrita por un operador  que actúa sobre el espacio de Hilbert, este operador es un observable. • Tercer postulado: El único resultado posible de una medida física, es un autovalor del correspondiente observable. – p. 38 • Cuarto postulado (caso discreto no degenerado): Cuando una cantidad física es medida sobre un sistema, el cual está en un estado normalizado | xi, la probabilidad de encontrar el autovalor an correspondiente a un observable  es: P (an ) = |hn|xi|2 , donde | ni son los autovectores normalizados de Â, asociados a los autovalores an . – p. 39 • Quinto postulado: Si la medida de una cantidad física sobre un sistema que está en un estado | xi da un resultado an , el estado del sistema está, inmediatamente después de la medida, en la proyección normalizada, P̂n | xi p hx|P̂n |xi , de | xi sobre el auto-subespacio asociado a an . – p. 40 • Sexto postulado: La evolución en el tiempo del vector de estado | x(t)i es gobernada por la ecuación de Schrödinger: d i~ | x(t)i = H(t) | x(t)i , dt donde H(t) es el Hamiltoniano del sistema, observable asociado con la energía. – p. 41 Preliminares informáticos • In(computabilidad) • Máquinas de Turing • Máquina universal de Turing • Compuertas lógicas universales • In(tratabilidad) • Notación asintótica • Complejidad algorítmica • Clases de complejidad P y N P • Problemas N P -completos – p. 42 Circuitos cuánticos • Compuertas cuánticas de 1-qubit Espacio vectorial de 1-qubit Operador unitario sobre 1-qubit Matrices de Pauli (X, Y, Z) Compuertas de Hadamard (H ), fase (S ) y π/8 (T ) Operadores de rotación y descomposiciones • Compuertas cuánticas controladas Compuerta CN OT Compuerta U controlada y su implementación Compuerta C 2 (U ) y su implementación • Compuertas cuánticas universales – p. 43 Compuerta Hadamard • Circuito H • Representación matricial √1 2 1 1 1 −1 – p. 44 Compuerta de Pauli X • Circuito X • Representación matricial 0 1 1 0 – p. 45 Compuerta de Pauli Y • Circuito Y • Representación matricial 0 −i i 0 – p. 46 Compuerta de Pauli Z • Circuito Z • Representación matricial 1 0 0 −1 – p. 47 Compuerta de fase • Circuito S • Representación matricial 1 0 0 i – p. 48 Compuerta π/8 • Circuito T • Representación matricial 1 0 0 eiπ/4 – p. 49 Compuerta U • Circuito U • Representación matricial U = eiα AXBXC, ABC = I – p. 50 Compuerta CN OT • Circuito | ci | ti • ⊕ | ci | t ⊕ ci Representación matricial 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 – p. 51 Operación U controlada • Circuito | ci | ti • | ci U c | ti U Representación matricial I 0 0 Uc – p. 52 Compuerta X controlada • Circuito | ci | ti • | ci X c | ti X Representación matricial I 0 0 Xc – p. 53 Compuerta Z controlada • Circuito | ci | ti • | ci Z c | ti Z Representación matricial I 0 0 Zc – p. 54 Compuerta corrimiento de fase controlada • Circuito | ci | ci | ti • eiαc I | ti eiα I Representación matricial I 0 0 eiαc I – p. 55 Compuerta corrimiento de fase controlada • Circuito equivalente 1 0 0 eiα – p. 56 Operación U controlada • Circuito S C • ⊕ B ⊕ A Representación matricial U = eiα AXBXC, ABC = I – p. 57 Operación C 2 (U ) • Circuito | c2 i | c2 i | c1 i | c1 i | ti • U c1 c2 | ti U Representación matricial I 0 I 0 ,I = c 1 c2 0 U 0 I – p. 58 Operacion C 2 (U ) • Circuito ⊕ V ⊕ V† V V es cualquier operador unitario que satisface V 2 = U . V ≡ (1 − i)(I + iX)/2 corresponde a la compuerta Toffoli. – p. 59 Algoritmos cuánticos | 0i | 0i | Ψ0 i H x Uf x y y ⊕ f (x) | Ψ1 i | 0,f (0)i+| 1,f (1)i √ 2 | Ψ2 i Circuito cuántico para evaluar f (x) : {0, 1} → {0, 1}. La compuerta Uf actúa sobre un sistema 2-qubit. Aprovecha la superposición de estados del primer qubit para evaluar paralelamente f (0) y f (1). – p. 60 Algoritmo de Deutsch | 0i √1 2 | 0i − | 1i H | Ψ0 i H b √1 2 Uf | Ψ1 i | Ψ2 i | 0i − | 1i | Ψ3 i Circuito cuántico para el Algoritmo Deutsch – p. 61 Algoritmo de Deutsch-Jozsa | 0in √1 2 | 0i − | 1i n H ⊗n H ⊗n b √1 2 Uf | Ψ0 i | Ψ1 i | Ψ2 i | 0i − | 1i | Ψ3 i Circuito cuántico para el algoritmo Deutsch-Jozsa – p. 62 Factorización cuántica • • • • Transformada cuántica de Fourier Estimación de fase El orden r de x módulo N Algoritmo de Shor – p. 63 Transformada cuántica de Fourier En un sistema n-qubit, la transformada cuántica de Fourier Fq sobre los elementos de su base, se define como Fq : C 2n →C 2n | kin 7→ c0 | 0in + c1 | 1in + . . . + c2n −1 | 2n − 1i , donde 1 Fq | kin = √ 2n n 2X −1 j=0 e 2πijk 2n | jin , para 0 6 k < 2n . – p. 64 Debido a la linealidad de Fq , la transformada de Fourier cuántica sobre un sistema superpuesto | Ψi = α0 | 0in + α1 | 1in + . . . + α2n −1 | 2n − 1in es Fq | Ψi = Fq (α0 | 0in + α1 | 1in + · · · + α2n −1 | 2n − 1in ) = α0 Fq | 0in + α1 Fq | 1in + · · · + α2n −1 Fq | 2n − 1in . – p. 65 La Fq para un estado base | kin = | k1 k2 . . . kn i se puede representar mediante 2πi0.k 2πi0.k k Fq | kin = √12n | k1 i | k2 i | k3 i | k4 i H n | 1i | 0i+e R2 • R3 ⊗···⊗ | 0i+e R4 H • n−1 n | 1i ⊗ | 0i+e 2πi0.k1 k2 ...kn • R2 • R3 H • R2 • H × × | 1i × × | ψ11 i | ψ0 i | ψ1 i | ψ2 i | ψ3 i | ψ4 i | ψ5 i | ψ6 i | ψ7 i | ψ8 i | ψ9 i | ψ10 i | ψ12 i – p. 66 . En un sistema n-qubit, la inversa de Fq sobre los elementos de su base, se define como Fq−1 : C 2n →C 2n | kin 7→ c0 | 0in + c1 | 1in + . . . + c2n −1 | 2n − 1i , donde Fq−1 | kin 1 =√ 2n n 2X −1 j=0 e − 2πijk 2n | jin , para 0 6 k < 2n . – p. 67 Estimación de fase Problema: Suponga un operador unitario U con un autovector | ui y un autovalor asociado e2πiϕ , es decir, U | ui = e2πiϕ | ui. El problema de la estimación de fase es determinar ϕ, con ϕ ∈ [0, 1). Se define la compuerta V de tal forma que V (| jit | uim ) = | ji U j | ui = | ji e2πiϕj | ui = e2πiϕj | ji | ui . – p. 68 Algoritmo para la estimación de fase 1. Estado inicial del sistema (t + n)-qubit | Ψ0 i = | 0it | uim . 2. Creación de una superposición de estados al aplicar H ⊗t sobre el primer registro 1 | Ψ1 i = √ 2t t 2X −1 j=0 | jit | uim . – p. 69 3. Se aplica V al sistema (t + m)-qubit 1 | Ψ2 i = √ 2t t 2X −1 1 =√ 2t t 2X −1 | jit U j | uim 1 =√ 2t t 2X −1 e2πiϕj | jit | uim . j=0 j=0 j=0 V (| jit | uim ) – p. 70 4. Se aplica Fq−1 al primer registro 1 | Ψ3 i = √ 2t = t 2X −1 k=0 t 2X −1 j=0 1 2t 2πiϕj 1 √ e 2t t 2X −1 t 2X −1 k=0 k 2πi ϕ− 2t j e j=0 −2πijk e 2t | kit | uim | kit | uim E ∼ = ϕ × 2t | uim . t 5. Se mide el primer registro y se divide por 2t para ∼ obtener ϕ. – p. 71 Circuito para la estimación de fase | 0it Fq−1 H ⊗t t V | uim | uim m | Ψ0 i | Ψ1 i | Ψ2 i | Ψ3 i – p. 72 El orden r de x módulo N Sean x, N dos enteros positivos coprimos con x < N . El orden de x módulo N es el menor entero positivo r, tal que xr mód N = 1. Ejemplo: Sean x = 5 y N = 21 , el orden r de 5 módulo 21 es 6, pues 51 mód 21 = 5 , 52 mód 21 = 4 , 53 mód 21 = 20 , 54 mód 21 = 16 , 55 mód 21 = 17 , 56 mód 21 = 1 . – p. 73 Algoritmo para hallar el orden r de x módulo N 1. Estado inicial | Ψ0 i = | 0it | 1in . 2. Empleando H ⊗t se crea una superposición uniforme de todos los estados de la base del sistema t-qubit sobre el primer registro 1 | Ψ1 i = √ 2t t 2X −1 j=0 | jit | 1in – p. 74 3. Se aplica la compuerta V(x,N ) a todo el sistema 1 | Ψ2 i = √ 2t t 2X −1 1 =√ 2t t 2X −1 j=0 j=0 V(x,N ) (| jit | 1in ) j | jit x mód N n . Suponga que r es potencia de dos de esta forma 2t −1 r r−1 X X 1 | Ψ2 i = √ 2t b=0 a=0 b | ar + bit x mód N n . – p. 75 4. Se mide el segundo registro con probabilidad by, ′ 1/r, se obtiene un estado x mód N de los r posibles 1 | Ψ3 i = p 2t /r 2t −1 r X ′ ar + b a=0 ′ E b x mód N . t n – p. 76 5. Se aplica Fq−1 al primer registro 2t −1 r 1 | Ψ4 i = p 2t /r X 1 a=0 √ 1 =√ r k=0 r−1 X 1 =√ r s=0 1 X 2t /r e −2πik(ar+b′ ) 2t k=0 2t −1 r t 2X −1 2t t 2X −1 e −2πi k t 2 /r a=0 ′ E | kit xb mód N n ′ E a −2πi( )b b | kit x mód N e k 2t ′ E E ′ t b −2πi( )b 2 e s · r x mód N . s r ′ t n – p. 77 n 2t r, 6. Se mide el primer registro y se obtiene · donde s′ toma cualquier valor entre cero y (r − 1). Luego se divide por 2t y se aplica el algoritmo de fracciones continuas para obtener r o un r′ factor de r. s′ – p. 78 Circuito para hallar el orden r de x módulo N | 0it Fq−1 H ⊗t t V(x,N ) | 1in n | Ψ0 i | Ψ1 i | Ψ2 i | Ψ3 i | Ψ4 i – p. 79 Algoritmo de Shor Problema: Dado un entero N , determinar sus factores primos no triviales. 1. Mientras que N sea par divida N por dos y retorne el factor 2. 2. Verifique que N sea compuesto. Mediante el algoritmo de Manindra esto es posible en tiempo polinomial. 3. Determine si N es de la forma ab , con a > 2 y b > 2, pues el método para encontrar el orden puede fallar si N es de esta forma con a primo impar. Si N = ab , retorne b veces el factor a. Si N no es de la forma ab vaya al paso (4). – p. 80 4. Aleatoriamente elija un x, tal que 1 < x < N − 1. Mediante el algoritmo de Euclides encuentre el máximo común divisor entre x y N . Mientras que m.c.d.(x, N ) > 1, retorne el factor m.c.d.(x, N ) y a N asígnele N dividido por m.c.d.(x, N ). Si ahora N es un número primo termine el algoritmo. De lo contrario evalúe si es necesario encontrar los otros factores de N cuánticamente. En caso afirmativo vaya al paso (5), sino, encuentre los otros factores clásicamente. 5. Ejecute el algoritmo cuántico para encontrar el orden r de x módulo N . – p. 81 6. Si r es impar hay que ejecutar nuevamente la parte cuántica del algoritmo con un nuevo x, vaya al paso (4). Si r es par se define y como xr/2 mód N = y , (1) donde 0 6 y < N . De (1) se tiene que xr/2 = k1 N + y , al elevar al cuadrado a ambos lados se obtiene xr = k12 N 2 + 2k1 N y + y 2 r x = k12 N + 2k1 y N + y 2 x r = k2 N + y 2 . (2) – p. 82 Ahora, como xr mód N = 1 entonces x r = k3 N + 1 . (3) De la diferencia entre (2) y (3) se encuentra que (y − 1)(y + 1) = (k3 − k2 )N , es decir, N divide a (y − 1)(y + 1). Luego, si 1 < y < N − 1 entonces 0 < y − 1 < y + 1 < N , lo cual implica que N no divide a y − 1 ó a y + 1 separadamente. Se concluye que y − 1 y y + 1 contienen factores de N por el teorema fundamental de la aritmética. Así, el m.c.d.(y − 1, N ) y el m.c.d.(y + 1, N ) son factores no triviales de N . – p. 83 Simuladores cuánticos En computación, la simulación es la ejecución de un algoritmo que finge un sistema de tal forma que dadas unas condiciones iniciales, se pretende determinar cuáles serán las condiciones finales de éste. • En el presente: software clásico ejecutable en un computador clásico que sólo alcanza a simular sistemas cuánticos pequeños. • En el futuro: software cuántico ejecutable en un computador cuántico que tendrá el potencial de simular sistemas cuánticos grandes. – p. 84 En www.vcpc.univie.ac.at/~ian/hotlist/qc/programming.shtml hay una lista de enlaces a simuladores y lenguajes de computación cuántica. Dos de ellos que permiten la construcción y simulación de circuitos cuánticos son: • qcad • QuaSi – p. 85 qcad • Ventajas: X X X Su GUI es amigable. La contrucción de los circuitos es fácil. Resultados en forma gráfica, además de la notación de Dirac. – p. 86 qcad • Desventajas: X X X X Compuertas de medición ignoradas. No permite la realización de la simulación paso a paso. Para mostrar los resultados representa los qubits de derecha a izquierda así | xn xn−1 . . . x2 x1 i, es decir, el primer qubit es el del extremo derecho y el último es el del extremo izquierdo. Esto es contrario a la forma usual. El usuario no puede definir sus propias compuertas. Está limitado a las predefinidas. – p. 87 El siguiente circuito fue construido y simulado utilizando quasi. Este circuito es una implementación optimizada del algoritmo de Shor para factorizar el número 15 con x = 7. |0> H |0> H |0> H H 90 H 45 90 H |0> |0> |0> |1> | Ψ0 i | Ψ2 i | Ψ4 i | Ψ6 i | Ψ8 i | Ψ10 i | Ψ12 i | Ψ14 i| Ψ16 i – p. 88 Resultado simulación 1 | 0010i | 000i + | 0010i | 001i − | Ψi = 4 | 0010i | 010i − | 0010i | 011i + | 1000i | 000i + | 1000i | 001i + | 1000i | 010i + | 1000i | 011i + | 1011i | 000i − | 1011i | 001i − i | 1011i | 010i + i | 1011i | 011i + | 1110i | 000i − | 1110i | 001i + i | 1110i | 010i − i | 1110i | 011i . – p. 89 QuaSi • Ventajas: X X X Simulación paso a paso. Solamente los resultados con amplitudes diferentes de cero son mostrados. Demostraciones del algoritmo de Shor, del algoritmo de Deutsch-Jozsa y del algoritmo de Grover. – p. 90 QuaSi X X Su GUI consta de cuatro ventanas: en la primera se construye el circuito; en la segunda se observa la evolución de la simulación en la notación de Dirac; en la tercera se grafica el valor absoluto de cada amplitud y su desplazamiento de fase relativo y en la cuarta ventana las amplitudes son mostradas divididas en su parte real (azul) e imaginaria (roja). Permite la creación de compuertas definidas por el usuario, definir funciones y cargar archivos XML que contienen instrucciones para la creación de circuitos cuánticos. – p. 91 QuaSi • Desventajas: X X X Algunas veces se bloquea durante la construcción del circuito. Es tedioso a la hora de hacer modificaciones a los circuitos. Al repetir la simulación de un circuito n veces los datos obtenidos no corresponden con los esperados estadísticamente. – p. 92 Ejemplo: teleportación cuántica Circuito cuántico para transportar un qubit de un espacio físico a otro en ausencia de un canal físico de comunicación. | 0i | 0i b L H b H b b | 0i | Ψ0 i | Ψ1 i X | Ψ2 i | Ψ3 i | Ψ4 i | Ψ5 i | Ψ6 i Z | Ψ7 i | ψi | Ψ8 i – p. 93 | Ψ0 i = | 0i | 0i | 0i , = | 0i √1 2 √1 2 | Ψ2 i = | 0i √1 2 | Ψ1 i = | 0i | 0i + | 1i | 0i | 00i + | 10i , | 00i + | 11i , | Ψ3 i = α | 0i + β | 1i = α √ 2 | Ψ4 i = α √ 2 = α √ 2 | Ψ5 i = α 2 = α 2 1 √ 2 | 00i + | 11i | 000i + | 011i + β √ 2 | 0i + | 1i | 100i + | 111i , β √ 2 | 000i + | 011i + | 0i | 00i + | 11i + | 110i + | 101i β √ 2 | 1i | 10i + | 01i , | 00i + | 11i + β 2 | 0i − | 1i | 10i + | 01i | 000i + | 011i + | 100i + | 111i + β2 | 010i + | 001i − | 110i − | 101i , – p. 94 • Si al medir los primeros dos qubits se obtiene el estado | 00i entonces | Ψ6 i = α | 000i + β | 001i = | 00i α | 0i + β | 1i , | Ψ8 i = | Ψ7 i = | Ψ6 i . • Si al medir los primeros dos qubits se obtiene el estado | 01i entonces | Ψ6 i = α | 011i + β | 010i = | 01i α | 1i + β | 0i , | Ψ7 i = | 01i α | 0i + β | 1i , | Ψ8 i = | Ψ7 i . – p. 95 • Si al medir los primeros dos qubits se obtiene el estado | 10i entonces | Ψ6 i = α | 100i − β | 101i = | 10i α | 0i − β | 1i , | Ψ7 i = | Ψ6 i , | Ψ8 i = | 10i α | 0i + β | 1i . • Si al medir los primeros dos qubits se obtiene el estado | 11i entonces | Ψ6 i = α | 111i − β | 110i = | 11i α | 1i − β | 0i , | Ψ7 i = | 11i α | 0i − β | 1i , | Ψ8 i = | 11i α | 0i + β | 1i . – p. 96 Realización física • Resonancia nuclear magnética (NMR) • Implementación NMR con fase geométrica • Computador cuántico atómico • Iones atrapados • Implementación óptica – p. 97