What do quantum computers do? Daniel J. Bernstein Quantum algorithm - - PDF document

what do quantum computers do daniel j bernstein quantum
SMART_READER_LITE
LIVE PREVIEW

What do quantum computers do? Daniel J. Bernstein Quantum algorithm - - PDF document

1 What do quantum computers do? Daniel J. Bernstein Quantum algorithm means an algorithm that a quantum computer can run. i.e. a sequence of instructions, where each instruction is in a quantum computers supported instruction set.


slide-1
SLIDE 1

1

What do quantum computers do? Daniel J. Bernstein “Quantum algorithm” means an algorithm that a quantum computer can run. i.e. a sequence of instructions, where each instruction is in a quantum computer’s supported instruction set. How do we know which instructions a quantum computer will support?

slide-2
SLIDE 2

2

Quantum computer type 1 (QC1): contains many “qubits”; can efficiently perform “NOT gate”, “Hadamard gate”, “controlled NOT gate”, “T gate”.

slide-3
SLIDE 3

2

Quantum computer type 1 (QC1): contains many “qubits”; can efficiently perform “NOT gate”, “Hadamard gate”, “controlled NOT gate”, “T gate”. Making these instructions work is the main goal of quantum- computer engineering.

slide-4
SLIDE 4

2

Quantum computer type 1 (QC1): contains many “qubits”; can efficiently perform “NOT gate”, “Hadamard gate”, “controlled NOT gate”, “T gate”. Making these instructions work is the main goal of quantum- computer engineering. Combine these instructions to compute “Toffoli gate”; : : : “Simon’s algorithm”; : : : “Shor’s algorithm”; etc.

slide-5
SLIDE 5

2

Quantum computer type 1 (QC1): contains many “qubits”; can efficiently perform “NOT gate”, “Hadamard gate”, “controlled NOT gate”, “T gate”. Making these instructions work is the main goal of quantum- computer engineering. Combine these instructions to compute “Toffoli gate”; : : : “Simon’s algorithm”; : : : “Shor’s algorithm”; etc. General belief: Traditional CPU isn’t QC1; e.g. can’t factor quickly.

slide-6
SLIDE 6

3

Quantum computer type 2 (QC2): stores a simulated universe; efficiently simulates the laws of quantum physics with as much accuracy as desired. This is the original concept of quantum computers introduced by 1982 Feynman “Simulating physics with computers”.

slide-7
SLIDE 7

3

Quantum computer type 2 (QC2): stores a simulated universe; efficiently simulates the laws of quantum physics with as much accuracy as desired. This is the original concept of quantum computers introduced by 1982 Feynman “Simulating physics with computers”. General belief: any QC1 is a QC2. Partial proof: see, e.g., 2011 Jordan–Lee–Preskill “Quantum algorithms for quantum field theories”.

slide-8
SLIDE 8

4

Quantum computer type 3 (QC3): efficiently computes anything that any possible physical computer can compute efficiently.

slide-9
SLIDE 9

4

Quantum computer type 3 (QC3): efficiently computes anything that any possible physical computer can compute efficiently. General belief: any QC2 is a QC3. Argument for belief: any physical computer must follow the laws of quantum physics, so a QC2 can efficiently simulate any physical computer.

slide-10
SLIDE 10

4

Quantum computer type 3 (QC3): efficiently computes anything that any possible physical computer can compute efficiently. General belief: any QC2 is a QC3. Argument for belief: any physical computer must follow the laws of quantum physics, so a QC2 can efficiently simulate any physical computer. General belief: any QC3 is a QC1. Argument for belief: look, we’re building a QC1.

slide-11
SLIDE 11

5

A note on D-Wave Apparent scientific consensus: Current “quantum computers” from D-Wave are useless— can be more cost-effectively simulated by traditional CPUs.

slide-12
SLIDE 12

5

A note on D-Wave Apparent scientific consensus: Current “quantum computers” from D-Wave are useless— can be more cost-effectively simulated by traditional CPUs. But D-Wave is

  • collecting venture capital;
slide-13
SLIDE 13

5

A note on D-Wave Apparent scientific consensus: Current “quantum computers” from D-Wave are useless— can be more cost-effectively simulated by traditional CPUs. But D-Wave is

  • collecting venture capital;
  • selling some machines;
slide-14
SLIDE 14

5

A note on D-Wave Apparent scientific consensus: Current “quantum computers” from D-Wave are useless— can be more cost-effectively simulated by traditional CPUs. But D-Wave is

  • collecting venture capital;
  • selling some machines;
  • collecting possibly useful

engineering expertise;

slide-15
SLIDE 15

5

A note on D-Wave Apparent scientific consensus: Current “quantum computers” from D-Wave are useless— can be more cost-effectively simulated by traditional CPUs. But D-Wave is

  • collecting venture capital;
  • selling some machines;
  • collecting possibly useful

engineering expertise;

  • not being punished

for deceiving people.

slide-16
SLIDE 16

5

A note on D-Wave Apparent scientific consensus: Current “quantum computers” from D-Wave are useless— can be more cost-effectively simulated by traditional CPUs. But D-Wave is

  • collecting venture capital;
  • selling some machines;
  • collecting possibly useful

