Slides

October 30, 2017 | Author: Anonymous | Category: N/A
Share Embed


Short Description

]. Sergey Bravyi, Graeme Smith, and John A. Smolin. sergey y smolin ......

Description

Simulating large quantum circuits on a small quantum computer M¯aris Ozols University of Cambridge

Aram Harrow Tianyi Peng Xiaodi Wu

MIT Tsinghua University University of Oregon

Reality and dreams

Reality MIT / Innsbruck experiment Factoring 15 on a 5-qubit ion trap computer [MNM+ 16]:

Reality MIT / Innsbruck experiment Factoring 15 on a 5-qubit ion trap computer [MNM+ 16]:

IBM Quantum Experience A 5-qubit superconducting quantum computer [IBM]:

Dreams (near term) Quantum supremacy [Pre12]

Dreams (near term) Quantum supremacy [Pre12] I 30 qubits – PC with about 16 GB memory I 46 qubits – supercomputer I 50 qubits – ???

Dreams (near term) Quantum supremacy [Pre12] I 30 qubits – PC with about 16 GB memory I 46 qubits – supercomputer I 50 qubits – ???

Dreams (near term) Quantum supremacy [Pre12] I 30 qubits – PC with about 16 GB memory I 46 qubits – supercomputer I 50 qubits – ???

Approaches I Linear-optical circuits (BosonSampling) [AA11] I One clean qubit model (DQC1) [MFF14] I Commuting quantum circuits (IQP) [BJS10, BMS16] I Quantum approximate optimization algorithm [FH16] I Random quantum circuits [BIS+ 16, Fuj16]

Dreams (near term) Quantum supremacy [Pre12] I 30 qubits – PC with about 16 GB memory I 46 qubits – supercomputer I 50 qubits – ???

Approaches I Linear-optical circuits (BosonSampling) [AA11] I One clean qubit model (DQC1) [MFF14] I Commuting quantum circuits (IQP) [BJS10, BMS16] I Quantum approximate optimization algorithm [FH16] I Random quantum circuits [BIS+ 16, Fuj16]

UCSB and Google are building a 50 qubit quantum computer. They recently simulated random 42-qubit circuits on a supercomputer [BIS+ 16].

Dreams (long term) Scalable quantum computer I

factoring (breaking RSA)

I

quantum simulation

I

quantum adiabatic optimization

I

...

Dreams (long term) Scalable quantum computer I

factoring (breaking RSA)

I

quantum simulation

I

quantum adiabatic optimization

I

...

Resource estimates for factoring [FMMC12] Factoring a 2000-bit (600 decimal digit) number requires: I

4000 logical qubits

Dreams (long term) Scalable quantum computer I

factoring (breaking RSA)

I

quantum simulation

I

quantum adiabatic optimization

I

...

Resource estimates for factoring [FMMC12] Factoring a 2000-bit (600 decimal digit) number requires: I

4000 logical qubits

I

2 × 108 physical qubits

Dreams (long term) Scalable quantum computer I

factoring (breaking RSA)

I

quantum simulation

I

quantum adiabatic optimization

I

...

Resource estimates for factoring [FMMC12] Factoring a 2000-bit (600 decimal digit) number requires: I

4000 logical qubits

I

2 × 108 physical qubits

I

3 × 1011 gates

Dreams (long term) Scalable quantum computer I

factoring (breaking RSA)

I

quantum simulation

I

quantum adiabatic optimization

I

...

Resource estimates for factoring [FMMC12] Factoring a 2000-bit (600 decimal digit) number requires: I

4000 logical qubits

I

2 × 108 physical qubits

I

3 × 1011 gates

I

1 day of computation at a clock rate of 10 MHz

Dreams (long term) Scalable quantum computer I

factoring (breaking RSA)

I

quantum simulation

I

quantum adiabatic optimization

I

...

Resource estimates for factoring [FMMC12] Factoring a 2000-bit (600 decimal digit) number requires: I

4000 logical qubits

I

2 × 108 physical qubits

I

3 × 1011 gates

I

1 day of computation at a clock rate of 10 MHz

NSA current min key size recommendation for RSA is 3072 bits

Hybrid simulators

Quantum-classical (QC) model C

|0i |0i

y

f

f (y)

|0i

QC algorithm is given by (C, f ) where I

C is an N-qubit quantum circuit

I

N f : {0, 1} → [0, 1] is a poly-time classical function

Quantum-classical (QC) model C

|0i |0i

y

f

f (y)

|0i

QC algorithm is given by (C, f ) where I

C is an N-qubit quantum circuit

I

