Download presentation
Presentation is loading. Please wait.
1
Grovers Search Jacob D. Biamonte biamonte@ieee.org Portland Quantum Logic Group Jake Biamonte Should be “one in four search”
2
1 in 4 search Why is this important? This presentation shows clearly how to perform a so called 1 in 4 search We start out with the basics
3
Pick your needle and I will find you a haystack The point of this slide is to show examples of 4 different oracles. Grovers search can tell between these oracles in a single iteration, classically we would need 3 iterations.
4
Let f : {0,1} 2 {0,1} have the property that there is exactly one x {0,1} 2 for which f (x) = 1 Goal: find x {0,1} 2 for which f (x) = 1 Classically: 3 queries are necessary Quantumly: ? Only after 3 tests can we determine with certainty that the oracles is 1 for only a single input value x Properties of the oracle
5
f x1x1 x2x2 yy x2x2 x1x1 y f ( x 1,x 2 ) ( ( –1 ) f( 00 ) 00 + ( –1 ) f( 01 ) 01 + ( –1 ) f( 10 ) 10 + ( –1 ) f( 11 ) 11 )( 0 – 1 ) Output state: Black box for 1-4 search: Start by creating phases in superposition of all inputs to f : Input state to query: ( 00 + 01 + 10 + 11 )( 0 – 1 ) f H H H 11 00 00 A 1-4 search can chose between 4 oracles in one iteration
6
f H H H 11 00 00 H H H H H X X HH X X M M M Time state = 0 1 0 0 0 0 0 0 state = 0.353 -0.353 0.353 -0.353 0.353 -0.353 0.353 -0.353 state = 0.353 -0.353 0.353 -0.353 0.353 -0.353 -0.353 0.353 state = -0.353 0.353 0.353 -0.353 0.353 -0.353 0.353 -0.353 state = 0 0 -0.5 0.5 0.5 -0.5 0 0 state = 0 0 -0.5 0.5 0 0 0.5 -0.5 state = -0.353 0.353 0.353 -0.353 0.353 -0.353 -0.353 0.353 state = 0 0 0 0 0 0 0 -1 state = 0 0 0 0 0 0 0 1 This slide illustrates how the state of the system is changed as it propagates through the quantum network implementation of Grovers Search algorithm.
7
ψ 00 = – 00 + 01 + 10 + 11 ψ 01 = + 00 – 01 + 10 + 11 ψ 10 = + 00 + 01 – 10 + 11 ψ 11 = + 00 + 01 + 10 – 11 f H H H 11 00 00 H H H H H X X HH X X M M M Time The state corresponding to the input to the oracle that has a output result of 1 is ‘tagged’ with a negative 1. After Hadamard the solution is “known” in Hilbert space by having value -1. But it is hidded from us
8
QuIDDPro Script --- Density states #grover4.qp #biamonte@ieee.org # state = cb("001")*cb("001")' state = hadamard(3)*state*hadamard(3)' echo("define a needle in a haystack:") ############# # Oracle 1 xi = (1,1) # ---*--- # | # ---*--- # | # --(+)-- ############# oracle = cu_gate(sigma_x(1), "c1c2x3", 3); state = oracle*state*oracle' echo("apply CPS:") state = kron(hadamard(2), identity(1))*state*kron(hadamard(2), identity(1))' state = kron(sigma_x(2), identity(1))*state*kron(sigma_x(2), identity(1))' state = cu_gate(hadamard(1), "x2", 3)*state*cu_gate(hadamard(1), "x2", 3)' state = cu_gate(sigma_x(1), "c1x2", 3)*state*cu_gate(sigma_x(1), "c1x2", 3)' state = cu_gate(hadamard(1), "x2", 3)*state*cu_gate(hadamard(1), "x2", 3)' state = kron(sigma_x(2), identity(1))*state*kron(sigma_x(2), identity(1))' state = hadamard(3)*state*hadamard(3 #biamonte@ieee.org
9
QuIDDPro Script --- State Vector state = cb("001") state = hadamard(3)*state echo("define a needle in a haystack:") ############# # Oracle 1 xi = (1,1) # ---*--- # | # ---*--- # | # --(+)-- ############# oracle = cu_gate(sigma_x(1), "c1c2x3", 3); state = oracle*state echo("apply CPS:") state = kron(hadamard(2), identity(1))*state state = kron(sigma_x(2), identity(1))*state state = cu_gate(hadamard(1), "x2", 3)*state state = cu_gate(sigma_x(1), "c1x2", 3)*state state = cu_gate(hadamard(1), "x2", 3)*state state = kron(sigma_x(2), identity(1))*state state = hadamard(3)*state
10
We found Grover!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.