SlideShare a Scribd company logo
1
Quantum Programming
Brief introduction to quantum programming
languages
Francisco J, Gálvez Ramírez
fjgramirez@es.ibm.com
IBM Technical Staff
Agenda
• Basic Concepts
• Quantum Algorithms
• Programming Languages
• IBM Quantum Experience
3
Basic Concepts
What is a quantum computer
 A Quantum Computer makes use of the natural laws of
quantum mechanics to carry out a calculation.
 Why do we need a quantum computer
 Resolution of some specific problems  Some problems cannot be
treated with classical computer with full reliability.
 Performance  Faster troubleshooting than a classical computer.
5
Basic Concepts in Quantum Mechanics
 Uncertainty Principle
It is impossible to carry out a measurement on a system without disturbing the
system
 State Superposition
Every state can exists as any possible conifguration in the states space
 Quantum Entanglement
EPR Paradox – There’s a relationship among the features of entangled
particles.
 State Decoherence
In a coherent state all the quantum properties remain on every component
identified as being part of the system. Decoherence returns the individual
identity to each component and drops off the quantum characteristics
6
Features of a Quantum Computer
1. Use of Quantum Bits or Qubits
2. Make use of Quantum Parallelism
3. Quantum Entanglement
4. Keeps coherence
7
What is a Quantum bit or Qubit?
• A Qubit is the quantum concept of a bit
• It is either an element nor a device. A
Qubit is a logical concept that can be
implemented on a vast number of
systems with a quantum behaviour.
• As a bit, the Qubit can be in two base
states: 0 and 1.
However, a Qubit can work with all the possible combinations that can be
built with these base states 0 and 1
8
Quantum Operations
 It is a basic circuit that acts on one or several qubits
 It is equivalent to logical gates in digital circuits
1. Quantum Gates are Reversible
2. Matematically are represented by unitary matrices.
3. The qubits upon they act keep their quantum nature.
1 1 1
2 1 -1
=
1 0 0 0
0 1 0 0
0 0 0 1
0 0 1 0
=
Hadamard Gate CNOT Gate
Quantum Gates
9
Main Quantum Algorithms
Main Quantum Algorithms
 Deusch Algorithm – Determines whether a funcion is
balanced or unbalanced
 Shor Algorithm – Large numbers factorization
 Grover Algoritm – Search in unstructured spaces
