James L. Weaver

jweaver@pivotal.io
JavaFXpert.com

@JavaFXpert

Dr. Johan Vos
Co-founder & CTO

johan.vos@gluonhq.com
gluonhq.com

# Quantum Computing

### Hacking into Nature's Computer

Java Champion, JavaOne Rockstar, plays well with others, etc :-)

Author of several Java/JavaFX/RaspPi books

Developer Advocate & International Speaker for Pivotal

Mission: "Transform how the world builds software"

Mission: "Transform how the world builds software"

### About Presenter Dr. Johan Vos

Developer / Physicist / Writer / Speaker -  Gluon

Introduction to quantum computing

Representing qubits

Axioms of quantum mechanics

• Superposition principle
• Measurement
• Unitary evolution

Quantum computing algorithms

Quantum entanglement

More algorithms

Supplementary resources

## History repeating itself

### massive hardware, limited bits, software infancy

Quantum computers make direct use of quantum-mechanical phenomena, such as superposition and entanglement, to perform operations on data.

## Some QC proofs of concept

Don't try this at home, kids!

## Why use a quantum computer?

Feasible on classical computers

Feasible on quantum computers

Solutions to problems

## Breaking RSA crypto

### someday maybe, using Shor's algorithm

“If you start factoring 10-digit numbers then it’s going to start getting scary”

Dr. Peter Shor, 2013

Related paper published 25 Jan 1997 by Dr. Shor:

Note: Shor's algorithm was formulated in 1994

## Quickly searching unsorted data

### using Grover's algorithm

"Programming a quantum computer is particularly interesting since there are multiple things happening in the same hardware simultaneously.  One needs to think like both a theoretical physicist and a computer scientist."

Dr. Lov Grover, 2002

Related paper published 17 Jul 1997 by Dr. Grover:

## Simulating nature

### complex chemical reactions, for example

“Nature isn't classical, dammit, and if you want to make a simulation of nature, you'd better make it quantum mechanical, and by golly it's a wonderful problem, because it doesn't look so easy.”

Dr. Richard Feynman, 1981

## Quantum communication and cryptography

Introduction to quantum computing

Representing qubits

Axioms of quantum mechanics

• Superposition principle
• Measurement
• Unitary evolution

Quantum computing algorithms

Quantum entanglement

More algorithms

Supplementary resources

## Hardware representation of qubits

Physical support Type
Photon Polarization Horizontal Vertical
Electrons Spin Up Down
Superconductor Charge Uncharged Charged
\vert0\rangle
$\vert0\rangle$
\vert1\rangle
$\vert1\rangle$

## Superconducting qubits on a chip

Introduction to quantum computing

Representing qubits

Axioms of quantum mechanics

• Superposition principle
• Measurement
• Unitary evolution

Quantum computing algorithms

Quantum entanglement

More algorithms

Supplementary resources

Text

## Measuring quantum state

### Hitchhiker's Guide to the Galaxy analogy

Deep Thought after 7.5 million years of calculation

Introduction to quantum computing

Representing qubits

Axioms of quantum mechanics

• Superposition principle
• Measurement
• Unitary evolution

Quantum computing algorithms

Quantum entanglement

More algorithms

Supplementary resources

## Deutsch's algorithm

### Determine if function is constant or balanced

Input  a Constant  f(a) Constant  f(a) Balanced  f(a) Balanced  f(a)
0 0 1 0 1
1 0 1 1 0

## Deutsch's algorithm

### How many queries of the oracle to solve?

Classical:

This oracle requires 2 queries classically

Quantum:

We create a superposition of inputs to the oracle for constructive/destructive interference.

1
$1$
2
$2$

## Querying the oracle classically


\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \end{bmatrix} \cdot \begin{bmatrix} 0 \\ 1 \\ 0 \\ 0 \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ 0 \\ 1 \end{bmatrix}
$\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \end{bmatrix} \cdot \begin{bmatrix} 0 \\ 1 \\ 0 \\ 0 \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ 0 \\ 1 \end{bmatrix}$
\vert01\rangle
$\vert01\rangle$
\vert11\rangle
$\vert11\rangle$

example: f (0) = 0 and f (1) = 1   balanced

Text

Text

## Querying the oracle quantumly


\begin{bmatrix} +\frac{1}{2} & +\frac{1}{2} & +\frac{1}{2} & +\frac{1}{2} \\ +\frac{1}{2} & -\frac{1}{2} & +\frac{1}{2} & -\frac{1}{2} \\ +\frac{1}{2} & +\frac{1}{2} & -\frac{1}{2} & -\frac{1}{2} \\ +\frac{1}{2} & -\frac{1}{2} & -\frac{1}{2} & +\frac{1}{2} \end{bmatrix} \cdot \begin{bmatrix} 0 \\ 0 \\ 1 \\ 0 \end{bmatrix} = \begin{bmatrix} +\frac{1}{2} \\ +\frac{1}{2} \\ -\frac{1}{2} \\ -\frac{1}{2} \end{bmatrix}
$\begin{bmatrix} +\frac{1}{2} & +\frac{1}{2} & +\frac{1}{2} & +\frac{1}{2} \\ +\frac{1}{2} & -\frac{1}{2} & +\frac{1}{2} & -\frac{1}{2} \\ +\frac{1}{2} & +\frac{1}{2} & -\frac{1}{2} & -\frac{1}{2} \\ +\frac{1}{2} & -\frac{1}{2} & -\frac{1}{2} & +\frac{1}{2} \end{bmatrix} \cdot \begin{bmatrix} 0 \\ 0 \\ 1 \\ 0 \end{bmatrix} = \begin{bmatrix} +\frac{1}{2} \\ +\frac{1}{2} \\ -\frac{1}{2} \\ -\frac{1}{2} \end{bmatrix}$