N f : {0, 1} → [0, 1] is a poly-time classical function

The expectation of f (y) is denoted by π (C, f ) ∈ [0, 1]

Quantum-classical (QC) model C

|0i y

|0i

f

f (y)

|0i

QC algorithm is given by (C, f ) where I

C is an N-qubit quantum circuit

I

N f : {0, 1} → [0, 1] is a poly-time classical function

The expectation of f (y) is denoted by π (C, f ) ∈ [0, 1] A simulator of (C, f ) has accuracy e if its output θ ∈ R satisfies h i 2 Pr |θ − π (C, f )| < e > 3

Parameters |0i |0i |0i N qubits |0i |0i |0i

L steps

L steps

|0i n qubits |0i |0i

Parameters L steps

|0i |0i |0i N qubits |0i |0i |0i Q exec

utions L steps

|0i n qubits |0i |0i

poly(Q, N, L) time

Simulator (Q, n)-simulator of an N-qubit QC algorithm (C, f ) is a classical poly(Q, N, L, e−1 )-time algorithm

Q exec

utions L steps

|0i n qubits |0i |0i

poly(Q, N, L, e−1 ) time

Simulator (Q, n)-simulator of an N-qubit QC algorithm (C, f ) is a classical poly(Q, N, L, e−1 )-time algorithm that outputs θ ∈ R such that h i 2 Pr |θ − π (C, f )| < e > 3 after executing at most O(Q/e2 ) circuits on an n-qubit device

Q exec

utions L steps

|0i n qubits |0i |0i

poly(Q, N, L, e−1 ) time

Extreme simulators

Fully classical simulation:

Scalable quantum computer:

( O ( 2N ) , 0 )

(O(1), N )

Extreme simulators

Hybrid simulation:

(?, n)

Fully classical simulation:

Scalable quantum computer:

( O ( 2N ) , 0 )

(O(1), N )

Warm-up

How to simulate a large circuit? |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

How to simulate a large circuit?

|0i |0i |0i |0i |0i |0i |0i |0i

|0i |0i |0i |0i |0i |0i |0i

How to simulate a large circuit? |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

How to simulate a large circuit? |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

Can we cut a gate into two?

Inspiration [BSS16] Can we classically simulate k “virtual” qubits?

k

n

|0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

U

Inspiration [BSS16] Can we classically simulate k “virtual” qubits? d-sparse k

n

|0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

U

Thm [BSS16]: This circuit has a (2O(kd) , n + 1)-simulator

Inspiration [BSS16] Can we classically simulate k “virtual” qubits? d-sparse k

n

|0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

U

Thm [BSS16]: This circuit has a (2O(kd) , n + 1)-simulator Proof idea: Write U = ∑i=1 ci Vi ⊗ Wi for some ci ∈ C, Vi ∈ U(2k ) and Wi ∈ U(2), and use a SWAP-test like procedure. χ

How about this? not sparse

n

n

|0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

U

How about this? not sparse

n

n

|0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

U

This would scale exponentially in n. . .

How about this? not sparse

n

n

|0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

U

This would scale exponentially in n. . . . . . and we have no sparseness guarantee. . .

How about this? not sparse

n

n

|0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

U

. . . if only we had 2 devices. . .

How about this? not sparse

n

n

|0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

U

. . . if only we had 2 devices. . . . . . and could send one qubit back and forth. . .

How about this? not sparse

n

n

|0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

U

Claim: This has a (O(1), n + 1)-simulator on a single device!

Tensor networks

Tensors

An order-k tensor A is a k-dimensional array of complex numbers.

Tensors

An order-k tensor A is a k-dimensional array of complex numbers. Each entry Ai1 ,...,ik of A is specified by k indices i1 , . . . , ik ∈ {0, 1}.

Tensors

An order-k tensor A is a k-dimensional array of complex numbers. Each entry Ai1 ,...,ik of A is specified by k indices i1 , . . . , ik ∈ {0, 1}. There are 2k entries in total.

Tensors

An order-k tensor A is a k-dimensional array of complex numbers. Each entry Ai1 ,...,ik of A is specified by k indices i1 , . . . , ik ∈ {0, 1}. There are 2k entries in total. i1 i5

i2 A i4

i3

Tensor contraction and tensor networks Tensor contraction generalizes matrix multiplication:

∑ Ai ,m,i Bj ,j ,m = Ci ,i ,j ,j m

1

3

1 2

1 3 1 2

Tensor contraction and tensor networks Tensor contraction generalizes matrix multiplication:

∑ Ai ,m,i Bj ,j ,m = Ci ,i ,j ,j m

i3