Deustch Algorithm
f1:
0 0
1 0
f2:
0 1
1 1
f3:
0 0
1 1
f4:
0 1
1 0
Deustch-Josza’s Algorithm  Extend of the
Deustch’s algorithm for records with n values
Shor Algorithm
• Number of steps that a classic computer needs to run in order to find the
prime factors of a number N of x digits
It grows exponencially with x
• The Shor algorithm is made up of two parts:
1. One Classical part - Which focuses on finding the period of a
function
2. A quantum part based on QFT technics
In 2001, IBM and Stanford University, executed for the first time the Shor
algorithm in the first quantum computer of 7 qubits developed in Los Álamos.
https://www-03.ibm.com/press/us/en/pressrelease/965.wss
Grover Algorithm
• How many attempts need a data search in an unordered
N-element database to locate a particular element??
An average of N/2 attemps are needed)
A quantum computing executing the Grover algorithm
would run 𝑁 attemps
http://www.dma.eui.upm.es/MatDis/Seminario4/AlgoritmoGrover.pdf
14
Programming Languages
Quantum Pseudocode
• The quantum pseudocode was initially proposed by E. Knill
was the first forma language for quantum algorithms
description.
• It is related with a quantum machine model know as QRAM
(Quantum Random Access Machine)
• Source : https://www.researchgate.net/publication/51394884_Quantum_Random_Access_Memory
Four Layer Architectural Proposal
• Layer’s architecture
High Level Language
Quantum Assembler Language QASM
Quantum Physical Operations Language QPOL
Physical Device Access Modues
Quipper – A Haskel Library
• Published in 2013.
• It is an embeded language based on Haskel, developed as part of the
IARPA ‘s QCS project
• The quantum programs are written in Haskel adding the appropiate
libraries
• Quipper is a circuit description language
• Example:
import Quipper
spos :: Bool -> Circ Qubit
spos b = do
q <- qinit b
r <- hadamard q
return r
Quipper – A Haskel Library
Examples of circuit generation code for Quipper
circ :: Qubit -> Circ Qubit
circ x = do
hadamard_at x
with_ancilla $ y -> do
qnot_at y
qnot x `controlled` y
qnot_at y
hadamard_at x
return x
teleport :: Qubit -> Circ Qubit
teleport q = do
(a,b) <- bell00
(x,y) <- alice q a
b <- bob b (x,y)
return b
Introduction to Quipper: https://arxiv.org/pdf/1304.5485v1.pdf
Quipper – A Haskel Library
Algorithms used in Quipper development
• BWT – Binary Welded Tree. How to find out an identified node in a graph.
• BF – Boolean Formula. Evaluates NAND expresion.
• CL – Class Number. Aproximation of a group class to a real cuadratic number.
• GSE – Ground State Estimation. Calculate the lowers energy level of a
particular molecule.
• QLS – Quantum Linear System. Solving of a linear system of equations.
Quantum Primitives:
• Quantum Fourier Transform
• Amplitude Amplification
• Quantum Walk
• ...
• USV – Unique Shortest Vector. Finding out
the shortest vector in a given set of vectors
• TF – Triangle Finding. Drawing of a
triangle in a dense graph
The Python Quantum Toolbox
Authors: Paul Nation and Robert Johansson
Web site: http://qutip.googlecode.com
Discussion: Google group “qutip”
Blog: http://qutip.blogspot.com
Platforms: Linux and Mac
License: GPLv3
Download: http://code.google.com/p/qutip/downloads
Repository: http://github.com/qutip
Publication: Comp. Phys. Comm. 183, 1760 (2012) arXiv:1211.6518 (2012)
The Python Quantum Toolbox
QuTiP – Is an object oriented open source
framework for open quantum systems calculus
Visualization
Core Functions
Temporal EvolutionStates
Operators
Logic Gates
QuTiP Documentation: http://qutip.org/downloads/3.1.0/qutip-doc-3.1.0.pdf
The Python Quantum Toolbox
• Relationship between quantum concepts
and their represetation in QuTiP
.
Quantum Concept QuTiP Represenation
Quantum State or Wave Function
Amplitude of probability that describes the state of the
quantum system.
Vectors and Matrices
Complex elements
Operators
The Hamiltonian operator es the function that represents the
total energy of a system and describes the energy of every
possible state of the system. The operator represents
physical observables
Matrices
The operators are represented as matrices.
Equation of motion
Describes how the states of the quantum system evolves in
time.
Diferential equations
Systems of coupled differential equations.
Observables and expected values
Physical obsevables are quantities that correspond to
operators
Internal Product
The results are calculated as internal product between state
vectors and matrices that represent operators, yielding as a
result real numbers for physical observables
The Python Quantum Toolbox
Objetcs and datatypes
Qobj provides the necessary structure to encapsulate the
quantum operators and the vectors <bra| and |ket>
Data Q.data
Dimensions Q.dims
Shape Q.shape
is Hermitian? Q.ishermIs
Type Q.type
The Python Quantum Toolbox
• Visualization capabilities
• Function for Distribution of Probability
• Operators Visualization
• Quantum Process Tomography
• 2D & 3D histograms
• Color Maps
• Lineal Graphs
• Bloch Sphere representation
Mathematica
List of Mathematica packages for Quantum Calculus
• QDENSITY - Quantum Computer Simulation. Density Matrices.
http://www.pitt.edu/~tabakin/QDENSITY/UPDATE14.pdf
• qmatrix – Package for quantum information computation.
http://library.wolfram.com/infocenter/MathSource/1893/
• Quantum Add-On that performa a vast quantity of computations and simulations in
quantum mechanics. (University of Monterrey)
http://homepage.cem.itesm.mx/lgomez/quantum/index.htm
• CMU: Quantum Information Programs in Mathematica – Library of functions and
objetcs: <bra|ket> notation, operators, etc. (Carnegie-Mellon University )
http://quantum.phys.cmu.edu/QPM/
• Quantum Turing Machine Simulator Oriented to Turing Quantum Machines
http://www.mathematica-journal.com/issue/v8i3/features/hertel/contents/html/index.html
• QI – Package for quantum computation, mainliy focused on geometrical aspects of the
quantum information theory.
https://zksi.iitis.pl/wiki/projects:mathematica-qi
MatLab QLib
Matlab Library for Quantum Computation
• Probability Distribution(clasical)
• Pure States
• Density Matrices
• Hermítian Matrices
• Several entanglement test
• Lineal Entroy, de Von Neumann Entropy ...
• Distance Measurement (Trace, fidelity, Hilbert..)
• Schmidt Decomposition
• Observables Measurements (POVM)
The IBM Quantum Experience
En que consiste IBM Quantum Experience
 A set of tutorials which is guide to understand all the