engineering expertise;

  • not being punished

for deceiving people. Is D-Wave a bad investment?

slide-17
SLIDE 17

6

The state of a computer Data (“state”) stored in 3 bits: a list of 3 elements of {0; 1}. e.g.: (0; 0; 0).

slide-18
SLIDE 18

6

The state of a computer Data (“state”) stored in 3 bits: a list of 3 elements of {0; 1}. e.g.: (0; 0; 0). e.g.: (1; 1; 1).

slide-19
SLIDE 19

6

The state of a computer Data (“state”) stored in 3 bits: a list of 3 elements of {0; 1}. e.g.: (0; 0; 0). e.g.: (1; 1; 1). e.g.: (0; 1; 1).

slide-20
SLIDE 20

6

The state of a computer Data (“state”) stored in 3 bits: a list of 3 elements of {0; 1}. e.g.: (0; 0; 0). e.g.: (1; 1; 1). e.g.: (0; 1; 1). Data stored in 64 bits: a list of 64 elements of {0; 1}.

slide-21
SLIDE 21

6

The state of a computer Data (“state”) stored in 3 bits: a list of 3 elements of {0; 1}. e.g.: (0; 0; 0). e.g.: (1; 1; 1). e.g.: (0; 1; 1). Data stored in 64 bits: a list of 64 elements of {0; 1}. e.g.: (1; 1; 1; 1; 1; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 1; 1; 0; 0; 0; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 1; 1; 0; 1; 0; 0; 0; 1; 0; 0; 0; 1; 0; 0; 1; 1; 1; 0; 0; 1; 0; 0; 0; 1; 1; 0; 1; 1; 0; 0; 1; 0; 0; 1):

slide-22
SLIDE 22

7

The state of a quantum computer Data stored in 3 qubits: a list of 8 numbers, not all zero. e.g.: (3; 1; 4; 1; 5; 9; 2; 6).

slide-23
SLIDE 23

7

The state of a quantum computer Data stored in 3 qubits: a list of 8 numbers, not all zero. e.g.: (3; 1; 4; 1; 5; 9; 2; 6). e.g.: (−2; 7; −1; 8; 1; −8; −2; 8).

slide-24
SLIDE 24

7

The state of a quantum computer Data stored in 3 qubits: a list of 8 numbers, not all zero. e.g.: (3; 1; 4; 1; 5; 9; 2; 6). e.g.: (−2; 7; −1; 8; 1; −8; −2; 8). e.g.: (0; 0; 0; 0; 0; 1; 0; 0).

slide-25
SLIDE 25

7

The state of a quantum computer Data stored in 3 qubits: a list of 8 numbers, not all zero. e.g.: (3; 1; 4; 1; 5; 9; 2; 6). e.g.: (−2; 7; −1; 8; 1; −8; −2; 8). e.g.: (0; 0; 0; 0; 0; 1; 0; 0). Data stored in 4 qubits: a list of 16 numbers, not all zero. e.g.: (3; 1; 4; 1; 5; 9; 2; 6; 5; 3; 5; 8; 9; 7; 9; 3).

slide-26
SLIDE 26

7

The state of a quantum computer Data stored in 3 qubits: a list of 8 numbers, not all zero. e.g.: (3; 1; 4; 1; 5; 9; 2; 6). e.g.: (−2; 7; −1; 8; 1; −8; −2; 8). e.g.: (0; 0; 0; 0; 0; 1; 0; 0). Data stored in 4 qubits: a list of 16 numbers, not all zero. e.g.: (3; 1; 4; 1; 5; 9; 2; 6; 5; 3; 5; 8; 9; 7; 9; 3). Data stored in 64 qubits: a list of 264 numbers, not all zero.

slide-27
SLIDE 27

7

The state of a quantum computer Data stored in 3 qubits: a list of 8 numbers, not all zero. e.g.: (3; 1; 4; 1; 5; 9; 2; 6). e.g.: (−2; 7; −1; 8; 1; −8; −2; 8). e.g.: (0; 0; 0; 0; 0; 1; 0; 0). Data stored in 4 qubits: a list of 16 numbers, not all zero. e.g.: (3; 1; 4; 1; 5; 9; 2; 6; 5; 3; 5; 8; 9; 7; 9; 3). Data stored in 64 qubits: a list of 264 numbers, not all zero. Data stored in 1000 qubits: a list

  • f 21000 numbers, not all zero.
slide-28
SLIDE 28

8

Measuring a quantum computer Can simply look at a bit. Cannot simply look at the list

  • f numbers stored in n qubits.
slide-29
SLIDE 29

8

Measuring a quantum computer Can simply look at a bit. Cannot simply look at the list

  • f numbers stored in n qubits.

Measuring n qubits

  • produces n bits and
  • destroys the state.
slide-30
SLIDE 30

8

Measuring a quantum computer Can simply look at a bit. Cannot simply look at the list

  • f numbers stored in n qubits.

Measuring n qubits

  • produces n bits and
  • destroys the state.

If n qubits have state (a0; a1; : : : ; a2n−1) then measurement produces q with probability |aq|2= P

