Quantum Information Summer School 2019, IBA M. Sohaib Alam Rigetti - - PowerPoint PPT Presentation

quantum information summer school 2019 iba
SMART_READER_LITE
LIVE PREVIEW

Quantum Information Summer School 2019, IBA M. Sohaib Alam Rigetti - - PowerPoint PPT Presentation

Quantum Information Summer School 2019, IBA M. Sohaib Alam Rigetti Computing 15 July, 2019 The worlds first full-stack quantum computing company. 16-qubit QPUs currently operating on our cloud platform 100+ employees w/ $119M raised Home


slide-1
SLIDE 1

Quantum Information Summer School 2019, IBA

  • M. Sohaib Alam

Rigetti Computing 15 July, 2019

slide-2
SLIDE 2

The world’s first full-stack quantum computing company. 16-qubit QPUs currently operating on our cloud platform 100+ employees w/ $119M raised Home of Fab-1, the world’s first commercial quantum integrated circuit fab Located in Berkeley, Calif. (R&D Lab) and Fremont, Calif.

slide-3
SLIDE 3

Transistor scaling Returns to parallelization Energy consumption

Classical computers have fundamental limits

Economic limits with 10bn for next node fab Ultimate single-atom limits Amdahl’s law Exascale computing project has its own power plant Power density can melt chips

slide-4
SLIDE 4

Why build a quantum computer?

Quantum computing power* scales exponentially with qubits N bits can exactly simulate log N qubits 10 Qubits

Commodore 64

60 Qubits

Entire Global Cloud

30 Qubits

AWS M4 Instance

1 Million x Commodore 64 1 Billion x (1 Million x Commodore 64)

This compute unit.... can exactly simulate:

* More precisely ...

slide-5
SLIDE 5

Why build a quantum computer?

For N qubits every time step (~100ns*) is an exponentially large 2N x 2N complex matrix multiplication

* for superconducting qubit systems

Crucial details:

  • limited number of multiplications (hundreds to thousands) due to noise
  • not arbitrary matrices (need to be easily constructed on a QC)
  • small I/O, poly(N)-bits in and N-bits out

2N x 2N The “big-memory small pipe” mental model for quantum computing

N qubits poly(N) bits N bits

slide-6
SLIDE 6
slide-7
SLIDE 7

Qubit States

Qubit: Kets: Measurement yields:

  • ‘0’ with probability
  • ‘1’ with probability
slide-8
SLIDE 8

Qubit States

Qubit: Kets: Bras Brackets (Inner Product)

slide-9
SLIDE 9

Qubit States

Qubit: Kets: Bras Normalization:

slide-10
SLIDE 10

Qubit States

Qubit: Kets: Measurement yields:

  • ‘0’ with probability
  • ‘1’ with probability
slide-11
SLIDE 11

Qubit States: Bloch Sphere

slide-12
SLIDE 12

Qubit States: Multi-qubit states

Multiple qubits: Tensor product: Vector form:

slide-13
SLIDE 13

Qubit States: Multi-qubit states

Associative: Not commutative:

slide-14
SLIDE 14

Qubit Operations

Unitary Operators: (Gates) Preserve inner product:

slide-15
SLIDE 15

Bits vs. Probabilistic Bits vs. Qubits

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector

slide-16
SLIDE 16

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector

Probability of 0 Probability of 1

Bits vs. Probabilistic Bits vs. Qubits

slide-17
SLIDE 17

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

Bits vs. Probabilistic Bits vs. Qubits

slide-18
SLIDE 18

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

|⍺|2 = Probability of 0 |𝛾|2 = Probability of 1

Bits vs. Probabilistic Bits vs. Qubits

slide-19
SLIDE 19

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

Bits vs. Probabilistic Bits vs. Qubits

slide-20
SLIDE 20

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

...

Bits vs. Probabilistic Bits vs. Qubits

slide-21
SLIDE 21

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

Bits vs. Probabilistic Bits vs. Qubits

slide-22
SLIDE 22

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

Bits vs. Probabilistic Bits vs. Qubits

slide-23
SLIDE 23

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

State (multi-unit)

Bitstring

  • Prob. Distribution (stochastic vector)

Probability of bitstring x

Bits vs. Probabilistic Bits vs. Qubits

slide-24
SLIDE 24

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

State (multi-unit)

Bitstring

  • Prob. Distribution (stochastic vector)

Wavefunction (complex vector)

Bits vs. Probabilistic Bits vs. Qubits

slide-25
SLIDE 25

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

State (multi-unit)

Bitstring

  • Prob. Distribution (stochastic vector)

Wavefunction (complex vector)

|⍺x|2 = Probability of bitstring x

Bits vs. Probabilistic Bits vs. Qubits

slide-26
SLIDE 26

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

State (multi-unit)