example: f (0) = 0 and f (1) = 1   balanced

\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \end{bmatrix} \cdot \begin{bmatrix} +\frac{1}{2} \\ +\frac{1}{2} \\ -\frac{1}{2} \\ -\frac{1}{2} \end{bmatrix} = \begin{bmatrix} +\frac{1}{2} \\ -\frac{1}{2} \\ -\frac{1}{2} \\ +\frac{1}{2} \end{bmatrix}
$\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \end{bmatrix} \cdot \begin{bmatrix} +\frac{1}{2} \\ +\frac{1}{2} \\ -\frac{1}{2} \\ -\frac{1}{2} \end{bmatrix} = \begin{bmatrix} +\frac{1}{2} \\ -\frac{1}{2} \\ -\frac{1}{2} \\ +\frac{1}{2} \end{bmatrix}$
\begin{bmatrix} +\frac{1}{2} & +\frac{1}{2} & +\frac{1}{2} & +\frac{1}{2} \\ +\frac{1}{2} & -\frac{1}{2} & +\frac{1}{2} & -\frac{1}{2} \\ +\frac{1}{2} & +\frac{1}{2} & -\frac{1}{2} & -\frac{1}{2} \\ +\frac{1}{2} & -\frac{1}{2} & -\frac{1}{2} & +\frac{1}{2} \end{bmatrix} \cdot \begin{bmatrix} +\frac{1}{2} \\ -\frac{1}{2} \\ -\frac{1}{2} \\ +\frac{1}{2} \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ 0 \\ 1 \end{bmatrix}
$\begin{bmatrix} +\frac{1}{2} & +\frac{1}{2} & +\frac{1}{2} & +\frac{1}{2} \\ +\frac{1}{2} & -\frac{1}{2} & +\frac{1}{2} & -\frac{1}{2} \\ +\frac{1}{2} & +\frac{1}{2} & -\frac{1}{2} & -\frac{1}{2} \\ +\frac{1}{2} & -\frac{1}{2} & -\frac{1}{2} & +\frac{1}{2} \end{bmatrix} \cdot \begin{bmatrix} +\frac{1}{2} \\ -\frac{1}{2} \\ -\frac{1}{2} \\ +\frac{1}{2} \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ 0 \\ 1 \end{bmatrix}$
= \begin{bmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{bmatrix}
$= \begin{bmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{bmatrix}$

Inp Con
0 0
1 0
Inp Con
0 1
1 1
Inp Bal
0 0
1 1
Inp Bal
0 1
1 0

## Deutsch's algorithm

### with oracle having constant function

Leverages phase-kickback from the bottom wire to choreograph constructive and destructive interference

Expected result is 100% probability of measuring

\vert0\rangle
$\vert0\rangle$

## Deutsch's algorithm

### with oracle having balanced function

Expected result is 0% probability of measuring

\vert0\rangle
$\vert0\rangle$

Leverages phase-kickback from the bottom wire to choreograph constructive and destructive interference

## Deutsch-Jozsa algorithm, 1992

### Determine if function is constant or balanced

Input Constant Constant Balanced Balanced
000 0 1 0 1
001 0 1 1 0
010 0 1 0 1
011 0 1 1 0
100 0 1 0 1
101 0 1 1 0
110 0 1 0 1
111 0 1 1 0

Results when querying our example oracle

## Deutsch-Jozsa algorithm

### How many invocations of the oracle to solve?

Classical:

Our oracle (black box) requires 5 invocations classically

Quantum:

We create a superposition of inputs to the oracle, and use the phase-kickback trick, for constructive/destructive interference.  See:

Lecture 5: A simple searching algorithm; the Deutsch-Jozsa algorithm by John Watrous, University of Calgary

2^{(n-1)}+1
$2^{(n-1)}+1$
1
$1$

(Exponentially faster!)

## Deutsch-Jozsa implemented in Quil

Introduction to quantum computing

Representing qubits

Axioms of quantum mechanics

• Superposition principle
• Measurement
• Unitary evolution

Quantum computing algorithms

Quantum entanglement

More algorithms

Supplementary resources

## Bell inequality test

### (CHSH game)

Introduction to quantum computing

Representing qubits

Axioms of quantum mechanics

• Superposition principle
• Measurement
• Unitary evolution

Quantum computing algorithms

Quantum entanglement

More algorithms

Supplementary resources

## Grover's search

### finding a needle in a haystack

Introduction to quantum computing

Representing qubits

Axioms of quantum mechanics

• Superposition principle
• Measurement
• Unitary evolution

Quantum computing algorithms

Quantum entanglement

More algorithms

Supplementary resources

## Vector spaces

### a home for vectors and scalars

James L. Weaver

jweaver@pivotal.io
JavaFXpert.com

@JavaFXpert

Dr. Johan Vos
Co-founder & CTO

johan.vos@gluonhq.com
gluonhq.com

By javafxpert

# Quantum Computing Exposed: Deep Dive

Helping developers get started with quantum computing

• 3,807