r |ar|2.

slide-31
SLIDE 31

8

Measuring a quantum computer Can simply look at a bit. Cannot simply look at the list

  • f numbers stored in n qubits.

Measuring n qubits

  • produces n bits and
  • destroys the state.

If n qubits have state (a0; a1; : : : ; a2n−1) then measurement produces q with probability |aq|2= P

r |ar|2.

State is then all zeros except 1 at position q.

slide-32
SLIDE 32

9

e.g.: Say 3 qubits have state (1; 1; 1; 1; 1; 1; 1; 1).

slide-33
SLIDE 33

9

e.g.: Say 3 qubits have state (1; 1; 1; 1; 1; 1; 1; 1). Measurement produces 000 = 0 with probability 1=8; 001 = 1 with probability 1=8; 010 = 2 with probability 1=8; 011 = 3 with probability 1=8; 100 = 4 with probability 1=8; 101 = 5 with probability 1=8; 110 = 6 with probability 1=8; 111 = 7 with probability 1=8.

slide-34
SLIDE 34

9

e.g.: Say 3 qubits have state (1; 1; 1; 1; 1; 1; 1; 1). Measurement produces 000 = 0 with probability 1=8; 001 = 1 with probability 1=8; 010 = 2 with probability 1=8; 011 = 3 with probability 1=8; 100 = 4 with probability 1=8; 101 = 5 with probability 1=8; 110 = 6 with probability 1=8; 111 = 7 with probability 1=8. “Quantum RNG.”

slide-35
SLIDE 35

9

e.g.: Say 3 qubits have state (1; 1; 1; 1; 1; 1; 1; 1). Measurement produces 000 = 0 with probability 1=8; 001 = 1 with probability 1=8; 010 = 2 with probability 1=8; 011 = 3 with probability 1=8; 100 = 4 with probability 1=8; 101 = 5 with probability 1=8; 110 = 6 with probability 1=8; 111 = 7 with probability 1=8. “Quantum RNG.” Warning: Quantum RNGs sold today are measurably biased.

slide-36
SLIDE 36

10

e.g.: Say 3 qubits have state (3; 1; 4; 1; 5; 9; 2; 6).

slide-37
SLIDE 37

10

e.g.: Say 3 qubits have state (3; 1; 4; 1; 5; 9; 2; 6). Measurement produces 000 = 0 with probability 9=173; 001 = 1 with probability 1=173; 010 = 2 with probability 16=173; 011 = 3 with probability 1=173; 100 = 4 with probability 25=173; 101 = 5 with probability 81=173; 110 = 6 with probability 4=173; 111 = 7 with probability 36=173.

slide-38
SLIDE 38

10

e.g.: Say 3 qubits have state (3; 1; 4; 1; 5; 9; 2; 6). Measurement produces 000 = 0 with probability 9=173; 001 = 1 with probability 1=173; 010 = 2 with probability 16=173; 011 = 3 with probability 1=173; 100 = 4 with probability 25=173; 101 = 5 with probability 81=173; 110 = 6 with probability 4=173; 111 = 7 with probability 36=173. 5 is most likely outcome.

slide-39
SLIDE 39

11

e.g.: Say 3 qubits have state (0; 0; 0; 0; 0; 1; 0; 0).

slide-40
SLIDE 40

11

e.g.: Say 3 qubits have state (0; 0; 0; 0; 0; 1; 0; 0). Measurement produces 000 = 0 with probability 0; 001 = 1 with probability 0; 010 = 2 with probability 0; 011 = 3 with probability 0; 100 = 4 with probability 0; 101 = 5 with probability 1; 110 = 6 with probability 0; 111 = 7 with probability 0.

slide-41
SLIDE 41

11

e.g.: Say 3 qubits have state (0; 0; 0; 0; 0; 1; 0; 0). Measurement produces 000 = 0 with probability 0; 001 = 1 with probability 0; 010 = 2 with probability 0; 011 = 3 with probability 0; 100 = 4 with probability 0; 101 = 5 with probability 1; 110 = 6 with probability 0; 111 = 7 with probability 0. 5 is guaranteed outcome.

slide-42
SLIDE 42

12

NOT gates NOT0 gate on 3 qubits: (3; 1; 4; 1; 5; 9; 2; 6) → (1; 3; 1; 4; 9; 5; 6; 2).

slide-43
SLIDE 43

12

NOT gates NOT0 gate on 3 qubits: (3; 1; 4; 1; 5; 9; 2; 6) → (1; 3; 1; 4; 9; 5; 6; 2). NOT0 gate on 4 qubits: (3;1;4;1;5;9;2;6;5;3;5;8;9;7;9;3) → (1;3;1;4;9;5;6;2;3;5;8;5;7;9;3;9).

slide-44
SLIDE 44

12

NOT gates NOT0 gate on 3 qubits: (3; 1; 4; 1; 5; 9; 2; 6) → (1; 3; 1; 4; 9; 5; 6; 2). NOT0 gate on 4 qubits: (3;1;4;1;5;9;2;6;5;3;5;8;9;7;9;3) → (1;3;1;4;9;5;6;2;3;5;8;5;7;9;3;9). NOT1 gate on 3 qubits: (3; 1; 4; 1; 5; 9; 2; 6) → (4; 1; 3; 1; 2; 6; 5; 9).