quantum experiments.
 The quantum Composer, is a graphical interface where a
quantum circuit can be designed.
 A simulator used to execute the quantum circuits
designed in the composer.
 Access to a real Quantum Processor which is physcally
located and working at Quantum Computing IBM Lab
 Under construction: A Quantum Community
Intoruducing the IBM Quantum Experience
 The standar user has total access to:
 A real Quantum Processor
 Simulation Capabilities
 Memory cache with results from previous experiments.
 There’s a unique quantum processor available in the cloud.
 When the user consumes the computing units, new
computing units can be acquired from the “Account Page”.
The Quantum Composer
 Graphical Interface used to create programs for the
quantum processor
 It allows to create quantum circuits using a logical gates
library and well defined points of measurement
La librerias de Operaciones Cuánticas
Yellow Blocks. Are empty operation on a qubit for a
unit of time which equals the duration of a gate for
one qubit.
Green Blocks. These are the Operators the the
Pauli Group (X, Y, Z).
Blue Blocks. Clifford Operators. These gates are H,
S and S† and they are used to generate quantum
superposition
Orange Blocks. These are the gates necessary for
universal computation (Non-Cliford gates).
The Full Library ... (... at versión 1 ...)
Working with the Composer
(Demo)

More Related Content

What's hot (20)

PPT
Quantum computer
Nikhil Eg
 
PPTX
Quantum computing
dharmsinghggu
 
PPTX
Quantum Computing - Basic Concepts
Sendash Pangambam
 
PPT
Ibm quantum computing
Francisco J. Gálvez Ramírez
 
PPTX
Quantum computing
MadhaviHanmanthkar
 
PPTX
Quantum computing
TejasKapile1
 
PDF
Introduction to Quantum Computer
Sarun Sumriddetchkajorn
 
PPTX
Quantum computing
Ritwik MG
 
PPTX
Quantum Computing
t0pgun
 
PPTX
quantum computing
ManishKumarMajumdar1
 
PPT
052516 week11 quantum computers
Subas Nandy
 
PPTX
QuantumComputersPresentation
Vinayak Suresh
 
PPTX
Presentation quantum computers
AzeemAhmed55
 
PDF
Quantum Computing: The Why and How
inside-BigData.com
 
PPTX
Quantum Computing by Rajeev Chauhan
OWASP Delhi
 
PDF
Quantum Computing
Abhishek Jaisingh
 
PPTX
Taking Quantum Computing for a Spin: What is Imaginary and What is Real?
Mike Hogarth, MD, FACMI, FACP
 
PPTX
What is quantum computing
Mariyum Khan
 
PDF
Quantum Computers
khan saad bin hasan
 
Quantum computer
Nikhil Eg
 
Quantum computing
dharmsinghggu
 
Quantum Computing - Basic Concepts
Sendash Pangambam
 
Ibm quantum computing
Francisco J. Gálvez Ramírez
 
Quantum computing
MadhaviHanmanthkar
 
Quantum computing
TejasKapile1
 
Introduction to Quantum Computer
Sarun Sumriddetchkajorn
 
Quantum computing
Ritwik MG
 
Quantum Computing
t0pgun
 
quantum computing
ManishKumarMajumdar1
 
052516 week11 quantum computers
Subas Nandy
 
QuantumComputersPresentation
Vinayak Suresh
 
Presentation quantum computers
AzeemAhmed55
 
Quantum Computing: The Why and How
inside-BigData.com
 
Quantum Computing by Rajeev Chauhan
OWASP Delhi
 
Quantum Computing
Abhishek Jaisingh
 
Taking Quantum Computing for a Spin: What is Imaginary and What is Real?
Mike Hogarth, MD, FACMI, FACP
 
What is quantum computing
Mariyum Khan
 
Quantum Computers
khan saad bin hasan
 

Similar to Quantum programming (20)

PPT
Des2017 quantum computing_final
Francisco J. Gálvez Ramírez
 
PPT
2017 07 04_cmmse_quantum_programming_v1
Francisco J. Gálvez Ramírez
 
PPT
2017 10 17_quantum_program_v2
Francisco J. Gálvez Ramírez
 
PPTX
Quantum computing
Krishna Patel
 
