Successfully reported this slideshow.

# Quantum Processes in Graph Computing

16

Share   ×
1 of 142
1 of 142

# Quantum Processes in Graph Computing

16

Share

This presentation was given on January 17, 2016 at the GraphDay conference in Austin, Texas. The slides demonstrate the use of wave dynamics in graph structures. Moreover, they demonstrate how to implement quantum processes on graph structures.

There is an associated article available at http://arxiv.org/abs/1511.06278 (Quantum Walks with Gremlin).

This presentation was given on January 17, 2016 at the GraphDay conference in Austin, Texas. The slides demonstrate the use of wave dynamics in graph structures. Moreover, they demonstrate how to implement quantum processes on graph structures.

There is an associated article available at http://arxiv.org/abs/1511.06278 (Quantum Walks with Gremlin).

## More Related Content

### Related Books

Free with a 14 day trial from Scribd

See all

### Related Audiobooks

Free with a 14 day trial from Scribd

See all

### Quantum Processes in Graph Computing

1. 1. Quantum Processes in Graph Computing Dr. Marko A. Rodriguez DataStax and Apache TinkerPop Rodriguez, M.A., Watkins, J.H., "Quantum Walks with Gremlin," GraphDay '16, pp. 1-16, Austin, Texas, January 2016. http://arxiv.org/abs/1511.06278
2. 2. Part 1 Wave Dynamics in Graphs
3. 3. 0.0 -1.0 1.0
4. 4. 0.0 -1.0 1.0
5. 5. 0.0 -1.0 1.0
6. 6. 0.0 -1.0 1.0
7. 7. 0.0 -1.0 1.0
8. 8. 0.0 -1.0 1.0
9. 9. 0.0 -1.0 1.0
10. 10. 0.0 -1.0 1.0
11. 11. 0.0 -1.0 1.0
12. 12. 0.0 -1.0 1.0
13. 13. 0.0 -1.0 1.0
14. 14. 0.0 -1.0 1.0
15. 15. 0.0 -1.0 1.0
16. 16. However, vertices don't "move." The graph topology is the only space. There is no "space" outside the graph. "Then how do you model an oscillating vertex?" By computing the amount of "energy" at the vertex over time. "But traversers are indivisible objects! Energy must be able to be divided indeﬁnitely and take negative values." Lets look at Gremlin Sacks.
17. 17. Gremlin Sacks (a data structure local to the traverser) (each traverser can carry an object along its way) The traverser is not divisible, but that double ﬂoating point number in his sack is!
18. 18. 1.0 0.0 -1.0 1.0 Don't worry about the algorithm, just watch the visualization for now.
19. 19. -0.5 0.5 0.0 -1.0 1.0 Don't worry about the algorithm, just watch the visualization for now.
20. 20. -0.5 0.250.25 0.0 -1.0 1.0 Don't worry about the algorithm, just watch the visualization for now.
21. 21. -0.125 0.125-0.3750.375 0.0 -1.0 1.0 Don't worry about the algorithm, just watch the visualization for now.
22. 22. 0.375-0.3125 -0.3125 0.0 -1.0 1.0 Don't worry about the algorithm, just watch the visualization for now.
23. 23. 0.15625 -0.156250.34375-0.34375 0.0 -1.0 1.0 Don't worry about the algorithm, just watch the visualization for now.
24. 24. 1 2 30 4 5 6 The graph.
25. 25. 1 2 30 4 5 6 1.0 g.withSack(1.0,sum).V(3). repeat( union( sack(mult).by(-0.5).out('left'), sack(mult).by(0.5).out('right') ) ).times(3) An initial energy of 1.0 perturbs the graph.
26. 26. 1 2 30 4 5 6 g.withSack(1.0,sum).V(3). repeat( union( sack(mult).by(-0.5).out('left'), sack(mult).by(0.5).out('right') ) ).times(3) -0.5 0.51.0 out('left') out('right') The energy diffuses left and right along the graph.
27. 27. 1 2 30 4 5 6 g.withSack(1.0,sum).V(3). repeat( union( sack(mult).by(-0.5).out('left'), sack(mult).by(0.5).out('right') ) ).times(3) -0.5 0.5 1 tim e The total energy in the system is always 1.
28. 28. Energy waves reverberate and thus, prior "left energy" can go right. 1 2 30 4 5 6 g.withSack(1.0,sum).V(3). repeat( union( sack(mult).by(-0.5).out('left'), sack(mult).by(0.5).out('right') ) ).times(3) -0.5 0.250.25 -0.5 0.5 out('left') out('right') out('left') out('right')
29. 29. 1 2 30 4 5 6 g.withSack(1.0,sum).V(3). repeat( union( sack(mult).by(-0.5).out('left'), sack(mult).by(0.5).out('right') ) ).times(3) -0.5 0.250.25 -0.5 0.5 out('left') out('right') out('left') out('right') (-0.5 * 0.5) + (0.5 * -0.5) -0.5 -0.25 + -0.25 Energy constructively and destructively interferes.
30. 30. 1 2 30 4 5 6 g.withSack(1.0,sum).V(3). repeat( union( sack(mult).by(-0.5).out('left'), sack(mult).by(0.5).out('right') ) ).times(3) -0.5 0.250.25 2 tim es
31. 31. 1 2 30 4 5 6 g.withSack(1.0,sum).V(3). repeat( union( sack(mult).by(-0.5).out('left'), sack(mult).by(0.5).out('right') ) ).times(3) -0.125 0.125-0.3750.375 -0.5 0.250.25 out('left') out('left') out('left')out('right') out('right') out('right')
32. 32. 1 2 30 4 5 6 g.withSack(1.0,sum).V(3). repeat( union( sack(mult).by(-0.5).out('left'), sack(mult).by(0.5).out('right') ) ).times(3) 3 tim es -0.125 0.125-0.3750.375
33. 33. A wave is a diffusion of energy within a space. The space is the graph. The energy is contained within the traversers (via their sacks). When a traverser splits, its sack energy is divided amongst its children traversers' sacks. When traversers merge, their sack energy is summed to a single traverser sack. If two energy sacks with the same parity are merged, constructive interference. If a negative and a positive energy sack are merged, destructive interference.
34. 34. Part 2 Quantum Mechanics via the Copenhagen Interpretation
35. 35. 1 2 3 0 4 5 Space = Graph
36. 36. Particle = Traverser
37. 37. 1 2 3 0 4 5 gremlin> g.V(0) ==>v
38. 38. 1 2 3 0 4 5 gremlin> g.V(0).out() ==>v
39. 39. 1 2 3 0 4 5 gremlin> g.V(0).out().out() ==>?? ? ? "Two outgoing adjacent vertices, what should I do?"
40. 40. 1 2 3 0 4 5 gremlin> g.V(0).out().out() ==>v ==>v
41. 41. 1 2 3 0 4 5 gremlin> g.V(0).out().out() ==>v ==>v 2 particles are created from 1. In graph computing: "There are two legal paths, so take both." In physical computing: "Violates conservation of energy law (matter is created)."
42. 42. 1 2 3 0 4 5 gremlin> g.V(0).out().out().out() ==>v ==>v In graph computing: "Two length 3 paths lead to vertex 4." In physical computing: "The twin particles coexist at vertex 4."
43. 43. 1 2 3 0 4 5 gremlin> g.V(0).out().out().out().out() ==>v ==>v In graph computing: "Two length 3 paths lead to vertex 5." In physical computing: "The twin particles coexist at vertex 5."
44. 44. 1 2 3 0 4 5 What does a physical particle do when it is faced with a choice? ? ?
45. 45. 1 2 3 0 4 5 The particle takes both options! The indivisible "particle" divides!
46. 46. 1 2 3 0 4 5 Two particles can't be "seen," but we know both options are taken. When we try to see both "particles", they instantly become one particle. "Why do you say the particle took both paths? If you ﬁnd it only on a single path, then wasn't only one path taken?" Wave interference! Explanation coming soon... "Wave Function Collapse"
47. 47. The smallest "quanta" allowed is the particle. Only one particle is ever directly observed. However, prior to observation, the particle splits into pieces (a wave). When we observe the system, the pieces becomes one again (a particle). Other Interpretations of Quantum Mechanics Multi-World Interpretation Pilot Wave Interpretation photon electron bacteria! an isolated system
48. 48. Part 3 The Quantum Wave Function
49. 49. Classical Particle (A single unique "thing" exists) The Particle Diffuses over Space as a Wave (The particle is in a quantum superposition) The Wave Function is Perturbed (e.g., light tries to "see" the particle) The Wave Function Collapses to a Classical Particle (The wave turns into a particle)
50. 50. Classical Particle (A single unique "thing" exists) The Particle Diffuses over Space as a Wave (The particle is in a quantum superposition) The Wave Function is Perturbed (e.g., light tries to "see" the particle) The Wave Function Collapses to a Classical Particle (The wave turns into a particle) ObservedObservedInferred
51. 51. 48 49 5047 51 52 53 A 101 vertex line graph with the center being vertex 50. Space
52. 52. Classical Initial Step The particle has a deﬁnite location and a spin/potential to the left. 48 49 5047 51 52 53 [1, 0] [1,0]50 left-ness right-ness For each option (degree of freedom), we need a vector component. In the article, we call it "traversal superposition."
53. 53. 0.00.20.40.60.81.0 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 48 49 5047 51 52 53 The probability of seeing the particle at vertex 50 is 100%. [1, 0] 12 + 02 = 1 Wave Function to Probability Distribution
54. 54. Coin Step 48 49 5047 51 52 53 H = 1 √ 2 1 1 1 −1 The particle's spin is put into superposition. [1, 0] → 1 √ 2 , 1 √ 2 Ithastheoptiontogo leftorrightsoitgoesboth!
55. 55. Coin Step 48 49 5047 51 52 53 H = 1 √ 2 1 1 1 −1 The particle's spin is put into superposition. [1, 0] → 1 √ 2 , 1 √ 2 "right particles" going right ﬂip their sign. "left particles" going left or right keep their sign.
56. 56. Coin Step 48 49 5047 51 52 53 H = 1 √ 2 1 1 1 −1 The particle's spin is put into superposition. [1, 0] → 1 √ 2 , 1 √ 2 1 √ 2 1 1 1 −1 · [1, 0] = 1√ 2 1√ 2 1√ 2 − 1√ 2 · [1, 0] = 1 √ 2 , 1 √ 2
57. 57. Coin Step 48 49 5047 51 52 53 H = 1 √ 2 1 1 1 −1 The particle's spin is put into superposition. 1 · 1 √ 2 + 0 · 1 √ 2 , 1 · 1 √ 2 + 0 · − 1 √ 2 = 1 √ 2 , 1 √ 2 [1, 0] → 1 √ 2 , 1 √ 2 1 √ 2 1 1 1 −1 · [1, 0] = 1√ 2 1√ 2 1√ 2 − 1√ 2 · [1, 0] = 1 √ 2 , 1 √ 2
58. 58. Coin Step 48 49 5047 51 52 53 1 √ 2 , 1 √ 2
59. 59. The "particle" spinning left goes left and the "particle" spinning right goes right. Shift Step 48 49 5047 51 52 53 1 √ 2 , 0 0, 1 √ 2 1 √ 2 , 1 √ 2
60. 60. 48 49 5047 51 52 53 1 √ 2 , 0 0, 1 √ 2 Shift Step
61. 61. P(v) = |c0|2 + |c1|2 48 49 5047 51 52 53 1 √ 2 , 0 0, 1 √ 2 1 √ 2 2 + 02 = 0.5 02 + 1 √ 2 2 = 0.5 Wave Function to Probability Distribution The probability of locating the classical particle each vertex is a function of the total wave amplitude at that vertex. 50%-chance 50%-chance
62. 62. 0.00.10.20.30.40.5 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 48 49 5047 51 52 53 1 √ 2 , 0 0, 1 √ 2 1 √ 2 2 + 02 = 0.5 02 + 1 √ 2 2 = 0.5 The probability of seeing the particle at vertex 49 or 51 is 50%. Wave Function to Probability Distribution
63. 63. 48 49 5047 51 52 53 H = 1 √ 2 1 1 1 −1 Each "particles'" spin is put into superposition. Coin Step 1 2 , 1 2 1 2 , − 1 2
64. 64. 48 49 5047 51 52 53 Shift Step 1 2 , 1 2 The "particles" spinning left go left and the "particles" spinning right go right. 0, − 1 2 1 2 , 0 1 2 , 1 2 1 2 , − 1 2
65. 65. 48 49 5047 51 52 53 Shift Step 1 2 , 1 2 0, − 1 2 1 2 , 0 Constructive Interference
66. 66. 0.00.10.20.30.40.5 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 48 49 5047 51 52 53 1 2 , 1 2 0, − 1 2 1 2 , 0 1 2 2 + 02 = 1 4 1 2 2 + 1 2 2 = 1 2 02 + − 1 2 2 = 1 4 Wave Function to Probability Distribution
67. 67. 48 49 5047 51 52 53 Coin Step H = 1 √ 2 1 1 1 −1 The "particles'" spin is put into superposition. 1 2 √ 2 , 1 2 √ 2 − 1 2 √ 2 , 1 2 √ 2 1 √ 2 , 0
68. 68. 48 49 5047 51 52 53 Shift Step The "particles" spinning left go left and the "particles" spinning right go right. 1 2 √ 2 , 0 1 √ 2 , 1 2 √ 2 − 1 2 √ 2 , 0 0, 1 2 √ 2 Destructive InterferenceConstructive Interference
69. 69. Wave Function to Probability Distribution 0.00.10.20.30.40.50.6 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 48 49 5047 51 52 53 1 2 √ 2 , 0 1 √ 2 , 1 2 √ 2 − 1 2 √ 2 , 0 0, 1 2 √ 2 1 2 √ 2 2 + 02 = 1 8 02 + 1 2 √ 2 2 = 1 8 − 1 2 √ 2 2 + 02 = 1 8 1 √ 2 2 + 1 2 √ 2 2 = 5 8
70. 70. 0.00.10.20.30.40.50.6 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function to Probability Distribution 48 49 5047 51 52 53
71. 71. 0.00.10.20.30.40.5 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function to Probability Distribution 48 49 5047 51 52 53
72. 72. 0.00.10.20.30.4 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function to Probability Distribution 48 49 5047 51 52 53
73. 73. 0.000.050.100.150.200.250.30 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function to Probability Distribution 48 49 5047 51 52 53
74. 74. 0.00.10.20.30.4 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function to Probability Distribution 48 49 5047 51 52 53
75. 75. 0.00.10.20.30.4 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function to Probability Distribution 48 49 5047 51 52 53
76. 76. 0.00.10.20.30.4 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function to Probability Distribution 48 49 5047 51 52 53
77. 77. 0.00.10.20.30.4 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function to Probability Distribution 48 49 5047 51 52 53
78. 78. 0.000.050.100.150.200.250.30 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function to Probability Distribution 48 49 5047 51 52 53
79. 79. 0.000.050.100.150.200.25 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function to Probability Distribution 48 49 5047 51 52 53
80. 80. 0.000.050.100.150.200.250.30 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function to Probability Distribution 48 49 5047 51 52 53
81. 81. 0.00.10.20.3 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function to Probability Distribution 48 49 5047 51 52 53
82. 82. Fast forward to iteration 50.
83. 83. 0.000.050.100.15 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function to Probability Distribution 13 14 1512 16 17 18
84. 84. 0.000.050.100.15 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function is Perturbed by Light 13 14 1512 16 17 18
85. 85. 0.000.050.100.15 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function Collapse 13 14 1512 16 17 18 sample
86. 86. Classical Particle 13 14 1512 16 17 18 [1, 0] 0.00.20.40.60.81.0 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97
87. 87. 0.000.050.100.15 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function Collapse 13 14 1512 16 17 18 Could have been thisvertex. Again,itsa probabilitydistribution.
88. 88. 0.000.050.100.15 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 Wave Function Collapse 13 14 1512 16 17 18 Could not be at this vertex because there is no wave energy at that vertex.
89. 89. g.withSack([1,0],sackSum).V(50). repeat( sack(hadamard). union( sack(project).by(constant([1,0])).out('left'), sack(project).by(constant([0,1])).out('right') ) ).times(50). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) 48 49 5047 51 52 53
90. 90. 48 49 5047 51 52 53 [1, 0] g.withSack([1,0],sackSum).V(50). repeat( sack(hadamard). union( sack(project).by(constant([1,0])).out('left'), sack(project).by(constant([0,1])).out('right') ) ).times(50). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) Classical Initial Step sackSum = { a,b -> [a + b,a + b] }
91. 91. hadamard = { a,b -> [(1/Math.sqrt(2)) * (a + a), (1/Math.sqrt(2)) * (a - a)] } g.withSack([1,0],sackSum).V(50). repeat( sack(hadamard). union( sack(project).by(constant([1,0])).out('left'), sack(project).by(constant([0,1])).out('right') ) ).times(50). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) Coin Step H = 1 √ 2 1 1 1 −1 48 49 5047 51 52 53 1 √ 2 , 1 √ 2
92. 92. project = { a,b -> [a * b, a * b] } g.withSack([1,0],sackSum).V(50). repeat( sack(hadamard). union( sack(project).by(constant([1,0])).out('left'), sack(project).by(constant([0,1])).out('right') ) ).times(50). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) Shift Step 48 49 5047 51 52 53 1 √ 2 , 0 0, 1 √ 2 1 √ 2 , 1 √ 2
93. 93. g.withSack([1,0],sackSum).V(50). repeat( sack(hadamard). union( sack(project).by(constant([1,0])).out('left'), sack(project).by(constant([0,1])).out('right') ) ).times(50). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) Diffuse the wave function for 50 steps 48 49 5047 51 52 53
94. 94. 0.000.050.100.15 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 norm = { Math.pow(it.get(),2) + Math.pow(it.get(),2) } g.withSack([1,0],sackSum).V(50). repeat( sack(hadamard). union( sack(project).by(constant([1,0])).out('left'), sack(project).by(constant([0,1])).out('right') ) ).times(50). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) Wave Function to Probability Distribution 13 14 1512 16 17 18 P(v) = |c0|2 + |c1|2
95. 95. g.withSack([1,0],sackSum).V(50). repeat( sack(hadamard). union( sack(project).by(constant([1,0])).out('left'), sack(project).by(constant([0,1])).out('right') ) ).times(50). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) Wave Function Collapse (Classical Particle Manifested) 13 14 1512 16 17 18 0.000.050.100.15 vertices probability 0 4 8 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 sample
96. 96. g.withSack([1,0],sackSum).V(50). repeat( sack(hadamard). union( sack(project).by(constant([1,0])).out('left'), sack(project).by(constant([0,1])).out('right') ) ).times(50). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) A Quantum Walk on a Line with Gremlin
97. 97. H = 1 √ 2 1 1 1 −1 Y = 1 √ 2 1 i i 1 Balanced Unitary OperatorUnbalanced Unitary Operator 0.000.050.100.15 vertices probability 0 6 12 20 28 36 44 52 60 68 76 84 92 100 0.000.020.040.060.080.10 vertices probability 0 6 12 20 28 36 44 52 60 68 76 84 92 100 Any energy split operator can be used as long as: 1. The operation conserves the total energy in the system. 2. It is possible to reverse the operation. In general, a unitary operator is used to diffuse energy. complexnumbers i2 =−1 U · U∗ = I nofriction noinformation loss
98. 98. The probability of seeing the particle at a particular vertex after 50 iterations for both a quantum walk and a classical walk. Quantum walks can explore more graph in a shorter amount of time! 0.000.020.040.060.080.10 vertices probability 0 6 12 20 28 36 44 52 60 68 76 84 92 100 √ 50 = 7.07 50 = 50 √ n n Y = 1 √ 2 1 i i 1
99. 99. Part 4 The Double Slit Experiment
100. 100. Thomas Young (1773-1829) Question "Is light a wave or a particle?" continuous light source double-slit screen photoelectric ﬁlm
101. 101. Thomas Young (1773-1829) Hypothesis "If light is a wave, then the ﬁlm will show a constructive and destructive interference pattern." continuous light source double-slit screen photoelectric ﬁlm
102. 102. Thomas Young (1773-1829) Result "Light must be a wave because it has interference and refraction patterns like other natural waves such as water waves." continuous light source double-slit screen photoelectric ﬁlm
103. 103. G. I. Taylor (1886-1975) single photon light source double-slit screen photoelectric ﬁlm Question "What happens when only a single photon of light is emitted?" The most indivisible amount of light.
104. 104. G. I. Taylor (1886-1975) single photon light source double-slit screen photoelectric ﬁlm Hypothesis "The photons must act like bullets and hit directly behind the slits." 50% chance 50% chance
105. 105. G. I. Taylor (1886-1975) single photon light source double-slit screen photoelectric ﬁlm Experiment "Shoot photon #1!"
106. 106. G. I. Taylor (1886-1975) single photon light source double-slit screen photoelectric ﬁlm Experiment "Shoot photon #2!"
107. 107. G. I. Taylor (1886-1975) single photon light source double-slit screen photoelectric ﬁlm Experiment "Shoot photon #3!"
108. 108. G. I. Taylor (1886-1975) single photon light source double-slit screen photoelectric ﬁlm Experiment "Shoot photon #4!"
109. 109. Fast forward to photon number 20.
110. 110. G. I. Taylor (1886-1975) single photon light source double-slit screen photoelectric ﬁlm Experiment "Shoot photon #20!"
111. 111. G. I. Taylor (1886-1975) single photon light source double-slit screen photoelectric ﬁlm Result "A single quantum of light (a photon) turns into a wave after emission and then is localized back to a particle at the ﬁlm based on the wave function."
112. 112. single photon light source double-slit screen photoelectric ﬁlm
113. 113. Classical particle.
114. 114. Particle becomes a wave.
115. 115. "Particle" takes both options.
116. 116. Wave interference.
117. 117. Probability distribution generated from the wave function.
118. 118. Wave function collapses back to a classical particle.
119. 119. 0.0e+001.0e-052.0e-05 screen vertices probability 0 2 4 6 8 10 12 14 16 18 20 Com puted using G rem lin
120. 120. g.withSack([0,0,1,0],sackSum).V(10). repeat( sack(grover). union( choose(out('left'), out('left').sack(project).by(constant([1,0,0,0])), identity().sack(project).by(constant([1,0,0,0])). sack(flip).by(constant("lr"))), choose(out('right'), out('right').sack(project).by(constant([0,1,0,0])), identity().sack(project).by(constant([0,1,0,0])). sack(flip).by(constant("lr"))), choose(out('up'), out('up').sack(project).by(constant([0,0,1,0])), identity().sack(project).by(constant([0,0,1,0])). sack(flip).by(constant("ud"))), choose(out('down'), out('down').sack(project).by(constant([0,0,0,1])), identity().sack(project).by(constant([0,0,0,1])). sack(flip).by(constant("ud"))))). times(22). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values)
121. 121. g.withSack([0,0,1,0],sackSum).V(10). repeat( sack(grover). union( choose(out('left'), out('left').sack(project).by(constant([1,0,0,0])), identity().sack(project).by(constant([1,0,0,0])). sack(flip).by(constant("lr"))), choose(out('right'), out('right').sack(project).by(constant([0,1,0,0])), identity().sack(project).by(constant([0,1,0,0])). sack(flip).by(constant("lr"))), choose(out('up'), out('up').sack(project).by(constant([0,0,1,0])), identity().sack(project).by(constant([0,0,1,0])). sack(flip).by(constant("ud"))), choose(out('down'), out('down').sack(project).by(constant([0,0,0,1])), identity().sack(project).by(constant([0,0,0,1])). sack(flip).by(constant("ud"))))). times(22). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) Four degrees of freedom means you have a four entry energy vector.
122. 122. g.withSack([0,0,1,0],sackSum).V(10). repeat( sack(grover). union( choose(out('left'), out('left').sack(project).by(constant([1,0,0,0])), identity().sack(project).by(constant([1,0,0,0])). sack(flip).by(constant("lr"))), choose(out('right'), out('right').sack(project).by(constant([0,1,0,0])), identity().sack(project).by(constant([0,1,0,0])). sack(flip).by(constant("lr"))), choose(out('up'), out('up').sack(project).by(constant([0,0,1,0])), identity().sack(project).by(constant([0,0,1,0])). sack(flip).by(constant("ud"))), choose(out('down'), out('down').sack(project).by(constant([0,0,0,1])), identity().sack(project).by(constant([0,0,0,1])). sack(flip).by(constant("ud"))))). times(22). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) Bottom-middle vertex. The single photon light source.
123. 123. A 4x4 unitary operator called the Grover coin. R = 1 2     −1 1 1 1 1 −1 1 1 1 1 −1 1 1 1 1 −1     g.withSack([0,0,1,0],sackSum).V(10). repeat( sack(grover). union( choose(out('left'), out('left').sack(project).by(constant([1,0,0,0])), identity().sack(project).by(constant([1,0,0,0])). sack(flip).by(constant("lr"))), choose(out('right'), out('right').sack(project).by(constant([0,1,0,0])), identity().sack(project).by(constant([0,1,0,0])). sack(flip).by(constant("lr"))), choose(out('up'), out('up').sack(project).by(constant([0,0,1,0])), identity().sack(project).by(constant([0,0,1,0])). sack(flip).by(constant("ud"))), choose(out('down'), out('down').sack(project).by(constant([0,0,0,1])), identity().sack(project).by(constant([0,0,0,1])). sack(flip).by(constant("ud"))))). times(22). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values)
124. 124. g.withSack([0,0,1,0],sackSum).V(10). repeat( sack(grover). union( choose(out('left'), out('left').sack(project).by(constant([1,0,0,0])), identity().sack(project).by(constant([1,0,0,0])). sack(flip).by(constant("lr"))), choose(out('right'), out('right').sack(project).by(constant([0,1,0,0])), identity().sack(project).by(constant([0,1,0,0])). sack(flip).by(constant("lr"))), choose(out('up'), out('up').sack(project).by(constant([0,0,1,0])), identity().sack(project).by(constant([0,0,1,0])). sack(flip).by(constant("ud"))), choose(out('down'), out('down').sack(project).by(constant([0,0,0,1])), identity().sack(project).by(constant([0,0,0,1])). sack(flip).by(constant("ud"))))). times(22). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) Diffuse the wave in all four directions on the lattice.
125. 125. g.withSack([0,0,1,0],sackSum).V(10). repeat( sack(grover). union( choose(out('left'), out('left').sack(project).by(constant([1,0,0,0])), identity().sack(project).by(constant([1,0,0,0])). sack(flip).by(constant("lr"))), choose(out('right'), out('right').sack(project).by(constant([0,1,0,0])), identity().sack(project).by(constant([0,1,0,0])). sack(flip).by(constant("lr"))), choose(out('up'), out('up').sack(project).by(constant([0,0,1,0])), identity().sack(project).by(constant([0,0,1,0])). sack(flip).by(constant("ud"))), choose(out('down'), out('down').sack(project).by(constant([0,0,0,1])), identity().sack(project).by(constant([0,0,0,1])). sack(flip).by(constant("ud"))))). times(22). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) If there is a "wall," reﬂect the energy back. No decoherence/friction. The article presents the details around reﬂection.
126. 126. g.withSack([0,0,1,0],sackSum).V(10). repeat( sack(grover). union( choose(out('left'), out('left').sack(project).by(constant([1,0,0,0])), identity().sack(project).by(constant([1,0,0,0])). sack(flip).by(constant("lr"))), choose(out('right'), out('right').sack(project).by(constant([0,1,0,0])), identity().sack(project).by(constant([0,1,0,0])). sack(flip).by(constant("lr"))), choose(out('up'), out('up').sack(project).by(constant([0,0,1,0])), identity().sack(project).by(constant([0,0,1,0])). sack(flip).by(constant("ud"))), choose(out('down'), out('down').sack(project).by(constant([0,0,0,1])), identity().sack(project).by(constant([0,0,0,1])). sack(flip).by(constant("ud"))))). times(22). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) As before, generate the probability distribution and sample it (i.e. collapse the wave form).
127. 127. g.withSack([0,0,1,0],sackSum).V(10). repeat( sack(grover). union( choose(out('left'), out('left').sack(project).by(constant([1,0,0,0])), identity().sack(project).by(constant([1,0,0,0])). sack(flip).by(constant("lr"))), choose(out('right'), out('right').sack(project).by(constant([0,1,0,0])), identity().sack(project).by(constant([0,1,0,0])). sack(flip).by(constant("lr"))), choose(out('up'), out('up').sack(project).by(constant([0,0,1,0])), identity().sack(project).by(constant([0,0,1,0])). sack(flip).by(constant("ud"))), choose(out('down'), out('down').sack(project).by(constant([0,0,0,1])), identity().sack(project).by(constant([0,0,0,1])). sack(flip).by(constant("ud"))))). times(22). group().by(id).by(sack().map(norm)). unfold().sample(1).by(values) A Quantum Walk on a Bounded Lattice with Gremlin
128. 128. Step 0
129. 129. x-axis vertices y-axisvertices 5 10 15 20 5 10 15 20 Step 22
130. 130. 0.0e+001.0e-052.0e-05 screen vertices probability 0 2 4 6 8 10 12 14 16 18 20 x-axis vertices y-axisvertices 5 10 15 20 5 10 15 20 Step 22
131. 131. Part 5 Quantum Computing
132. 132. In classical computing, a bit is either 0 or 1. 0 [1, 0] 1 In quantum computing, a qubit can be 0, 1, or a superposition of both. 0 [0, 1] 1 1 √ 2 , − 1 √ 2
133. 133. NOT In classical computing, a gate takes a {0,1}* and outputs {0,1}*. 0 1 In quantum computing, a quantum gate takes a superposition of {0,1}* and outputs a superposition of {0,1}*. NOT X = 0 1 1 0 1 √ 2 , − 1 √ 2 − 1 √ 2 , 1 √ 2 f(0)→ 1 f(0,1)→ 1,0 Two function evaluations forthe costofone!
134. 134. U Every quantum gate is a unitary operator. U · U∗ = I Not all gates have to be the same operator. YH H = 1 √ 2 1 1 1 −1 Y = 1 √ 2 1 i i 1 H Y RH Gates are connected by "wires." R = 1 2     −1 1 1 1 1 −1 1 1 1 1 −1 1 1 1 1 −1     R 2-qubits! Its all just vertices and edges!
135. 135. A quantum algorithm (circuit) can evaluate all possible inputs at once.breadth-ﬁrst search depth-ﬁrst search The algorithm's purpose is to guide the wave function to yield the correct answer to the problem with a high-probability (near 100%) at the time of sampling (i.e. wave function collapse). 5-qubit register, where each qubit is both a 0 and 1 (thus, all 32 possible states at once). 1 0 1 0 0 We can never observe a superposition of outputs. Thus, our quantum algorithms must ensure wave collapse to the correct classical state. * Read about the pilot-wave interpretation of quantum mechanics. Breadth-ﬁrst memory requirements not needed! * Read about the multi-world interpretation of quantum mechanics. Depth-ﬁrst speed enabled!
136. 136. breadth-ﬁrst search depth-ﬁrst search 1 0 1 0 0 0.03 0 1 0 1 All 32 states/values exist simultaneously. Only one state/value can exist at observation. 1/32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 25 = 32 Total wave energy is split equally amongst all states/values. If the wave function collapses at this point in time, only one number (0-31) will manifest itself in reality with each being equally likely. A quantum algorithm leverages simultaneous states, but can ultimately only yield one output state (a collapsed wave). Thus, if you don't want a random answer, the algorithm must focus the wave energy on the correct solution. Waves are controlled via constructive and destructive interference as the various parallel computations can interact with one another. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 0 1 0 0
137. 137. + Quantum Circuit Graph Quantum Wave Function Traversal Quantum Graph Computing Structure Process U U U
138. 138. Fin. Rodriguez, M.A., Watkins, J.H., "Quantum Walks with Gremlin," GraphDay '16, pp. 1-16, Austin, Texas, January 2016. http://arxiv.org/abs/1511.06278