slide-45
SLIDE 45

12

NOT gates NOT0 gate on 3 qubits: (3; 1; 4; 1; 5; 9; 2; 6) → (1; 3; 1; 4; 9; 5; 6; 2). NOT0 gate on 4 qubits: (3;1;4;1;5;9;2;6;5;3;5;8;9;7;9;3) → (1;3;1;4;9;5;6;2;3;5;8;5;7;9;3;9). NOT1 gate on 3 qubits: (3; 1; 4; 1; 5; 9; 2; 6) → (4; 1; 3; 1; 2; 6; 5; 9). NOT2 gate on 3 qubits: (3; 1; 4; 1; 5; 9; 2; 6) → (5; 9; 2; 6; 3; 1; 4; 1).

slide-46
SLIDE 46

13

state measurement (1; 0; 0; 0; 0; 0; 0; 0) 000

  • (0; 1; 0; 0; 0; 0; 0; 0)

001 (0; 0; 1; 0; 0; 0; 0; 0) 010

  • (0; 0; 0; 1; 0; 0; 0; 0)

011 (0; 0; 0; 0; 1; 0; 0; 0) 100

  • (0; 0; 0; 0; 0; 1; 0; 0)

101 (0; 0; 0; 0; 0; 0; 1; 0) 110

  • (0; 0; 0; 0; 0; 0; 0; 1)

111 Operation on quantum state: NOT0, swapping pairs. Operation after measurement: flipping bit 0 of result. Flip: output is not input.

slide-47
SLIDE 47

14

Controlled-NOT (CNOT) gates e.g. C1NOT0: (3; 1; 4; 1; 5; 9; 2; 6) → (3; 1; 1; 4; 5; 9; 6; 2).

slide-48
SLIDE 48

14

Controlled-NOT (CNOT) gates e.g. C1NOT0: (3; 1; 4; 1; 5; 9; 2; 6) → (3; 1; 1; 4; 5; 9; 6; 2). Operation after measurement: flipping bit 0 if bit 1 is set; i.e., (q2; q1; q0) → (q2; q1; q0 ⊕ q1).

slide-49
SLIDE 49

14

Controlled-NOT (CNOT) gates e.g. C1NOT0: (3; 1; 4; 1; 5; 9; 2; 6) → (3; 1; 1; 4; 5; 9; 6; 2). Operation after measurement: flipping bit 0 if bit 1 is set; i.e., (q2; q1; q0) → (q2; q1; q0 ⊕ q1). e.g. C2NOT0: (3; 1; 4; 1; 5; 9; 2; 6) → (3; 1; 4; 1; 9; 5; 6; 2).

slide-50
SLIDE 50

14

Controlled-NOT (CNOT) gates e.g. C1NOT0: (3; 1; 4; 1; 5; 9; 2; 6) → (3; 1; 1; 4; 5; 9; 6; 2). Operation after measurement: flipping bit 0 if bit 1 is set; i.e., (q2; q1; q0) → (q2; q1; q0 ⊕ q1). e.g. C2NOT0: (3; 1; 4; 1; 5; 9; 2; 6) → (3; 1; 4; 1; 9; 5; 6; 2). e.g. C0NOT2: (3; 1; 4; 1; 5; 9; 2; 6) → (3; 9; 4; 6; 5; 1; 2; 1).

slide-51
SLIDE 51

15

Toffoli gates Also known as CCNOT gates: controlled-controlled-NOT gates. e.g. C2C1NOT0: (3; 1; 4; 1; 5; 9; 2; 6) → (3; 1; 4; 1; 5; 9; 6; 2).

slide-52
SLIDE 52

15

Toffoli gates Also known as CCNOT gates: controlled-controlled-NOT gates. e.g. C2C1NOT0: (3; 1; 4; 1; 5; 9; 2; 6) → (3; 1; 4; 1; 5; 9; 6; 2). Operation after measurement: (q2; q1; q0) → (q2; q1; q0 ⊕ q1q2).

slide-53
SLIDE 53

15

Toffoli gates Also known as CCNOT gates: controlled-controlled-NOT gates. e.g. C2C1NOT0: (3; 1; 4; 1; 5; 9; 2; 6) → (3; 1; 4; 1; 5; 9; 6; 2). Operation after measurement: (q2; q1; q0) → (q2; q1; q0 ⊕ q1q2). e.g. C0C1NOT2: (3; 1; 4; 1; 5; 9; 2; 6) → (3; 1; 4; 6; 5; 9; 2; 1).

slide-54
SLIDE 54

16

More shuffling Combine NOT, CNOT, Toffoli to build other permutations.

slide-55
SLIDE 55

16