PPTX
Strengths and limitations of quantum computing
Vinayak Sharma
 
PPTX
What is Quantum Computing and Why it is Important
Sasha Lazarevic
 
PPTX
[Q-tangled 22] Deconstructing Quantum Machine Learning Algorithms - Sasha Laz...
DataScienceConferenc1
 
PPT
Quantum computing
Davide Nardone
 
PPT
Fundamentals of Quantum Computing
achakracu
 
PDF
Quantum Computing with Amazon Braket
Chris Fregly
 
PPTX
Quantum Computation simplified.pptx
SundarappanKathiresa
 
PPTX
Quantum Computation For AI
Prasenjit Mukherjee
 
PDF
Genomics algorithms on digital NISQ accelerators - 2019-01-25
Aritra Sarkar
 
PPTX
Quantum Computing
Stephen Habegger
 
PPTX
quantumcomputing-230309064424-9aa92847.pptx
chintapatlasudheerna
 
PPTX
Overview of quantum computing and it's application in artificial intelligence
BincySam2
 
PPTX
Navneet presentation
Navneet kumar
 
PDF
Quantum Computing and Qiskit
Pooja Mistry
 
PPTX
Quantum Information FINAL.pptx
gitrahekno
 
PPTX
template.pptxr4t5y67yrttttttttttttttttttttttttttttttttttt
SithamparanaathanPir
 
Des2017 quantum computing_final
Francisco J. Gálvez Ramírez
 
2017 07 04_cmmse_quantum_programming_v1
Francisco J. Gálvez Ramírez
 
2017 10 17_quantum_program_v2
Francisco J. Gálvez Ramírez
 
Quantum computing
Krishna Patel
 
Strengths and limitations of quantum computing
Vinayak Sharma
 
What is Quantum Computing and Why it is Important
Sasha Lazarevic
 
[Q-tangled 22] Deconstructing Quantum Machine Learning Algorithms - Sasha Laz...
DataScienceConferenc1
 
Quantum computing
Davide Nardone
 
Fundamentals of Quantum Computing
achakracu
 
Quantum Computing with Amazon Braket
Chris Fregly
 
Quantum Computation simplified.pptx
SundarappanKathiresa
 
Quantum Computation For AI
Prasenjit Mukherjee
 
Genomics algorithms on digital NISQ accelerators - 2019-01-25
Aritra Sarkar
 
Quantum Computing
Stephen Habegger
 
quantumcomputing-230309064424-9aa92847.pptx
chintapatlasudheerna
 
Overview of quantum computing and it's application in artificial intelligence
BincySam2
 
Navneet presentation
Navneet kumar
 
Quantum Computing and Qiskit
Pooja Mistry
 
Quantum Information FINAL.pptx
gitrahekno
 
template.pptxr4t5y67yrttttttttttttttttttttttttttttttttttt
SithamparanaathanPir
 
Ad

More from Francisco J. Gálvez Ramírez (10)

PDF
2019 03 28_upv_computacion_cuantica_liderat
Francisco J. Gálvez Ramírez
 
PDF
2019 03 28_upv_transformacion_digital_liderat
Francisco J. Gálvez Ramírez
 
PDF
Quantum Roles in Quantum Computing
Francisco J. Gálvez Ramírez
 
PDF
Perfiles en Tecnologias Cuanticas
Francisco J. Gálvez Ramírez
 
PDF
2017 12 19_campus_madrid_the_age_of_quantumcomputing_final
Francisco J. Gálvez Ramírez
 
PDF
2017 09 07_programar_ordenadorcuanticov3
Francisco J. Gálvez Ramírez
 
PPT
Evento univ30may quantumcomputing_final
Francisco J. Gálvez Ramírez
 
PDF
Breve historia de_la_computacion_cuantica
Francisco J. Gálvez Ramírez
 
PPT
Introduccion algoritmoscuanticos
Francisco J. Gálvez Ramírez
 
PPTX
Lenguajes para programación cuántica
Francisco J. Gálvez Ramírez
 
2019 03 28_upv_computacion_cuantica_liderat
Francisco J. Gálvez Ramírez
 
2019 03 28_upv_transformacion_digital_liderat
Francisco J. Gálvez Ramírez
 
Quantum Roles in Quantum Computing
Francisco J. Gálvez Ramírez
 
Perfiles en Tecnologias Cuanticas
Francisco J. Gálvez Ramírez
 