Bitstring

  • Prob. Distribution (stochastic vector)

Wavefunction (complex vector)

Operations

Boolean Logic Stochastic Matrices

Bits vs. Probabilistic Bits vs. Qubits

slide-27
SLIDE 27

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

State (multi-unit)

Bitstring

  • Prob. Distribution (stochastic vector)

Wavefunction (complex vector)

Operations

Boolean Logic Stochastic Matrices Unitary Matrices

Bits vs. Probabilistic Bits vs. Qubits

slide-28
SLIDE 28

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

State (multi-unit)

Bitstring

  • Prob. Distribution (stochastic vector)

Wavefunction (complex vector)

Operations

Boolean Logic Stochastic Matrices Unitary Matrices

Component Ops

Boolean Gates Tensor products of matrices Tensor products of matrices

Bits vs. Probabilistic Bits vs. Qubits

slide-29
SLIDE 29

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

State (multi-unit)

Bitstring

  • Prob. Distribution (stochastic vector)

Wavefunction (complex vector)

Operations

Boolean Logic Stochastic Matrices Unitary Matrices

Component Ops

Boolean Gates Tensor products of matrices Tensor products of matrices

Sampling

Bits vs. Probabilistic Bits vs. Qubits

slide-30
SLIDE 30

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

State (multi-unit)

Bitstring

  • Prob. Distribution (stochastic vector)

Wavefunction (complex vector)

Operations

Boolean Logic Stochastic Matrices Unitary Matrices

Component Ops

Boolean Gates Tensor products of matrices Tensor products of matrices

Sampling Born rule

|⍺x|2 = Probability of bitstring x

Bits vs. Probabilistic Bits vs. Qubits

slide-31
SLIDE 31

Qubits Bits Probabilistic Bits State (single unit)

Bit Real vector Complex vector

State (multi-unit)

Bitstring

  • Prob. Distribution (stochastic vector)

Wavefunction (complex vector)

Operations

Boolean Logic Stochastic Matrices Unitary Matrices

Component Ops

Boolean Gates Tensor products of matrices Tensor products of matrices

Sampling Born rule Measurement

Bits vs. Probabilistic Bits vs. Qubits

slide-32
SLIDE 32

Qubit Operations: Pauli gates

slide-33
SLIDE 33

Qubit Operations: Identity gate

slide-34
SLIDE 34

Qubit Operations: Pauli-X (NOT) gate

slide-35
SLIDE 35

Qubit Operations: Pauli-Y gate

slide-36
SLIDE 36

Qubit Operations: Pauli-Z gate

slide-37
SLIDE 37

Qubit Operations: Hadamard gate

slide-38
SLIDE 38

Qubit Operations: Hadamard gate

slide-39
SLIDE 39

Qubit Operations: Multiple qubits

Examples:

slide-40
SLIDE 40

Qubit Operations: Multiple qubits

slide-41
SLIDE 41

Qubit Operations: Quantum Circuits

X H X

slide-42
SLIDE 42

Quantum Programs

X

from pyquil import Program, get_qc from pyquil.gates import X p = Program(X(0)) qc = get_qc('9q-generic-qvm') results = qc.run_and_measure(p, trials=10)[0] print (results) [1 1 1 1 1 1 1 1 1 1]

slide-43
SLIDE 43

Quantum Programs

X

from pyquil import Program, get_qc from pyquil.gates import X, MEASURE p = Program() p.declare('ro', 'BIT', 1) p.inst(X(0)) p.inst(MEASURE(0, 'ro')) p.wrap_in_numshots_loop(shots=10) qc = get_qc('9q-generic-qvm') results = qc.run(qc.compile(p)) print (results) [[1] [1] [1] [1] [1] [1] [1] [1] [1] [1]]

slide-44
SLIDE 44

Quantum Programs

X

from pyquil import Program, get_qc from pyquil.gates import X, MEASURE p = Program() p.declare('ro', 'BIT', 1) p.inst(X(0)) p.inst(MEASURE(0, 'ro')) p.wrap_in_numshots_loop(shots=10) qc = get_qc('9q-generic-qvm') results = qc.run(qc.compile(p)) print (p) DECLARE ro BIT[1] X 0 MEASURE 0 ro[0]

slide-45
SLIDE 45

Quantum Programs

H X

from pyquil import Program, get_qc from pyquil.gates import X, H, MEASURE p = Program() ro = p.declare('ro', 'BIT', 2) p.inst(H(0)) p.inst(X(1)) p.inst(MEASURE(0, ro[0])) p.inst(MEASURE(1, ro[1])) p.wrap_in_numshots_loop(shots=10) qc = get_qc('9q-generic-qvm') results = qc.run(qc.compile(p)) print (results) [[0 1] [1 1] [0 1] [1 1] [1 1] [0 1] [1 1] [0 1] [0 1] [0 1]]