More shuffling Combine NOT, CNOT, Toffoli to build other permutations. e.g. series of gates to rotate 8 positions by distance 1: 3 1 4 1 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲5 9 2 6 sssssssss C0C1NOT2 3 1 ✾ ✾ ✾ ✾ ✾4 6 ✆ ✆ ✆ ✆ ✆ 5 9 ✾ ✾ ✾ ✾ ✾2 1 ✆ ✆ ✆ ✆ ✆ C0NOT1 3 ✱ ✱ ✱ ✱ 6 ✒✒✒✒ 4 ✱ ✱ ✱ ✱ 1 ✒✒✒✒ 5 ✱ ✱ ✱ ✱ 1 ✒✒✒✒ 2 ✱ ✱ ✱ ✱ 9 ✒✒✒✒ NOT0 6 3 1 4 1 5 9 2

slide-56
SLIDE 56

17

Hadamard gates Hadamard0: (a; b) → (a + b; a − b). 3 ✹ ✹ ✹ ✹ 1 ✡✡✡✡ 4 ✹ ✹ ✹ ✹ 1 ✡✡✡✡ 5 ✹ ✹ ✹ ✹ 9 ✡✡✡✡ 2 ✹ ✹ ✹ ✹ 6 ✡✡✡✡ 4 2 5 3 14 −4 8 −4

slide-57
SLIDE 57

17

Hadamard gates Hadamard0: (a; b) → (a + b; a − b). 3 ✹ ✹ ✹ ✹ 1 ✡✡✡✡ 4 ✹ ✹ ✹ ✹ 1 ✡✡✡✡ 5 ✹ ✹ ✹ ✹ 9 ✡✡✡✡ 2 ✹ ✹ ✹ ✹ 6 ✡✡✡✡ 4 2 5 3 14 −4 8 −4 Hadamard1: (a; b; c; d) → (a + c; b + d; a − c; b − d). 3 ❋ ❋ ❋ ❋ ❋ ❋ ❋ 1 ❋ ❋ ❋ ❋ ❋ ❋ ❋ 4 ①①①①①①① 1 ①①①①①①① 5 ❋ ❋ ❋ ❋ ❋ ❋ ❋ 9 ❋ ❋ ❋ ❋ ❋ ❋ ❋ 2 ①①①①①①① 6 ①①①①①①① 7 2 −1 7 15 3 3

slide-58
SLIDE 58

18

Some Hadamard applications Hadamard0, NOT0, Hadamard0: 3 ✹ ✹ ✹ ✹ 1 ✡✡✡✡ 4 ✹ ✹ ✹ ✹ 1 ✡✡✡✡ 5 ✹ ✹ ✹ ✹ 9 ✡✡✡✡ 2 ✹ ✹ ✹ ✹ 6 ✡✡✡✡ 4 ✹ ✹ ✹ ✹ 2 ✡✡✡✡ 5 ✹ ✹ ✹ ✹ 3 ✡✡✡✡ 14 ✹ ✹ ✹ ✹ −4 ✡✡✡✡ 8 ✹ ✹ ✹ ✹ −4 ✡✡✡✡ 2 ✹ ✹ ✹ ✹ 4 ✡✡✡✡ 3 ✹ ✹ ✹ ✹ 5 ✡✡✡✡ −4 ✹ ✹ ✹ ✹ 14 ✡✡✡✡ −4 ✹ ✹ ✹ ✹ 8 ✡✡✡✡ 6 −2 8 −2 10 −18 4 −12

slide-59
SLIDE 59

18

Some Hadamard applications Hadamard0, NOT0, Hadamard0: 3 ✹ ✹ ✹ ✹ 1 ✡✡✡✡ 4 ✹ ✹ ✹ ✹ 1 ✡✡✡✡ 5 ✹ ✹ ✹ ✹ 9 ✡✡✡✡ 2 ✹ ✹ ✹ ✹ 6 ✡✡✡✡ 4 ✹ ✹ ✹ ✹ 2 ✡✡✡✡ 5 ✹ ✹ ✹ ✹ 3 ✡✡✡✡ 14 ✹ ✹ ✹ ✹ −4 ✡✡✡✡ 8 ✹ ✹ ✹ ✹ −4 ✡✡✡✡ 2 ✹ ✹ ✹ ✹ 4 ✡✡✡✡ 3 ✹ ✹ ✹ ✹ 5 ✡✡✡✡ −4 ✹ ✹ ✹ ✹ 14 ✡✡✡✡ −4 ✹ ✹ ✹ ✹ 8 ✡✡✡✡ 6 −2 8 −2 10 −18 4 −12 “Multiply each amplitude by 2.” This is not physically observable.

slide-60
SLIDE 60

18

Some Hadamard applications Hadamard0, NOT0, Hadamard0: 3 ✹ ✹ ✹ ✹ 1 ✡✡✡✡ 4 ✹ ✹ ✹ ✹ 1 ✡✡✡✡ 5 ✹ ✹ ✹ ✹ 9 ✡✡✡✡ 2 ✹ ✹ ✹ ✹ 6 ✡✡✡✡ 4 ✹ ✹ ✹ ✹ 2 ✡✡✡✡ 5 ✹ ✹ ✹ ✹ 3 ✡✡✡✡ 14 ✹ ✹ ✹ ✹ −4 ✡✡✡✡ 8 ✹ ✹ ✹ ✹ −4 ✡✡✡✡ 2 ✹ ✹ ✹ ✹ 4 ✡✡✡✡ 3 ✹ ✹ ✹ ✹ 5 ✡✡✡✡ −4 ✹ ✹ ✹ ✹ 14 ✡✡✡✡ −4 ✹ ✹ ✹ ✹ 8 ✡✡✡✡ 6 −2 8 −2 10 −18 4 −12 “Multiply each amplitude by 2.” This is not physically observable. “Negate amplitude if q0 is set.” No effect on measuring now.