2017 12 19_campus_madrid_the_age_of_quantumcomputing_final
Francisco J. Gálvez Ramírez
 
2017 09 07_programar_ordenadorcuanticov3
Francisco J. Gálvez Ramírez
 
Evento univ30may quantumcomputing_final
Francisco J. Gálvez Ramírez
 
Breve historia de_la_computacion_cuantica
Francisco J. Gálvez Ramírez
 
Introduccion algoritmoscuanticos
Francisco J. Gálvez Ramírez
 
Lenguajes para programación cuántica
Francisco J. Gálvez Ramírez
 
Ad

Recently uploaded (20)

PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Advancing WebDriver BiDi support in WebKit
Igalia
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
July Patch Tuesday
Ivanti
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Advancing WebDriver BiDi support in WebKit
Igalia
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 

Quantum programming

  • 1. 1 Quantum Programming Brief introduction to quantum programming languages Francisco J, Gálvez Ramírez [email protected] IBM Technical Staff
  • 2. Agenda • Basic Concepts • Quantum Algorithms • Programming Languages • IBM Quantum Experience
  • 4. What is a quantum computer  A Quantum Computer makes use of the natural laws of quantum mechanics to carry out a calculation.  Why do we need a quantum computer  Resolution of some specific problems  Some problems cannot be treated with classical computer with full reliability.  Performance  Faster troubleshooting than a classical computer.
  • 5. 5 Basic Concepts in Quantum Mechanics  Uncertainty Principle It is impossible to carry out a measurement on a system without disturbing the system  State Superposition Every state can exists as any possible conifguration in the states space  Quantum Entanglement EPR Paradox – There’s a relationship among the features of entangled particles.  State Decoherence In a coherent state all the quantum properties remain on every component identified as being part of the system. Decoherence returns the individual identity to each component and drops off the quantum characteristics
  • 6. 6 Features of a Quantum Computer 1. Use of Quantum Bits or Qubits 2. Make use of Quantum Parallelism 3. Quantum Entanglement 4. Keeps coherence
  • 7. 7 What is a Quantum bit or Qubit? • A Qubit is the quantum concept of a bit • It is either an element nor a device. A Qubit is a logical concept that can be implemented on a vast number of systems with a quantum behaviour. • As a bit, the Qubit can be in two base states: 0 and 1. However, a Qubit can work with all the possible combinations that can be built with these base states 0 and 1
  • 8. 8 Quantum Operations  It is a basic circuit that acts on one or several qubits  It is equivalent to logical gates in digital circuits 1. Quantum Gates are Reversible 2. Matematically are represented by unitary matrices. 3. The qubits upon they act keep their quantum nature. 1 1 1 2 1 -1 = 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 = Hadamard Gate CNOT Gate Quantum Gates
  • 10. Main Quantum Algorithms  Deusch Algorithm – Determines whether a funcion is balanced or unbalanced  Shor Algorithm – Large numbers factorization  Grover Algoritm – Search in unstructured spaces
  • 11. Deustch Algorithm f1: 0 0 1 0 f2: 0 1 1 1 f3: 0 0 1 1 f4: 0 1 1 0 Deustch-Josza’s Algorithm  Extend of the Deustch’s algorithm for records with n values
  • 12. Shor Algorithm • Number of steps that a classic computer needs to run in order to find the prime factors of a number N of x digits It grows exponencially with x • The Shor algorithm is made up of two parts: 1. One Classical part - Which focuses on finding the period of a function 2. A quantum part based on QFT technics In 2001, IBM and Stanford University, executed for the first time the Shor algorithm in the first quantum computer of 7 qubits developed in Los Álamos. https://www-03.ibm.com/press/us/en/pressrelease/965.wss
  • 13. Grover Algorithm • How many attempts need a data search in an unordered N-element database to locate a particular element?? An average of N/2 attemps are needed) A quantum computing executing the Grover algorithm would run 𝑁 attemps http://www.dma.eui.upm.es/MatDis/Seminario4/AlgoritmoGrover.pdf
  • 15. Quantum Pseudocode • The quantum pseudocode was initially proposed by E. Knill was the first forma language for quantum algorithms description. • It is related with a quantum machine model know as QRAM (Quantum Random Access Machine) • Source : https://www.researchgate.net/publication/51394884_Quantum_Random_Access_Memory
  • 16. Four Layer Architectural Proposal • Layer’s architecture High Level Language Quantum Assembler Language QASM Quantum Physical Operations Language QPOL Physical Device Access Modues
  • 17. Quipper – A Haskel Library • Published in 2013. • It is an embeded language based on Haskel, developed as part of the IARPA ‘s QCS project • The quantum programs are written in Haskel adding the appropiate libraries • Quipper is a circuit description language • Example: import Quipper spos :: Bool -> Circ Qubit spos b = do q <- qinit b r <- hadamard q return r
  • 18. Quipper – A Haskel Library Examples of circuit generation code for Quipper circ :: Qubit -> Circ Qubit circ x = do hadamard_at x with_ancilla $ y -> do qnot_at y qnot x `controlled` y qnot_at y hadamard_at x return x teleport :: Qubit -> Circ Qubit teleport q = do (a,b) <- bell00 (x,y) <- alice q a b <- bob b (x,y) return b Introduction to Quipper: https://arxiv.org/pdf/1304.5485v1.pdf
  • 19. Quipper – A Haskel Library Algorithms used in Quipper development • BWT – Binary Welded Tree. How to find out an identified node in a graph. • BF – Boolean Formula. Evaluates NAND expresion. • CL – Class Number. Aproximation of a group class to a real cuadratic number. • GSE – Ground State Estimation. Calculate the lowers energy level of a particular molecule. • QLS – Quantum Linear System. Solving of a linear system of equations. Quantum Primitives: • Quantum Fourier Transform • Amplitude Amplification • Quantum Walk • ... • USV – Unique Shortest Vector. Finding out the shortest vector in a given set of vectors • TF – Triangle Finding. Drawing of a triangle in a dense graph
  • 20. The Python Quantum Toolbox Authors: Paul Nation and Robert Johansson Web site: http://qutip.googlecode.com Discussion: Google group “qutip” Blog: http://qutip.blogspot.com Platforms: Linux and Mac License: GPLv3 Download: http://code.google.com/p/qutip/downloads Repository: http://github.com/qutip Publication: Comp. Phys. Comm. 183, 1760 (2012) arXiv:1211.6518 (2012)
  • 21. The Python Quantum Toolbox QuTiP – Is an object oriented open source framework for open quantum systems calculus Visualization Core Functions Temporal EvolutionStates Operators Logic Gates QuTiP Documentation: http://qutip.org/downloads/3.1.0/qutip-doc-3.1.0.pdf
  • 22. The Python Quantum Toolbox • Relationship between quantum concepts and their represetation in QuTiP . Quantum Concept QuTiP Represenation Quantum State or Wave Function Amplitude of probability that describes the state of the quantum system. Vectors and Matrices Complex elements Operators The Hamiltonian operator es the function that represents the total energy of a system and describes the energy of every possible state of the system. The operator represents physical observables Matrices The operators are represented as matrices. Equation of motion Describes how the states of the quantum system evolves in time. Diferential equations Systems of coupled differential equations. Observables and expected values Physical obsevables are quantities that correspond to operators Internal Product The results are calculated as internal product between state vectors and matrices that represent operators, yielding as a result real numbers for physical observables
  • 23. The Python Quantum Toolbox Objetcs and datatypes Qobj provides the necessary structure to encapsulate the quantum operators and the vectors <bra| and |ket> Data Q.data Dimensions Q.dims Shape Q.shape is Hermitian? Q.ishermIs Type Q.type
  • 24. The Python Quantum Toolbox • Visualization capabilities • Function for Distribution of Probability • Operators Visualization • Quantum Process Tomography • 2D & 3D histograms • Color Maps • Lineal Graphs • Bloch Sphere representation
  • 25. Mathematica List of Mathematica packages for Quantum Calculus • QDENSITY - Quantum Computer Simulation. Density Matrices. http://www.pitt.edu/~tabakin/QDENSITY/UPDATE14.pdf • qmatrix – Package for quantum information computation. http://library.wolfram.com/infocenter/MathSource/1893/ • Quantum Add-On that performa a vast quantity of computations and simulations in quantum mechanics. (University of Monterrey) http://homepage.cem.itesm.mx/lgomez/quantum/index.htm • CMU: Quantum Information Programs in Mathematica – Library of functions and objetcs: <bra|ket> notation, operators, etc. (Carnegie-Mellon University ) http://quantum.phys.cmu.edu/QPM/ • Quantum Turing Machine Simulator Oriented to Turing Quantum Machines http://www.mathematica-journal.com/issue/v8i3/features/hertel/contents/html/index.html • QI – Package for quantum computation, mainliy focused on geometrical aspects of the quantum information theory. https://zksi.iitis.pl/wiki/projects:mathematica-qi
  • 26. MatLab QLib Matlab Library for Quantum Computation • Probability Distribution(clasical) • Pure States • Density Matrices • Hermítian Matrices • Several entanglement test • Lineal Entroy, de Von Neumann Entropy ... • Distance Measurement (Trace, fidelity, Hilbert..) • Schmidt Decomposition • Observables Measurements (POVM)
  • 27. The IBM Quantum Experience
  • 28. En que consiste IBM Quantum Experience  A set of tutorials which is guide to understand all the quantum experiments.  The quantum Composer, is a graphical interface where a quantum circuit can be designed.  A simulator used to execute the quantum circuits designed in the composer.  Access to a real Quantum Processor which is physcally located and working at Quantum Computing IBM Lab  Under construction: A Quantum Community
  • 29. Intoruducing the IBM Quantum Experience  The standar user has total access to:  A real Quantum Processor  Simulation Capabilities  Memory cache with results from previous experiments.  There’s a unique quantum processor available in the cloud.  When the user consumes the computing units, new computing units can be acquired from the “Account Page”.
  • 30. The Quantum Composer  Graphical Interface used to create programs for the quantum processor  It allows to create quantum circuits using a logical gates library and well defined points of measurement
  • 31. La librerias de Operaciones Cuánticas Yellow Blocks. Are empty operation on a qubit for a unit of time which equals the duration of a gate for one qubit. Green Blocks. These are the Operators the the Pauli Group (X, Y, Z). Blue Blocks. Clifford Operators. These gates are H, S and S† and they are used to generate quantum superposition Orange Blocks. These are the gates necessary for universal computation (Non-Cliford gates).
  • 32. The Full Library ... (... at versión 1 ...)
  • 33. Working with the Composer (Demo)

