Quantum algorithms Daniel J. Bernstein Quantum algorithm means an - - PDF document

quantum algorithms daniel j bernstein quantum algorithm
SMART_READER_LITE
LIVE PREVIEW

Quantum algorithms Daniel J. Bernstein Quantum algorithm means an - - PDF document

1 Quantum algorithms 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. How do we


slide-1
SLIDE 1

1

Quantum algorithms 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 uses of Hadamard gates 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 uses of Hadamard gates 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 uses of Hadamard gates 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 Assumptions:

  • Given any u ∈ {0; 1}n,

can efficiently compute f (u).

  • Nonzero s ∈ {0; 1}n.
  • f (u) = f (u ⊕ s) for all u.
  • f has no other collisions.

Goal: Figure out s.

slide-65
SLIDE 65

21

Simon’s algorithm Assumptions:

  • Given any u ∈ {0; 1}n,

can efficiently compute f (u).

  • Nonzero s ∈ {0; 1}n.
  • f (u) = f (u ⊕ s) for all u.
  • f has no other collisions.

Goal: Figure out s. Traditional algorithm to find s: compute f for many inputs, hope to find collision.

slide-66
SLIDE 66

21

Simon’s algorithm Assumptions:

  • Given any u ∈ {0; 1}n,

can efficiently compute f (u).

  • Nonzero s ∈ {0; 1}n.
  • f (u) = f (u ⊕ s) for all u.
  • f has no other collisions.

Goal: Figure out s. Traditional algorithm to find s: compute f for many inputs, hope to find collision. Simon’s algorithm finds s with ≈n quantum computations of f .

slide-67
SLIDE 67

22

Example of 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-68
SLIDE 68

22

Example of 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-69
SLIDE 69

22

Example of 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-70
SLIDE 70

22

Example of 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-71
SLIDE 71

22

Example of 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-72
SLIDE 72

22

Example of 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-73
SLIDE 73

22

Example of 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-74
SLIDE 74

22

Example of 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-75
SLIDE 75

22

Example of 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-76
SLIDE 76

22

Example of 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-77
SLIDE 77

22

Example of 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-78
SLIDE 78

22

Example of 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-79
SLIDE 79

22

Example of 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-80
SLIDE 80

22

Example of 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-81
SLIDE 81

22

Example of 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-82
SLIDE 82

22

Example of 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-83
SLIDE 83

22

Example of 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-84
SLIDE 84

22

Example of 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-85
SLIDE 85

22

Example of 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-86
SLIDE 86

23

Repeat to figure out 101.

slide-87
SLIDE 87

23

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-88
SLIDE 88

23

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-89
SLIDE 89

23

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-90
SLIDE 90

23

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-91
SLIDE 91

24

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-92
SLIDE 92

24

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-93
SLIDE 93

25

Start from uniform superposition

  • ver all n-bit strings u.
slide-94
SLIDE 94

25

Start from uniform superposition

  • ver all n-bit strings u.

Step 1: Set a ← b where bu = −au if f (u) = 0, bu = au otherwise. This is fast.

slide-95
SLIDE 95

25

Start from uniform superposition

  • ver all n-bit strings u.

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

slide-96
SLIDE 96

25

Start from uniform superposition

  • ver all n-bit strings u.

Step 1: Set a ← b where bu = −au if f (u) = 0, bu = au 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-97
SLIDE 97

25

Start from uniform superposition

  • ver all n-bit strings u.

Step 1: Set a ← b where bu = −au if f (u) = 0, bu = au 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-98
SLIDE 98

26

Normalized graph of u → au for an example with n = 12 after 0 steps:

−1.0 −0.5 0.0 0.5 1.0

slide-99
SLIDE 99

26

Normalized graph of u → au for an example with n = 12 after Step 1:

−1.0 −0.5 0.0 0.5 1.0

slide-100
SLIDE 100

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-101
SLIDE 101

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-102
SLIDE 102

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-103
SLIDE 103

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-104
SLIDE 104

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-105
SLIDE 105

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-106
SLIDE 106

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-107
SLIDE 107

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-108
SLIDE 108

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-109
SLIDE 109

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-110
SLIDE 110

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-111
SLIDE 111

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-112
SLIDE 112

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-113
SLIDE 113

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-114
SLIDE 114

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-115
SLIDE 115

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-116
SLIDE 116

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-117
SLIDE 117

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-118
SLIDE 118

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-119
SLIDE 119

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-120
SLIDE 120

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-121
SLIDE 121

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-122
SLIDE 122

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-123
SLIDE 123

26

Normalized graph of u → au 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-124
SLIDE 124

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-125
SLIDE 125

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-126
SLIDE 126

26

Normalized graph of u → au 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-127
SLIDE 127

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-128
SLIDE 128

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-129
SLIDE 129

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-130
SLIDE 130

26

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

−1.0 −0.5 0.0 0.5 1.0

slide-131
SLIDE 131

26

Normalized graph of u → au 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-132
SLIDE 132

27

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

slide-133
SLIDE 133

27

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

slide-134
SLIDE 134

27

u → au is completely described by a vector of two numbers (with fixed multiplicities): (1) au for roots u; (2) au for non-roots u. 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-135
SLIDE 135

28

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”.