Download Fundamentos de lenguajes de programación cuántica
Document related concepts
no text concepts found
Transcript
Fundamentos de lenguajes de programación cuántica Día 1: ∼ Introducción a la computación cuántica ∼ Alejandro Díaz-Caro Universidad Nacional de Quilmes 22o Escuela de Verano de Ciencias Informáticas Río Cuarto, Córdoba – 9 al 14 de febrero de 2015 Un poco de historia Richard Feynman First Conference on the Physics of Computation, MIT, 1981 Simulación I Física clásica =⇒ computación clásica I Física cuántica =⇒ ¿computación clásica? Necesidad de una computadora cuántica para simular física cuántica Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 2 / 13 Un poco de historia Richard Feynman First Conference on the Physics of Computation, MIT, 1981 Simulación I Física clásica =⇒ computación clásica I Física cuántica =⇒ ¿computación clásica? Necesidad de una computadora cuántica para simular física cuántica Entre tanto en Rusia. . . R. P. Poplavskii Uspekhi Fizicheskikh Nauk, 115:3, 465–501, 1975 Inviabilidad computacional de simular sistemas cuánticos (debido al ppio de superposición) Yuri I. Manin I Moscow, Sovetskoye Radio, 1980 I Uso del número exponencial de estados de base I Propuesta de teoría de computación cuántica Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 2 / 13 Un poco de historia (continuación) Paul Benioff Charles Bennett y Gilles Brassard Journal of Statistical Physics 29 (3):515– Int. Conference on Computers, Systems and 546, 1982 Signal Processing, EE.UU., 1984 I Primer framework teórico para computación cuántica I BB84: Método de distribuciónd de claves para criptografía David Deutsch Proceedings of the Royal Society A 400 (1818):97–117, 1985 I . . . Varios hitos históricos omitidos . . . Máquina de Turing Cuántica: máquina cuántica universal Peter Shor Lov Grover 35th Annual Symposium on Foundations of Computer Science, EE.UU., 1994 28th Annual ACM Symposium on the Theory of Computing, EE.UU., 1996 I Algoritmo cuántico para factorizar números primos Alejandro Díaz-Caro I Algoritmo de búsqueda (con ganancia cuadrática) Fundamentos de lenguajes de programación cuántica - RIO’15 3 / 13 Contenido del curso Lunes y Martes: Introducción a computación cuántica I Álgebra I Bits cuánticos y operadores I Teorema de no-clonado I Estados de Bell I Codificación superdensa y teleportación cuántica I Paralelismo cuántico Algoritmo de Deutsch, Deutsch-Jotza, Grover y BB84 Miércoles: Introducción a λ-cálculo y teoría de tipos Jueves y Viernes: Extensiones a λ-cálculo para computación cuántica Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 4 / 13 Álgebra En el pizarrón I I I Alejandro Díaz-Caro Espacio de Hilbert Producto tensorial Notación bra-ket Fundamentos de lenguajes de programación cuántica - RIO’15 5 / 13 Bits cuánticos Un qubit es. . . (para un físico) . . . un sistema cuántico con dos niveles de energía y que puede ser manipulado arbitrariamente Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 6 / 13 Bits cuánticos Un qubit es. . . (para un físico) . . . un sistema cuántico con dos niveles de energía y que puede ser manipulado arbitrariamente pero nosotros no somos físicos. . . (para un matemático o informático) . . . un vector normalizado del espacio de Hilbert C2 Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 6 / 13 Bits cuánticos Un qubit es. . . (para un físico) . . . un sistema cuántico con dos niveles de energía y que puede ser manipulado arbitrariamente pero nosotros no somos físicos. . . (para un matemático o informático) . . . un vector normalizado del espacio de Hilbert C2 n-qubits: un vector de n N n C2 = C 2 i=1 Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 6 / 13 Operadores En el pizarrón I I I I Operador Adjunto y propiedades Proyector Operador hermítico Alejandro Díaz-Caro I I I I Operador unitario Operador de medición Compuertas cuánticas Evolución Fundamentos de lenguajes de programación cuántica - RIO’15 7 / 13 No-controlada Negación H= Alejandro Díaz-Caro √1 2 1 1 + |1i) − |1i) 1 −1 X |0i = |1i X |1i = |0i 0 1 X= 1 0 CNOT |0x i = |0x i CNOT |1x i = |1i ⊗ X |x i I 0 CNOT = 0 X Identidad H|1i = √1 (|0i 2 √1 (|0i 2 Cambio de fase H|0i = Matrices de Pauli Hadamard Compuertas más comunes y operadores de Pauli I|0i = |0i I|1i = |1i 1 0 I= 0 1 Z |0i = |0i Z |1i = −|1i 1 0 Z= 0 −1 I X iXZ Z Fundamentos de lenguajes de programación cuántica - RIO’15 8 / 13 Teorema de no-clonado Teorema (No clonado) No existe ninguna compuerta cuántica U tal que para algún |φi ∈ CN y para todo |ψi ∈ CN se cumpla U|ψφi = |ψψi Es decir. . . No existe una máquina universal de clonado Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 9 / 13 Teorema de no-clonado Teorema (No clonado) No existe ninguna compuerta cuántica U tal que para algún |φi ∈ CN y para todo |ψi ∈ CN se cumpla U|ψφi = |ψψi Es decir. . . No existe una máquina universal de clonado o más simplemente No se puede copiar un qubit desconocido Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 9 / 13 Estados de Bell |x i H • βxy |y i Alejandro Díaz-Caro Entrada |00i |01i |10i |11i Salida β00 β01 β10 β11 Fundamentos de lenguajes de programación cuántica - RIO’15 = = = = √1 (|00i 2 √1 (|01i 2 √1 (|00i 2 √1 (|01i 2 + |11i) + |10i) − |11i) − |10i) 10 / 13 Estados de Bell |x i H Entrada |00i |01i |10i |11i • βxy |y i Ejemplo: M0 M= M1 = |0ih0| = |1ih1| Salida β00 β01 β10 β11 = = = = √1 (|00i 2 √1 (|01i 2 √1 (|00i 2 √1 (|01i 2 + |11i) + |10i) − |11i) − |10i) Entonces (M ⊗ I)β00 Alejandro Díaz-Caro |00i |11i Fundamentos de lenguajes de programación cuántica - RIO’15 10 / 13 Codificación superdensa Objetivo: Transmitir 2 bits clásicos enviando tan sólo 1 qubit Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 11 / 13 Codificación superdensa Objetivo: Transmitir 2 bits clásicos enviando tan sólo 1 qubit 1. A y B preparan β00 Z b1 X b2 | • H β00 b1 | | 2. Se llevan cada uno un qubit 3. A aplica Z b1 X b2 a su qubit 4. A envía su qubit a B b2 5. B aplica CNOT y H a ambos 6. B mide Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 11 / 13 Teleportación cuántica Objetivo: Transmitir 1 qubit enviando 2 bits clásicos Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 12 / 13 Teleportación cuántica Objetivo: Transmitir 1 qubit enviando 2 bits clásicos |ψi 1. A y B preparan β00 • H 2. Se llevan cada uno un qubit 3. A aplica CNOT y H al qubit a transmitir y el suyo del par β00 4. A mide y envía el resultado a B Z b1 X b2 Alejandro Díaz-Caro |ψi 5. B aplica Z b1 X b2 (b1 y b2 de A) Fundamentos de lenguajes de programación cuántica - RIO’15 12 / 13 Paralelismo cuántico Primera intuición f : {0, 1} → {0, 1} Resultados posibles: 2 Cantidad de evaluaciones para obtenerlos: 2 Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 13 / 13 Paralelismo cuántico Primera intuición f : {0, 1} → {0, 1} Resultados posibles: 2 Cantidad de evaluaciones para obtenerlos: 2 Supongamos que existe la siguiente compuerta: Uf |x , 0i = |x , f (x )i Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 13 / 13 Paralelismo cuántico Primera intuición f : {0, 1} → {0, 1} Resultados posibles: 2 Cantidad de evaluaciones para obtenerlos: 2 Supongamos que existe la siguiente compuerta: Uf |x , 0i = |x , f (x )i |0i H Uf |ψi = |0,f (0)i+|1,f (1)i √ 2 |0i Es decir: 1 1 1 H(1) Uf √ (|0, f (0)i+|1, f (1)i) |00i −−−→ √ (|0i+|1i)|0i = √ (|00i+|10i) −→ 2 2 2 Cantidad de evaluaciones de Uf para obtener los dos resultados: 1 Alejandro Díaz-Caro Fundamentos de lenguajes de programación cuántica - RIO’15 13 / 13