Editor's Notes

  • #12: En el caso clasico, si se desea averiguar con que tipo de funcion estamos tratando, es necesario realizar al menos dos medidas. Lo que permite el algoritmo de Deutsch es determinar si la funcion es constante o variable con una unica medida. En su forma inicial, el algoritmo de Deutsch se aploica a una funcion booleana entre [0,1] y [0,1], pero puede generalizarse y aplicarse a dominios mas extensos.
  • #13: En los años 1994 y 1995, Peter Shor, científico americano de AT&T Bell Laboratories, definió el algoritmo que lleva su nombre y que permite calcular los factores primos de números a una velocidad mucho mayor que en cualquier computador tradicional. Además su algoritmo permitiría romper muchos de los sistemas de criptografía utilizados actualmente. El sistema de criptografia RSA está basado en la factorización de números grandes para la generación de claves. Esto grandes números, sea N uno de ellos, son el producto de dos números primos. Los algoritmos clásicos no pueden resolver este problema en tiempo polínomico, es decir O(N^k) para ningún k. Sin embargo, el algoritmo de Shor resuelve la factorización de un número N en un tiempo polinómico O(N^k), con lo cual tenemos que un problema de tipo NP-HARD ha pasado a ser de tipo P. El order del algoritmo es: O((logN)^3) En 2001, IBM y la Universidad de Stanford, consiguen ejecutar por primera vez el algoritmo de Shor en el primer computador cuántico de 7 qubits desarrollado en Los Álamos. En el experimento se calcularon los factores primos de 15, dando el resultado correcto de 3 y 5 utilizando para ello 1018 moléculas, cada una de ellas con 7 átomos Actualmente el algoritmo de Shor se ha extendido y adaptado para atacar otras criptografias además de la RSA.
  • #14: Durante el año 1996, Lov Grover inventó el algoritmo de búsqueda de datos que lleva su nombre. Aunque la aceleración conseguida no es tan drástica como en los cálculos factoriales o en simulaciones físicas, su rango de aplicaciones es mucho mayor. Al igual que el resto de algoritmos cuánticos, se trata de un algoritmo probabilístico con un alto índice de acierto. La búsqueda de datos en una base de datos no ordenada de N elementos, necesita un promedio de N/2 intentos, para una computadora cuántica utilizando el algoritmo de Grover el promedio de intentos seria SQRT(N) Dicho de otra manera: mejora de forma cuadrática la eficiencia de búsqueda de un elemento en una base de datos no estructurada, por poner un ejemplo, seria una base de datos relacional sin índices. La cota superior seria O(SQRT(N))
  • #16: Emanuel Knill propueso QRAM en 1996 aprox. Una memoria de acceso aleatorio (RAM) utiliza n bits para direccionar aleatoriamente N=2n celdas de memoria. Una memoria cuántica de acceso aleatorio (QRAM) utilizan n qubits para direccionar cualquier superposición de N celdas de memoria.
  • #17: En la primera capa, se tiene un compilador con un lenguaje de alto nivel con una curva de aprendizaje aceptable para un programador. Con este lenguaje se puede representar un algoritmo cuántico, sin necesidad de conocer los detalles matemáticos que conlleva dicho algoritmo, puesto que ya van encapsulados en la arquitectura que se está definiendo. En la segunda capa, un optimizador independiente de la tecnología enlaza con una representación de circuito lógico equivalente a bajo nivel que contiene puertas CNOT y de un único qubit. Este es un lenguaje ensamblador cuántico QASM – Quantum Assembler. El compilador optimiza el QASM en base a funciones de coste tales como el tamaño del circuito, su profundidad o su precisión. La tercera capa consiste en un serie de optimizaciones que tiene lugar sobre la tecnología de computación cuántica y genera QPOL – Quantum Physical Operations Language, un lenguaje con parametrización especifica de la tecnología cuántica utilizada. QPOL incluye dos subcapas: La primera subcapa relaciona la representación de puertas CNOT y un único qubit con una representación QASM utilizando un conjunto universal de puertas tolerante a fallos. La segunda subcapa relaciona estas puertas con una representación QPOL que contiene las instrucciones físicas para las operaciones tolerante a fallos programadas en paralelo incluyendo los movimientos necesarios de partículas físicas. El conocimiento del esquema físico y las limitaciones de la arquitectura comienza en este punto. La cuarta y última capa utiliza herramientas que dependen estrechamente de la tecnología cuántica utilizada, módulos de esquema, simuladores físicos y de circuitos o interfaces con los dispositivos cuánticos. Si en este punto, no coinciden los objetivos y las restricciones cuánticas, los diseñadores de algoritmos y dispositivos pueden revisar y reparar las capas intermedias.  
  • #18: IARPA - The Intelligence Advanced Research Projects Activity is an organization within the Office of the Director of National Intelligence responsible for leading research to overcome difficult challenges relevant to the United States Intelligence Community QCS – Quantum Computer Science Program explores questions relating to the computational resources required to run quantum algorithms on realistic quantum computers.
  • #20: Quipper se basa en un lenguaje clásico de programación llamado Haskell, el cual es particularmente apto para programar aplicaciones físicas. Peter Selinger, de la Universidad Dalhousie en Halifax, Canadá, y su equipo lo han personalizado para tratar con qubits y han generado una librería de código de Quipper para aplicar siete algoritmos cuánticos existentes. Podría parecer extraño el crear un lenguaje para computación cuántica, dado que el hardware aún se encuentra en etapa rudimentaria. Sin embargo, el desarrollo del software –que se prueba en una computadora cuántica simulando una cuántica– podría influencia el diseño de futuras computadoras cuánticas. El equipo de Selinger trabajó con varios tipos de hardware cuántico existente, incluyendo dispositivos que utilizan trampas de iones y fotones. Sin embargo, no incluyeron la única computadora cuántica en el mercado hoy, la D-Wave. La D-Wave utiliza un método novedoso conocido como  computación cuántica adiabática y en este momento no es compatible con Quipper.
  • #22: Es una libreria de funciones para hacer calculos mecano.cuanticos. Básicamente simulaciones numericas de sistemas cuánticos. Es capaz de representar Estados cuánticos y operadores
  • #23: Here, I mention the concepts covered by the Phyon Quantum Toolbox
  • #24: I mention the Qobj object wich is the core element in QuTip for quantum computation. With a single example is very easy to explain how to create a quantum object with Qobj
  • #25: Here , some of the capabiities of the Python Quantum Toolbox are mentioned I mention here how important are using a well know language as pytho and open source framework, because it allows people to easly join to the projects. Also I mention how good is to have a rich graphical library to show the results, because in Quantum Computing everyhing is showe as probabilities and pictures are much more understandabe than figures.
  • #26: Here, some Mathematica Packages are mentioned. No one of them is absolutelly better than the others because in many cases these packages has been developed to cover specific needs or funcionalities for a quantum research.