3. Agenda
¿Por qué Computación Cuántica?
¿Que es un Ordenador Cuántico?
Los Procesadores Cuánticos de IBM
Programación de Circuitos Cuánticos
Programa de Búsqueda Cuántica
Open QASM
QISKit Python API
5. @fjgramirez
¿Por qué Computación Cuántica?
“...nature isn't classical, dammit, and if you want to make a simulation
of nature, you'd better make it quantum mechanical...” –
Richard Feynman, Simulating Physics with Computers
“… la naturaleza no es clásica, maldita sea, y si quieren hacer una simulación de la naturaleza, será mejor que lo
hagán con mecánica cuántica …”
6. @fjgramirez
Campos de Aplicación
Criptografía, Comunicaciones y Seguridad
La Computación Cuantica tiene el potencial de mantener claves privadas a salvo de
hackers e intrusiones, no importa donde se almacenen o se procesen.
Medicina y Materiales
Un Computador Cuántico mimetiza la forma en la que la que opera la naturaleza. Puede
simular y entender las moléculas y sus interacciones mejor que un computador clásico.
Machine Learning
La computación cuántica puede acelerar significativamente el aprendizaje automático
y las tareas analíticas tales como el análisis topológico.
Búsquedas Big Data
Realizar busquedas ultrarápidas en la creciente cantidad de datos que se crean dia a dia, y
establecer conexiones y relaciones de forma mucho más rápida que los ordenadores actuales.
7. @fjgramirez
Campos de Aplicación
NATURE – Sept 2017: Aplicación de la Computación
Cuántica en Quimica
Un equipo de investigación de IBM utiliza la
computación cuántica para explorar la estructura de los
niveles de energica de varias moléculas
9. @fjgramirez
Conceptos Básicos
Principio de Incertidumbre
La medición de un estado
del sistema modifica el
sistema
Superposición de Estados
El espacio de estados = stados
base + cualquier superposición de
dichos estados
Entrelazamiento Cuántico
Paradoja EPR – Existe una relación
entre las propiedades de las particulas
que están entrelazadas.
Decoherencia de Estados
Los estados coherentes
tienen un comportamiento
de estado único
10. @fjgramirez
Características de un Computador Cuántico
1. Se puede inicializar
2. Hace uso del Entrelazamiento
3. Mantiene la coherencia
4. Trabaja con Paralelismo Cuántico
5. Utiliza Bits Cuánticos (Qubits)
11. @fjgramirez
El Qubit – Bloque Básico de Información
Un Qubit es el concepto cuantico de bit de información.
0 1 No se trata de ningún elementos o dispositvo. Es
un concepto lógico que puede implementarse
sobre un amplio rango de sistemas con
comportamiento cuántico.
Al igual que un bit, un Qubit puede representar
dos estados: 0 y 1 (estados base)
Pero además un Qubit es capaz de trabajar con todas las posibles
combinaciones que pueden tener lugar entre los estados base 0 and 1
10
10
Que es un Qubit?
12. @fjgramirez
0
1
2 BITS
0
1
0 0
0
1
0
1
A 0 0 + B 1 0 + C 0 1 + D 1 1
1 0
0 1
1 1
2 QUBITS
• 4 Estados Independientes.
• El sistema puede estar en
cualquier de estos cuatro
estados
Un único estado construido a
partir de la combinación de todos
los posibles estados
Superposición Cuántica
El Qubit – Bloque Básico de Información
13. @fjgramirez
Entrelazamiento Cuántico
1. Preparación de un estado
entrelazado.
Un estado entrelazado se prepara
mediante la aplicación de una
operación comun al sistema
2. Realización de una medida
0 0
1 1
0
1
14. @fjgramirez
Tiempos de Coherencia
• Actualmente los tiempos de
coherencia están alrededor de
100 microsegundos.
• Hay varias iniciativas para mejorar
los tiempos de coherencia:
• Otros materiales
• Rediseño de geometrias
• Calidad de las cavidades
• Apantallamiento IR
• En la úlitma década se han hecho
progresos importantes
15. @fjgramirez
El Refrigerador de Dilución
Un elemento clave de computador cuántico es el Refriferador de Dilución
Temperatura de operación 15 mK
Refrigeración de Dilución
3He + 4He
17. @fjgramirez
Marzo - 2016: Computación Cuántica en el Cloud
IBM ha construido el primer
procesador cuántico de 5 qubits al
que puede acceder cualquier
usuario conectado a internet
IBM Quantum Experience, es una
iniciativa que permite a los usuarios
ejecutar algoritmos y experimentos
en el procesador cuantico de IBM
en el cloud.
18. @fjgramirez
Marzo-2017: IBM anuncia IBM Q
IBM Q es la nueva línea de computadores cuánticos que
producirá IBM
IBM anuncia la construcción de un computador cuántico de 50 qubits y
que ofrecerá servicios de computación cuántica en el Cloud.
19. @fjgramirez
Mayo-2017: Primer Computador Cuántico Comercial
Computadores Universales de 16 and 17 qubits
IBM anuncia un prototipo de
computador cuántico
comercial de 17 qubits
IBM ha descubierto como
escalar la arquitectura
cuántica.
En tres años se planea
alcanzar un chip de 50 qubits.
20. @fjgramirez
Arquiectura de Qubits Superconductores
Circuito QED: Un qubit superconductor está fuertemente interaccionado con un solo
fotón en una cavidad de microondas.
El esquema de acoplamiento del circuito
QED se ha convertido en el estándar para
acoplar y leer qubits superconductores a
medida que los sistemas continúan
escalando.
21. @fjgramirez
Caracterización: El Volumen Cuántico
La potencia de un
computador cuántico no
solo depende del número
de qubits
Si queremos utilizar
computadores cuánticos para
resolver problemas reales, es
necesario explorar un gran
espacio de estados cuánticos. El
número de qubits es
importante, pero también lo es
la tasa de error. En los
dispositivos prácticos, la tasa de
error efectiva depende de la
precisión de cada operación,
pero también de la forma en que
se llevan a cabo las operaciones
para resolver un problema
particular, así como de cómo el
procesador realiza estas
operaciones. Aquí presentamos
una magnitud llamada volumen
cuántico que explica todas estas
cosas. Puede verse como una
representación del espacio del
problema que estas máquinas
pueden explorar.
22. @fjgramirez
Arquitectura del Procesador Cuántico de IBM
Arquitectura en Capas
Capa física.
proporciona la corrección de errores.
Consiste en un procesador cuántico físico
que tiene líneas de entrada y de salida
controladas por el procesador de
corrección de errores cuánticos.
Capa lógica.
Controla el procesador físico, define los
qubits codificados y se realizan las
operaciones lógicas para el algoritmo
cuántico deseado
23. @fjgramirez
El Procesador Q5
Arquitectura Tolerante a fallos
Chip Cuántico de 5 qubits
Control Online de cada Qubit
26. @fjgramirez
Algoritmos Cuánticos
• Algorimo de Deusch – Determina si una función es constante o
balanceada
• Algoritmo de Shor – Factorización de grandes números
• Algoritmo de Grover – Búsquedas en espacios no estructurados
27. @fjgramirez
Algoritmo de Deustch
f1:
0 0
1 0
f2:
0 1
1 1
Algoritmo de Deustch-Josza Extensión del algoritmo
de Deustch a registros con n valores
f3:
0 0
1 1
f4:
0 1
1 0
28. @fjgramirez
Algoritmo de Shor
Numero de pasos que un ordenador clásico necesita dar para
encontrar los factores primos de un número N de x dígitos
Crece exponencialmente con x
In 2001, IBM y la Universidad de Standford, ejecutaron por primera vez el algoritmo de Shor en un computador cuántico de 7
qubits desarrollado en Los Álamos.
https://www-03.ibm.com/press/us/en/pressrelease/965.wss
937 x 947 = N (fácil)
887339 = p x q (no tan fácil)
La robustez de la factorización es
la base de algoritmo RSA
29. @fjgramirez
Algoritmo de Grover
• ¿Cuantos intentos son necesarios para encontrar un
elemento dentro de un conjunto de N elementos
desordenados?
Son necesarios una media de N/2 intentos
http://www.dma.eui.upm.es/MatDis/Seminario4/AlgoritmoGrover.pdf
• Un computador cuántico ejecutando el algoritmo de Grover lo
haría en intentosN
35. @fjgramirez
Circuitos Cuánticos
Histograma de Barras
• La combinación de 0’s y 1’s en la parte inferior del diagrama representa el estado del Qubit que se ha
medido.
• La altura de la barra representa con que frecuencia se produce ese estado en particular
36. @fjgramirez
Representación de estados en la Esfera de Bloch
Esfera de Bloch
• Un qubit es un sistema cuántico
con dos niveles de energía 0 y 1
que asimilamos con una base de
dos vectores.
• Sobre esta base definimos todas
sus posibles combinaciones en
una esfera mediante rotaciones
alrededor del eje X
• Las rotaciones alrededor del eje Z
indica un cambio en la fase.
37. @fjgramirez
Puertas Cuánticas de 1 Qubit
Puerta X
Transforrma el estado en
el estado y viceversa
Significa un rotaión de π
radianes alrededor del eje X
0
1
Cambio de estado base
38. @fjgramirez
Puertas Cuánticas de 1 Qubit
Puerta H
Transforma cualquiera de los
estados base o en una
combinación de ambos.
Supone una rotación de π/2
radianes alrededor del eje X y
del eje Z
Superposición de estados base
0 1
No se puede medir sobre el eje Z, pero se puede utilizar la puerta H para hacer un cambio de base
40. @fjgramirez
Puertas Cuánticas de 1 Qubit
The S Gate Cambio de Fase – π/2
Realiza una rotación de
π/2 radianes alrededor
del eje Z
41. @fjgramirez
Puertas Cuánticas de 1 Qubit
The S Gate
Cambio de Fase – π/4
Realiza una rotación de
π/4 radianes alrededor
del eje Z
42. @fjgramirez
Puertas Cuánticas de 2 Qubit
The CNOT Gate
Cambia el estado del qubit objetivo (target), en
función del estado del qubit de control
43. @fjgramirez
Puertas Cuánticas de 2 Qubit
Aplicación de una Puerta CNOT a dos Qubits en distintos estados
• |00>
• |01>
• |10>
• |11>
44. @fjgramirez
Estados de Bell Entrelazados
X-Gate
Cambia el estado de un Qubit de 0 a 1, y
vice versa.
Hadamard Gate
Pone en superposición los estados de un
Qubit.
Actua sobre un qubit destino en funcion del
valor de un qubit de control
Controlled Not Gate
Entanglement
La puerta H gate pone el primer
qubit en superposición. La
puerta CNOT “actua y no actua”
sobre el segundo Qubit.
Si los Qubits se inicializan a 0,
cuando se midan darán 11 o 00,
pero nunca 10 o 01.
45. @fjgramirez
Creación de Estados de Bell (no separables)
• Estado de Bell ZZ
• Estado de Bell ZW
• Estado de Bell ZV
• Estado de Bell XW
• Estado de Bell XV
Estados de Bell Entrelazados
47. @fjgramirez
Programación del Algoritmo de Grover
Una lista de N items
Se desea localizar un item con una propiedad única
1 2 3 4 ... ... N=2n
Un cómputo clásico necesita comprobar en promedio de estas cajas2N
Un Computador Cuántico utilizando el algoritmo de Grover lo puede hacer en aprox. pasosN
49. @fjgramirez
Programación del Algoritmo de Grover
Se necesita una función tal que: para el elemento marcado:1)( xf
Se construye la matriz “oráculo”: fU
xxU xf
f
)(
1
Aplicando una reflexión al oráculo : Si es un item no marcado, entonces el oráculo no
hace nada, pero en caso contrario:
x
fU
amplitude
0
N
1
Items1 2 3 ( .... )
51. @fjgramirez
Programación del Algoritmo de Grover
Se aplica una reflexión adicional contra el estado
En la notación bra-ket esta reflexión se escribe como :
Esta transformación lleva el estado a :
y completa la transformación:
s
12 ssUs
'tsU
tfst UU 1
amplitude
0
Items1 2 3 ( .... )
sU
55. @fjgramirez
QISKit OpenQASM
What is OpenQASM?
Es una representación intermedia para Circuitos Cuánticos.
Agnostico en cuanto al Hardware
OPENQASM, o “Quantum Assembly Language,” es una
represéntación textural simple que describe circuítos cuánticos
genéricos.
Se pueden submitir jobs OpenQASM en batch via HTTP
API/PYTHON wrapper.
57. @fjgramirez
QISKit OpenQASM
Puertas Predefinicas
// These are the predefined gates
U(theta,phi,lambda) qubit|qreg;
CX qubit|qreg,qubit|qreg;
Definición de nuevas puertas
// This is the definition
gate name(params) qargs
{
body
}
// This is an example
gate g a
{
U(0,0,0) a;
}
gate crz(theta) a,b
{
U(0,0,theta/2) a;
CX a,b;
U(0,0,-theta/2) b;
CX a,b;
U(0,0,theta/2) b;
}
crz(pi/2) q[0],q[1];
58. @fjgramirez
QISKit OpenQASM
Ejemplo: Transformada Cuántica de Fourier// quantum Fourier
transform
IBMQASM 2.0;
include "qelib1.inc";
qreg q[4];
creg c[4];
x q[0];
x q[2];
barrier q;
h q[0];
cu1(pi/2) q[1],q[0];
h q[1];
cu1(pi/4) q[2],q[0];
cu1(pi/2) q[2],q[1];
h q[2];
cu1(pi/8) q[3],q[0];
cu1(pi/4) q[3],q[1];
cu1(pi/2) q[3],q[2];
h q[3];
measure q -> c;
The quantum Fourier transform demonstrates parameter
passing to gate subroutines.
This circuit applies the QFT to the state
and measures in the computational basis.
3210 qqqq 0101
60. @fjgramirez
QISKit API
Que es QISKit API?
Acceso a IBM Quantum Experience utilizando una interface Python.
Esta interfaz permite trabajar con circuitos cuánticos y ejecutar varios de
ellos de froma eficiente.
61. @fjgramirez
QISKit API
Elementos básicos de programa
Quantum Program
QuantumProgram()
Circuit
.create_circuit()
Quantum Register
.create_quantum_registers()
Classical Register
.create_classical_registers()
62. @fjgramirez
QISKit API
Circuit
Primero, instanciar la clase y crear el registro
circuit = Q_program.get_circuit(“Circuit")
Tipos de registro
Quantum Registers
q2 = Q_program.create_quantum_register("q2", 2)
Classical Registers
c2 = Q_program.create_classical_register("c2", 2)
65. @fjgramirez
QISKit API
Creación de un estado de Bell entrelazado
1. Crear los registros cuánticos
q2 = Q_program.create_quantum_register("q2", 2)
2. Crear los registros clásicos
c2 = Q_program.create_classical_register("c2", 2)