slide-61
SLIDE 61

19

Fancier example: “Negate amplitude if q0q1 is set.” Assumes q2 = 0: “ancilla” qubit. 3 1 4 1 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲0 0 0 0 sssssssss C0C1NOT2 3 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲1 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲4 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲0 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲0 sssssssss sssssssss sssssssss 1 sssssssss Hadamard2 3 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲1 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲4 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲1 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲3 sssssssss 1 sssssssss 4 sssssssss −1 sssssss NOT2 3 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲1 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲4 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ −1 ▲ ▲ ▲ ▲ ▲ ▲ ▲ 3 sssssssss 1 sssssssss 4 sssssssss 1 sssssssss Hadamard2 6 2 8 0 ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲ ▲0 0 0 −2 sssssss C0C1NOT2 6 2 8 −2 0 0 0 0

slide-62
SLIDE 62

20

Affects measurements: “Negate amplitude around its average.” (3; 1; 4; 1) → (1:5; 3:5; 0:5; 3:5).

slide-63
SLIDE 63

20

Affects measurements: “Negate amplitude around its average.” (3; 1; 4; 1) → (1:5; 3:5; 0:5; 3:5). 3 ✷ ✷ ✷ ✷ 1 ☞☞☞☞ 4 ✷ ✷ ✷ ✷ 1 ☞☞☞☞ ✷ ✷ ✷ ✷ ☞☞☞☞ ✷ ✷ ✷ ✷ ☞☞☞☞ H0 4 ❉ ❉ ❉ ❉ ❉ ❉ 2 ❉ ❉ ❉ ❉ ❉ ❉ 5 ③ ③ ③ ③ ③ ③ ③ 3 ③ ③ ③ ③ ③ ③ ③ ❉ ❉ ❉ ❉ ❉ ❉ ❉ 0 ❉ ❉ ❉ ❉ ❉ ❉ ❉ 0 ③ ③ ③ ③ ③ ③ ③ ③ ③ ③ ③ ③ ③ ③ H1 9 5 −1 −1 : : : −9 ✷ ✷ ✷ ✷ 5 ☞☞☞☞ −1 ✷ ✷ ✷ ✷ −1 ☞☞☞☞ ✷ ✷ ✷ ✷ ☞☞☞☞ ✷ ✷ ✷ ✷ ☞☞☞☞ H0 −4 ❉ ❉ ❉ ❉ ❉ −14 ❉ ❉ ❉ ❉ ❉ −2 ③③③③③ ③ ③ ③ ③ ③ ③ ❉ ❉ ❉ ❉ ❉ ❉ ❉ 0 ❉ ❉ ❉ ❉ ❉ ❉ ❉ 0 ③ ③ ③ ③ ③ ③ ③ ③ ③ ③ ③ ③ ③ ③ H1 −6 −14 −2 −14 0

slide-64
SLIDE 64

21

Simon’s algorithm Step 1. Set up pure zero state: 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0:

slide-65
SLIDE 65

21

Simon’s algorithm Step 2. Hadamard0: 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0:

slide-66
SLIDE 66

21

Simon’s algorithm Step 3. Hadamard1: 1; 1; 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0:

slide-67
SLIDE 67

21

Simon’s algorithm Step 4. Hadamard2: 1; 1; 1; 1; 1; 1; 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0: Each column is a parallel universe.

slide-68
SLIDE 68

21

Simon’s algorithm Step 5. C0NOT3: 1; 0; 1; 0; 1; 0; 1; 0; 0; 1; 0; 1; 0; 1; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0: Each column is a parallel universe performing its own computations.

slide-69
SLIDE 69

21

Simon’s algorithm Step 5b. More shuffling: 1; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0: Each column is a parallel universe performing its own computations.

slide-70
SLIDE 70

21

Simon’s algorithm Step 5c. More shuffling: 1; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 1: Each column is a parallel universe performing its own computations.

slide-71
SLIDE 71

21

Simon’s algorithm Step 5d. More shuffling: 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 0; 0; 0: Each column is a parallel universe performing its own computations.

slide-72
SLIDE 72

21

Simon’s algorithm Step 5e. More shuffling: 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0: Each column is a parallel universe performing its own computations.

slide-73
SLIDE 73

21

Simon’s algorithm Step 5f. More shuffling: 0; 0; 0; 0; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 1; 0: Each column is a parallel universe performing its own computations.

slide-74
SLIDE 74

21

Simon’s algorithm Step 5g. More shuffling: 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1: Each column is a parallel universe performing its own computations.

slide-75
SLIDE 75

21

Simon’s algorithm Step 5h. More shuffling: 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0: Each column is a parallel universe performing its own computations.