slide-46
SLIDE 46

Quantum Programs

H X Z Y

from pyquil import Program, get_qc from pyquil.gates import X, Y, Z, H, MEASURE p = Program() ro = p.declare('ro', 'BIT', 2) p += Program(H(0), X(1), Z(0), Y(1), MEASURE(0, ro[0]), MEASURE(1, ro[1])) p.wrap_in_numshots_loop(shots=10) qc = get_qc('9q-generic-qvm') results = qc.run(qc.compile(p)) print (results) [[1 0] [1 0] [0 0] [1 0] [1 0] [0 0] [1 0] [1 0] [0 0] [0 0]]

slide-47
SLIDE 47

Quantum Dice

Goal: Create an N-sided dice using a quantum computer.

slide-48
SLIDE 48

Quantum Dice

Question: What gate would we use?

slide-49
SLIDE 49

Quantum Dice

Question: How many qubits would we use?

slide-50
SLIDE 50

Qubit Operations: Projections

the corresponding projection operator is given by the outer product Project a ket/bra along a given ket/bra via its corresponding projection operator. For some e.g.

slide-51
SLIDE 51

Qubit Operations: Controlled Operations

If qubit 1 is in the state |0> , apply I (identity) to qubit 0 Else if qubit 1 is in the state |1>, apply U to qubit 0 For example,

slide-52
SLIDE 52

Entangled States

A state that cannot be written as a product state, i.e. An example of a state that is not entangled: An example of a state that is entangled:

slide-53
SLIDE 53

Bell State via CNOT

H CNOT

from pyquil import Program from pyquil.gates import H, CNOT from pyquil.api import WavefunctionSimulator p = Program(H(1)) p += Program(CNOT(1, 0)) wfn = WavefunctionSimulator().wavefunction(p) print (wfn) (0.7071067812+0j)|00> + (0.7071067812+0j)|11>

slide-54
SLIDE 54

Measurement in some arbitrary basis

Computational basis: Measurement yields:

  • ‘0’ with probability
  • ‘1’ with probability
slide-55
SLIDE 55

Measurement in some arbitrary basis

Some other basis: Measurement yields:

  • 0’ with probability
  • 1’ with probability
slide-56
SLIDE 56

Measurement in some arbitrary basis

Measurement of |𝛺> in some basis {U|0>, U|1>} = Measurement of U†|𝛺> in standard/computational basis {|0>, |1>}

slide-57
SLIDE 57

Quantum Teleportation

Goal: Teleport a Qubit!

slide-58
SLIDE 58

Scenario:

  • Alice is in possession of a qubit |𝛺>, which she would like to teleport
  • ver to Bob, who is at some distant location.

Quantum Teleportation

slide-59
SLIDE 59

Protocol:

  • Create a Bell state, giving one qubit each to Alice and Bob
  • Have Alice measure both her qubits in the Bell basis, and send her results to

Bob

  • Have Bob conditionally apply gates to his qubits, based off Alice’s

measurements, to reconstruct the original qubit at his location

Quantum Teleportation

slide-60
SLIDE 60

Quantum Teleportation

slide-61
SLIDE 61

DEFCIRCUIT TELEPORT A q B: # Bell pair H A CNOT A B # Teleport CNOT q A H q MEASURE q [0] MEASURE A [1] # Classically communicate measurements JUMP-UNLESS @SKIP [1] X B LABEL @SKIP JUMP-UNLESS @END [0] Z B LABEL @END # If Alice’s qubits are 0 and 1 # and Bob’s is 5 TELEPORT 0 1

Alice’s ancilla q Alice A Bob B [0] [1]

Quantum Teleportation

slide-62
SLIDE 62

Classical Control in pyQuil

(1+0j)|11> from pyquil import Program from pyquil.gates import I, X from pyquil.api import WavefunctionSimulator p = Program(X(0)) ro = p.declare('ro', 'BIT', 1) p.measure(0, ro[0]).if_then(ro[0], Program(X(1)), Program(I(1))) wfn = WavefunctionSimulator().wavefunction(p) print (wfn)

slide-63
SLIDE 63

Classical Control in pyQuil

(1+0j)|00> from pyquil import Program from pyquil.gates import I, X from pyquil.api import WavefunctionSimulator p = Program(I(0)) ro = p.declare('ro', 'BIT', 1) p.measure(0, ro[0]).if_then(ro[0], Program(X(1)), Program(I(1))) wfn = WavefunctionSimulator().wavefunction(p) print (wfn)

slide-64
SLIDE 64

Deutsch’s Algorithm

Goal: Given a function f: {0, 1} -> {0, 1}, determine whether it is constant (i.e. f(0) = f(1)) or balanced (i.e. f(0) != f(1)) in the minimum number of steps, assuming an oracle/black-box for the function.