1 2

j1

i1 A

3

1

i2 · j3

B j2

1 3 1 2

j1

i1

=

A i3

∑m

B j2

j1

i1

=

C i3

j2

Tensor contraction and tensor networks Tensor contraction generalizes matrix multiplication:

∑ Ai ,m,i Bj ,j ,m = Ci ,i ,j ,j m

1 2

j1

i1 A

3

1

i2 · j3

B

j1

i1

=

j2

i3

1 3 1 2

A

∑m

B j2

i3

=

C i3

Tensor network:

B

A C D

=

j1

i1

X

j2

States and operations An order-k tensor can be encoded by a k-qubit quantum state

|Ai : =



i1 ,...,ik ∈{0,1}

Ai1 ,...,ik |i1 , . . . , ik i

States and operations An order-k tensor can be encoded by a k-qubit quantum state

|Ai : =



Ai1 ,...,ik |i1 , . . . , ik i

i1 ,...,ik ∈{0,1}

More generally, it can be encoded by a linear operator with the number of input + output qubits = k

States and operations An order-k tensor can be encoded by a k-qubit quantum state

|Ai : =



Ai1 ,...,ik |i1 , . . . , ik i

i1 ,...,ik ∈{0,1}

More generally, it can be encoded by a linear operator with the number of input + output qubits = k ∑i1 ,i2 Ai1 ,i2 |i1 i|i2 i

∑i1 ,i2 Ai1 ,i2 |i1 ihi2 |

∑i1 ,i2 Ai1 ,i2 hi1 |hi2 |

States and operations An order-k tensor can be encoded by a k-qubit quantum state



|Ai : =

Ai1 ,...,ik |i1 , . . . , ik i

i1 ,...,ik ∈{0,1}

More generally, it can be encoded by a linear operator with the number of input + output qubits = k ∑i1 ,i2 Ai1 ,i2 |i1 i|i2 i i1 i2

∑i1 ,i2 Ai1 ,i2 |i1 ihi2 |

i2

i1

∑i1 ,i2 Ai1 ,i2 hi1 |hi2 | i1 i2 time

Cups, caps, and snakes

|Φi = ∑ |ii|ii i

I=

∑ |iihi| i

hΦ| = ∑hi|hi| i

Cups, caps, and snakes

|Φi = ∑ |ii|ii

I=

i

∑ |iihi|

hΦ| = ∑hi|hi|

i

i

The snake equation

=

=

Quantum circuits are tensor networks Quantum circuit:

|0i |0i |0i

Tensor network:

How to cut a tensornetwork

Recall the big circuit. . . |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

Recall the big circuit. . . |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i |0i

Here’s a smaller version. . . Quantum circuit:

|0i |0i |0i

Tensor network:

Here’s a smaller version. . . Quantum circuit:

|0i |0i |0i

Tensor network:

The trick!

The trick!

The trick!

The trick!

The trick!

The trick!

The trick!

If the input is missing, use the maximally entangled state |Φi (this prepares Choi states of the two half-circuits).

The trick!

If the input is missing, use the maximally entangled state |Φi (this prepares Choi states of the two half-circuits). For each wire we cut, we need to add an extra qubit.

The trick!

If the input is missing, use the maximally entangled state |Φi (this prepares Choi states of the two half-circuits). For each wire we cut, we need to add an extra qubit. Can we estimate Tr(ρΦ) using only local measurements?

The observable Φ

We want to estimate Tr(ρΦ) using local measurements!

|Φi = |00i + |11i 

1 0 Φ = |ΦihΦ| =  0 1

0 0 0 0

0 0 0 0

 1 0  0 1

The observable Φ

We want to estimate Tr(ρΦ) using local measurements!

|Φi = |00i + |11i 

1 0 Φ = |ΦihΦ| =  0 1 Φ=

0 0 0 0

0 0 0 0

 1 0  0 1

1 (I ⊗ I + X ⊗ X − Y ⊗ Y + Z ⊗ Z) 2

Measuring Φ locally Here is our observable: Φ=

2 (I ⊗ I + X ⊗ X − Y ⊗ Y + Z ⊗ Z) 4

Measuring Φ locally Here is our observable: Φ=

2 (I ⊗ I + X ⊗ X − Y ⊗ Y + Z ⊗ Z) 4

Measuring observable Z = |0ih0| − |1ih1| means measuring in the computational basis {|0i, |1i} and outputting t ∈ {1, −1}

Measuring Φ locally Here is our observable: Φ=

2 (I ⊗ I + X ⊗ X − Y ⊗ Y + Z ⊗ Z) 4