slide-76
SLIDE 76

21

Simon’s algorithm Step 5i. More shuffling: 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0: Each column is a parallel universe performing its own computations.

slide-77
SLIDE 77

21

Simon’s algorithm Step 5j. Final shuffling: 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 0: Each column is a parallel universe performing its own computations.

slide-78
SLIDE 78

21

Simon’s algorithm Step 5j. Final shuffling: 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 0: Each column is a parallel universe performing its own computations. Surprise: u and u ⊕ 101 match.

slide-79
SLIDE 79

21

Simon’s algorithm Step 6. Hadamard0: 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 1; 0; 0; 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 1; 0; 0; 1; 1; 1; 1; 0; 0; 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 1; 0; 0; 1; 1; 0; 0: Notation: 1 means −1.

slide-80
SLIDE 80

21

Simon’s algorithm Step 7. Hadamard1: 0; 0; 0; 0; 0; 0; 0; 0; 1; 1; 1; 1; 1; 1; 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 1; 1; 1; 1; 1; 1; 1:

slide-81
SLIDE 81

21

Simon’s algorithm Step 8. Hadamard2: 0; 0; 0; 0; 0; 0; 0; 0; 2; 0; 2; 0; 0; 2; 0; 2; 0; 0; 0; 0; 0; 0; 0; 0; 2; 0; 2; 0; 0; 2; 0; 2; 2; 0; 2; 0; 0; 2; 0; 2; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 2; 0; 2; 0; 0; 2; 0; 2:

slide-82
SLIDE 82

21

Simon’s algorithm Step 8. Hadamard2: 0; 0; 0; 0; 0; 0; 0; 0; 2; 0; 2; 0; 0; 2; 0; 2; 0; 0; 0; 0; 0; 0; 0; 0; 2; 0; 2; 0; 0; 2; 0; 2; 2; 0; 2; 0; 0; 2; 0; 2; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 2; 0; 2; 0; 0; 2; 0; 2: Step 9: Measure. Obtain some information about the surprise: a random vector orthogonal to 101.

slide-83
SLIDE 83

22

Repeat to figure out 101.

slide-84
SLIDE 84

22

Repeat to figure out 101. Generalize Step 5 to any function u → f (u) with f (u) = f (u ⊕ s). “Usually” algorithm figures out s.

slide-85
SLIDE 85

22

Repeat to figure out 101. Generalize Step 5 to any function u → f (u) with f (u) = f (u ⊕ s). “Usually” algorithm figures out s. Shor’s algorithm replaces ⊕ with more general + operation. Many spectacular applications.

slide-86
SLIDE 86

22

Repeat to figure out 101. Generalize Step 5 to any function u → f (u) with f (u) = f (u ⊕ s). “Usually” algorithm figures out s. Shor’s algorithm replaces ⊕ with more general + operation. Many spectacular applications. e.g. Shor finds “random” s with 2u mod N = 2u+s mod N. Easy to factor N using this.

slide-87
SLIDE 87

22

Repeat to figure out 101. Generalize Step 5 to any function u → f (u) with f (u) = f (u ⊕ s). “Usually” algorithm figures out s. Shor’s algorithm replaces ⊕ with more general + operation. Many spectacular applications. e.g. Shor finds “random” s with 2u mod N = 2u+s mod N. Easy to factor N using this. e.g. Shor finds “random” s; t with 4u9v mod p = 4u+s9v+t mod p. Easy to compute discrete logs.

slide-88
SLIDE 88

23

Grover’s algorithm Assume: unique s ∈ {0; 1}n has f (s) = 0. Traditional algorithm to find s: compute f for many inputs, hope to find output 0. Success probability is very low until #inputs approaches 2n.

slide-89
SLIDE 89

23

Grover’s algorithm Assume: unique s ∈ {0; 1}n has f (s) = 0. Traditional algorithm to find s: compute f for many inputs, hope to find output 0. Success probability is very low until #inputs approaches 2n. Grover’s algorithm takes only 2n=2 reversible computations of f . Typically: reversibility overhead is small enough that this easily beats traditional algorithm.

slide-90
SLIDE 90

24

Start from uniform superposition

  • ver all n-bit strings q.
slide-91
SLIDE 91

24

Start from uniform superposition

  • ver all n-bit strings q.

Step 1: Set a ← b where bq = −aq if f (q) = 0, bq = aq otherwise. This is fast.

slide-92
SLIDE 92

24

Start from uniform superposition

  • ver all n-bit strings q.

Step 1: Set a ← b where bq = −aq if f (q) = 0, bq = aq otherwise. This is fast. Step 2: “Grover diffusion”. Negate a around its average. This is also fast.

slide-93
SLIDE 93

24

Start from uniform superposition

  • ver all n-bit strings q.

Step 1: Set a ← b where bq = −aq if f (q) = 0, bq = aq otherwise. This is fast. Step 2: “Grover diffusion”. Negate a around its average. This is also fast. Repeat Step 1 + Step 2 about 0:58 · 20:5n times.

slide-94
SLIDE 94

24

Start from uniform superposition

  • ver all n-bit strings q.