slide-65
SLIDE 65

Deutsch’s Algorithm

slide-66
SLIDE 66

Deutsch’s Algorithm

slide-67
SLIDE 67

Deutsch’s Algorithm

(a) f(0) = f(1) (b) f(0) != f(1) Recall:

slide-68
SLIDE 68

Goal: Given a function f: {0, 1}^n -> {0, 1}, find the bitstring x ϵ {0, 1}^n, such that f(x) = 1.

Grover’s Search Algorithm

slide-69
SLIDE 69

Grover’s Search Algorithm

Assume a quantum black box

slide-70
SLIDE 70

Grover’s Search Algorithm

Prepare the query register as where

(‘w’ is the bitstring to be found)

slide-71
SLIDE 71

Grover’s Search Algorithm

Oracle/Blackbox

slide-72
SLIDE 72

Grover’s Search Algorithm

Define a phase-shift operator When |Ѱ> is the equal-superposition state (‘quantum dice’), we can write

slide-73
SLIDE 73

Grover’s Search Algorithm

Inversion about the mean:

slide-74
SLIDE 74

Grover’s Search Algorithm

Prepare target qubit as ZH|0> = HX|0> ~ ( |0> - |1>) to get phase ‘kick back’ from applying oracle/blackbox

slide-75
SLIDE 75

Grover’s Search Algorithm

  • Prepare the initial state
  • Apply the Grover iterate O(√N) times
slide-76
SLIDE 76

Mean value |00 . . . 0 > | 11 . . . 1 > | w >

Grover’s Search Algorithm

slide-77
SLIDE 77

Mean value |00 . . . 0 > | 11 . . . 1 > | w >

Grover’s Search Algorithm

slide-78
SLIDE 78

Mean value |00 . . . 0 > | 11 . . . 1 > | w >

Grover’s Search Algorithm

slide-79
SLIDE 79

Variational Quantum Eigensolver

Goal: Find the ground state of some Hamiltonian, H. Procedure:

  • Prepare some trial state |𝛺; 𝜄>
  • Calculate expectation value <𝛺; 𝜄|H|𝛺; 𝜄>
  • Find the values of 𝜄 that will minimize the above
slide-80
SLIDE 80

Goal: Given binary constraints over bitstrings Find the bitstring that maximizes the objective function

Quantum Approximate Optimization Algorithm

slide-81
SLIDE 81

Quantum Approximate Optimization Algorithm

MaxCut problem: Given some undirected graph with arbitrary (non-negative) weights, find a partition of the graph’s nodes (a ‘cut’ of the graph) that maximizes the weights along the cut

slide-82
SLIDE 82

Quantum Approximate Optimization Algorithm

slide-83
SLIDE 83

Quantum Approximate Optimization Algorithm

MaxCut for simple 5-node graph with all weights either 0 or 1. MaxCut solution (as a bitstring): 01001 OR 10110 On a quantum computer: (ideally)

slide-84
SLIDE 84

Quantum Approximate Optimization Algorithm

MaxCut objective function: On a quantum computer: MaxCut for simple 5-node graph with all weights either 0 or 1.

slide-85
SLIDE 85
  • Prepare equal-superposition as initial state
  • Define the ‘mixer’ operator
  • Define the ‘cost’ operator
  • Apply

and sample/measure

Quantum Approximate Optimization Algorithm

slide-86
SLIDE 86

Quantum Approximate Optimization Algorithm

import numpy as np from pyquil import Program from pyquil.api import WavefunctionSimulator from pyquil.paulis import sI, sX, sY, sZ, exponential_map angle = np.pi / 8 pauli_sum = sX(1) * sY(0) + sI(1) * sY(0) p = Program() for ps in pauli_sum: p += exponential_map(ps)(angle) wfn_sim = WavefunctionSimulator() wfn = wfn_sim.wavefunction(p) print (wfn)

(0.8535533906+0j)|00> + (0.3535533906+0j)|01> + (-0.1464466094+0j)|10> + (0.3535533906+0j)|11>

slide-87
SLIDE 87

Noise and Quantum Computation

‘Pure’ quantum states evolve via Unitary operations

slide-88
SLIDE 88

Noise and Quantum Computation

More generally, quantum states are described by “Density Matrix” evolving via Kraus operations (“quantum channel”)

slide-89
SLIDE 89

Noise and Quantum Computation

For example, Not to be confused with

slide-90
SLIDE 90

Example of quantum channel/set of Kraus operators/noise model: Quantum state passing through the channel/experiencing the noise transforms to:

Noise and Quantum Computation

slide-91
SLIDE 91

Thanks, and keep in touch! sohaib@rigetti.com Join our Slack channel: rigetti-forest.slack.com