Measuring observable Z = |0ih0| − |1ih1| means measuring in the computational basis {|0i, |1i} and outputting t ∈ {1, −1} 1 4

1

1 4

1 4

1 4

X

Y

Z

t1 t2

− t1 t2

t1 t2

Measuring Φ locally Here is our observable: Φ=

2 (I ⊗ I + X ⊗ X − Y ⊗ Y + Z ⊗ Z) 4

Measuring observable Z = |0ih0| − |1ih1| means measuring in the computational basis {|0i, |1i} and outputting t ∈ {1, −1} 1 4

1

1 4

1 4

1 4

X

Y

Z

t1 t2

− t1 t2

t1 t2

Multiply the final output by 2!

The full simulation y1 t1 t2 Algorithm 1. Run each piece of the circuit separately:

The full simulation y1 t1 t2 Algorithm 1. Run each piece of the circuit separately: I

for each missing input, use one half of

√1 | Φ i 2

The full simulation y1 t1 t2 Algorithm 1. Run each piece of the circuit separately: I I

for each missing input, use one half of √1 |Φi 2 measure all output qubits in the standard basis, get bits yi

The full simulation y1 t1 t2 Algorithm 1. Run each piece of the circuit separately: I I I

for each missing input, use one half of √1 |Φi 2 measure all output qubits in the standard basis, get bits yi measure each remaining qubit in a random Pauli basis, get ti = ±1

The full simulation y1 t1 t2 Algorithm 1. Run each piece of the circuit separately: I I I

for each missing input, use one half of √1 |Φi 2 measure all output qubits in the standard basis, get bits yi measure each remaining qubit in a random Pauli basis, get ti = ±1

2. Combine all bits of y and compute f (y)

The full simulation y1 t1 t2 Algorithm 1. Run each piece of the circuit separately: I I I

for each missing input, use one half of √1 |Φi 2 measure all output qubits in the standard basis, get bits yi measure each remaining qubit in a random Pauli basis, get ti = ±1

2. Combine all bits of y and compute f (y) 3. Multiply ti from all pieces, fix sign

The full simulation y1 t1 t2 Algorithm 1. Run each piece of the circuit separately: I I I

for each missing input, use one half of √1 |Φi 2 measure all output qubits in the standard basis, get bits yi measure each remaining qubit in a random Pauli basis, get ti = ±1

2. Combine all bits of y and compute f (y) 3. Multiply ti from all pieces, fix sign 4. Output θ = ±4m f (y) (m is the number of edge cuts)

The full simulation y1 t1 t2 Algorithm 1. Run each piece of the circuit separately: I I I

for each missing input, use one half of √1 |Φi 2 measure all output qubits in the standard basis, get bits yi measure each remaining qubit in a random Pauli basis, get ti = ±1

2. Combine all bits of y and compute f (y) 3. Multiply ti from all pieces, fix sign 4. Output θ = ±4m f (y) (m is the number of edge cuts) By construction, E[θ ] = π (C, f ).

The full simulation y1 t1 t2 Algorithm 1. Run each piece of the circuit separately: I I I

for each missing input, use one half of √1 |Φi 2 measure all output qubits in the standard basis, get bits yi measure each remaining qubit in a random Pauli basis, get ti = ±1

2. Combine all bits of y and compute f (y) 3. Multiply ti from all pieces, fix sign 4. Output θ = ±4m f (y) (m is the number of edge cuts) By construction, E[θ ] = π (C, f ). However, θ ∈ [−4m , 4m ] but we want   Pr |θ − π (C, f )| < e > 2/3

The full simulation y1 t1 t2 Algorithm 1. Run each piece of the circuit separately: I I I

for each missing input, use one half of √1 |Φi 2 measure all output qubits in the standard basis, get bits yi measure each remaining qubit in a random Pauli basis, get ti = ±1

2. Combine all bits of y and compute f (y) 3. Multiply ti from all pieces, fix sign 4. Output θ = ±4m f (y) (m is the number of edge cuts) By construction, E[θ ] = π (C, f ). However, θ ∈ [−4m , 4m ] but we want   Pr |θ − π (C, f )| < e > 2/3 We can guarantee this by letting θ˜ equal the average of θ over O(42m /e2 ) repetitions.

Main result

Theorem If a quantum circuit has a partition with m edges between different parts and each part can be executed on an n-qubit machine (including the extra |Φi states), then this circuit has a (16m , n)-simulator.

|begini |i:=0i |i:=i+1i

Quantum software |endi |whilei |doi

|print(i)i |i
View more...

Comments

Copyright © 2017 PDFSECRET Inc.