Step 1: Set a ← b where bq = −aq if f (q) = 0, bq = aq otherwise. This is fast. Step 2: “Grover diffusion”. Negate a around its average. This is also fast. Repeat Step 1 + Step 2 about 0:58 · 20:5n times. Measure the n qubits. With high probability this finds s.

slide-95
SLIDE 95

25

Normalized graph of q → aq for an example with n = 12 after 0 steps:

−1.0 −0.5 0.0 0.5 1.0

slide-96
SLIDE 96

25

Normalized graph of q → aq for an example with n = 12 after Step 1:

−1.0 −0.5 0.0 0.5 1.0

slide-97
SLIDE 97

25

Normalized graph of q → aq for an example with n = 12 after Step 1 + Step 2:

−1.0 −0.5 0.0 0.5 1.0

slide-98
SLIDE 98

25

Normalized graph of q → aq for an example with n = 12 after Step 1 + Step 2 + Step 1:

−1.0 −0.5 0.0 0.5 1.0

slide-99
SLIDE 99

25

Normalized graph of q → aq for an example with n = 12 after 2 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-100
SLIDE 100

25

Normalized graph of q → aq for an example with n = 12 after 3 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-101
SLIDE 101

25

Normalized graph of q → aq for an example with n = 12 after 4 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-102
SLIDE 102

25

Normalized graph of q → aq for an example with n = 12 after 5 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-103
SLIDE 103

25

Normalized graph of q → aq for an example with n = 12 after 6 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-104
SLIDE 104

25

Normalized graph of q → aq for an example with n = 12 after 7 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-105
SLIDE 105

25

Normalized graph of q → aq for an example with n = 12 after 8 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-106
SLIDE 106

25

Normalized graph of q → aq for an example with n = 12 after 9 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-107
SLIDE 107

25

Normalized graph of q → aq for an example with n = 12 after 10 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-108
SLIDE 108

25

Normalized graph of q → aq for an example with n = 12 after 11 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-109
SLIDE 109

25

Normalized graph of q → aq for an example with n = 12 after 12 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-110
SLIDE 110

25

Normalized graph of q → aq for an example with n = 12 after 13 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-111
SLIDE 111

25

Normalized graph of q → aq for an example with n = 12 after 14 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-112
SLIDE 112

25

Normalized graph of q → aq for an example with n = 12 after 15 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-113
SLIDE 113

25

Normalized graph of q → aq for an example with n = 12 after 16 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-114
SLIDE 114

25

Normalized graph of q → aq for an example with n = 12 after 17 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-115
SLIDE 115

25

Normalized graph of q → aq for an example with n = 12 after 18 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-116
SLIDE 116

25

Normalized graph of q → aq for an example with n = 12 after 19 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-117
SLIDE 117

25

Normalized graph of q → aq for an example with n = 12 after 20 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-118
SLIDE 118

25

Normalized graph of q → aq for an example with n = 12 after 25 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-119
SLIDE 119

25

Normalized graph of q → aq for an example with n = 12 after 30 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-120
SLIDE 120

25

Normalized graph of q → aq for an example with n = 12 after 35 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

Good moment to stop, measure.

slide-121
SLIDE 121

25

Normalized graph of q → aq for an example with n = 12 after 40 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-122
SLIDE 122

25

Normalized graph of q → aq for an example with n = 12 after 45 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-123
SLIDE 123

25

Normalized graph of q → aq for an example with n = 12 after 50 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

Traditional stopping point.

slide-124
SLIDE 124

25

Normalized graph of q → aq for an example with n = 12 after 60 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-125
SLIDE 125

25

Normalized graph of q → aq for an example with n = 12 after 70 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-126
SLIDE 126

25

Normalized graph of q → aq for an example with n = 12 after 80 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-127
SLIDE 127

25

Normalized graph of q → aq for an example with n = 12 after 90 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-128
SLIDE 128

25

Normalized graph of q → aq for an example with n = 12 after 100 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

Very bad stopping point.

slide-129
SLIDE 129

26

q → aq is completely described by a vector of two numbers (with fixed multiplicities): (1) aq for roots q; (2) aq for non-roots q.

slide-130
SLIDE 130

26

q → aq is completely described by a vector of two numbers (with fixed multiplicities): (1) aq for roots q; (2) aq for non-roots q. Step 1 + Step 2 act linearly on this vector.

slide-131
SLIDE 131

26

q → aq is completely described by a vector of two numbers (with fixed multiplicities): (1) aq for roots q; (2) aq for non-roots q. Step 1 + Step 2 act linearly on this vector. Easily compute eigenvalues and powers of this linear map to understand evolution

  • f state of Grover’s algorithm.

⇒ Probability is ≈1 after ≈(ı=4)20:5n iterations.

slide-132
SLIDE 132

27

Many more applications Shor generalizations: e.g., poly-time attack breaking “cyclotomic” case of Gentry STOC 2009 “Fully homomorphic encryption using ideal lattices”. Grover generalizations: e.g., fastest subset-sum attacks use “quantum walks”. Not just Shor and Grover: e.g., subexponential-time CRS/CSIDH isogeny attack uses “Kuperberg’s algorithm”.