2017 09 07_programar_ordenadorcuanticov3

Post on 22-Jan-2018

267 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Programación CuánticaUn nuevo Paradigma en Computación

Francisco Gálvez RamirezIBM Staff

fjgramirez@es.ibm.com

Presentación

Francisco Gálvez

Cloud and Integrated Systems Expert

fjgramirez@es.ibm.com

@fjgramirez

Francisco J. Galvez Ramirez

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

¿Por que Computación Cuántica?

@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 …”

@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.

@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

¿Que es un Ordenador Cuántico?

@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

@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)

@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?

@fjgramirez

0

1

2 BITS

0

1

0 0

0

1

0

1A 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

@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

@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

@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ón3He + 4He

Los Procesadores Cuánticos de IBM

@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.

@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.

@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.

@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.

@fjgramirez

Caracterización: El Volumen CuánticoLa 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.

@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

@fjgramirez

El Procesador Q5

Arquitectura Tolerante a fallos

Chip Cuántico de 5 qubits Control Online de cada Qubit

@fjgramirez

El Procesador Q16

Mantiene la arquitectura planar

Chip Cuántico de 16 qubits Control Online de cada Qubit

Algunos Algoritmos Cuánticos

@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

@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

@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

@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

Programación de Circuitos Cuanticos

@fjgramirez

Modelo de Circuitos

Ejemplo

Tiempos ejecución puertas cuánticas ~ 25 ns ~25 ns~25 ns ~25 ns ... ... ... ... ...

Tiempos de Coherencia: 100 ms

medidas

@fjgramirez

El Modelo de Circuitos

Circuitos Cuánticos

@fjgramirez

IBM Quantum Experience

https://quantumexperience.ng.bluemix.net/qx

@fjgramirez

Circuitos Cuánticos

El Composer de IBM Quantum Experience

@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

@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.

@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

01

Cambio de estado base

@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 π/2radianes 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

@fjgramirez

Puertas Cuánticas de 1 Qubit

The Z Gate Cambio de Fase - π

Realiza una rotación de πradianes alrededor del eje Z

@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

@fjgramirez

Puertas Cuánticas de 1 Qubit

The S GateCambio de Fase – π/4

Realiza una rotación de

π/4 radianes alrededor

del eje Z

@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

@fjgramirez

Puertas Cuánticas de 2 Qubit

Aplicación de una Puerta CNOT a dos Qubits en distintos estados

• |00>

• |01>

• |10>

• |11>

@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.

@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

Programa de Búsqueda Cuántica(Algoritmo de Grover)

@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. pasos N

@fjgramirez

Programación del Algoritmo de Grover

1

0

1 N

x

xN

s

Crear una superposición uniforme

amplitude

0

N

1

Items1 2 3 ( .... )

@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 ( .... )

@fjgramirez

Programación del Algoritmo de Grover – Oráculos

Obtener la función oráculo correcta :

Elemento

Elemento

Elemento

Elemento

00

10

11

fU

01

@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

@fjgramirez

Programación del Algoritmo de Grover

@fjgramirez

Programación del Algoritmo de Grover – Resultados

El estado es el que muestra la mayor probabilidad00

Open QASM

@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.

@fjgramirez

OpenQASM

Sentencias del Lenguaje

IBMQASM 2.0;

qreg name[size];

creg name[size];

include "filename";

gate name(params) qargs { body }

opaque name(params) qargs;

U(theta,phi,lambda) qubit|qreg;

CX qubit|qreg,qubit|qreg;

measure qubit|qreg -> bit|creg;

reset qubit|qreg;

gatename(params) qargs;

if(creg==int) qop;

barrier qargs;

@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];

@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

QISKit Phyton API

@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.

@fjgramirez

QISKit API

Elementos básicos de programa

Quantum ProgramQuantumProgram()

Circuit.create_circuit()

Quantum Register.create_quantum_registers()

Classical Register.create_classical_registers()

@fjgramirez

QISKit API

Circuit

Primero, instanciar la clase y crear el registrocircuit = Q_program.get_circuit(“Circuit")

Tipos de registro

Quantum Registersq2 = Q_program.create_quantum_register("q2", 2)

Classical Registersc2 = Q_program.create_classical_register("c2", 2)

@fjgramirez

QISKit API

Puertas Cuánticas

Añadir puertas al circuito cuántico

@fjgramirez

QISKit APIExtracción de código QASM

@fjgramirez

QISKit API

Creación de un estado de Bell entrelazado

1. Crear los registros cuánticosq2 = Q_program.create_quantum_register("q2", 2)

2. Crear los registros clásicosc2 = Q_program.create_classical_register("c2", 2)

Thanks

top related