Title: Jacob D. Biamonte
1Grovers Search
Jake Biamonte
Should be one in four search
- Jacob D. Biamonte
- biamonte_at_ieee.org
- Portland Quantum Logic Group
2Why is this important?
- This presentation shows clearly how to perform a
so called 1 in 4 search - We start out with the basics
1 in 4 search
3Pick 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.
4Properties of the oracle
Let f 0,12 ? 0,1 have the property that
there is exactly one x ? 0,12 for which f (x)
1
Goal find x ? 0,12 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
5A 1-4 search can chose between 4 oracles in one
iteration
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?)
6Time
?0?
X
f
H
H
X
M
H
?0?
X
X
M
H
H
H
H
H
?1?
M
H
H
This slide illustrates how the state of the
system is changed as it propagates through the
quantum network implementation of Grovers Search
algorithm.
7Time
?0?
X
f
H
H
X
M
H
?0?
X
X
M
H
H
H
H
H
?1?
M
H
H
??00? ?00? ?01? ?10? ?11?
??01? ?00? ?01? ?10? ?11?
??10? ?00? ?01? ?10? ?11?
??11? ?00? ?01? ?10? ?11?
After Hadamard the solution is known in Hilbert
space by having value -1. But it is hidded from us
The state corresponding to the input to the
oracle that has a output result of 1 is tagged
with a negative 1.
8QuIDDPro Script --- Density states
- grover4.qpbiamonte_at_ieee.orgstate
cb("001")cb("001")'state hadamard(3)stateha
damard(3)'echo("define a needle in a
haystack") Oracle 1 xi (1,1)
------ ------
--()--oracle
cu_gate(sigma_x(1), "c1c2x3", 3)state
oraclestateoracle'echo("apply CPS")state
kron(hadamard(2), identity(1))statekron(hadamard
(2), identity(1))'state kron(sigma_x(2),
identity(1))statekron(sigma_x(2),
identity(1))'state cu_gate(hadamard(1), "x2",
3)statecu_gate(hadamard(1), "x2", 3)'state
cu_gate(sigma_x(1), "c1x2", 3)statecu_gate(sigma
_x(1), "c1x2", 3)'state cu_gate(hadamard(1),
"x2", 3)statecu_gate(hadamard(1), "x2",
3)'state kron(sigma_x(2), identity(1))statekr
on(sigma_x(2), identity(1))'state
hadamard(3)statehadamard(3
9QuIDDPro Script --- State Vector
- state cb("001")state hadamard(3)stateecho
("define a needle in a haystack")
Oracle 1 xi (1,1) ------
------ --()--oracle
cu_gate(sigma_x(1), "c1c2x3", 3)state
oraclestateecho("apply CPS")state
kron(hadamard(2), identity(1))statestate
kron(sigma_x(2), identity(1))statestate
cu_gate(hadamard(1), "x2", 3)statestate
cu_gate(sigma_x(1), "c1x2", 3)statestate
cu_gate(hadamard(1), "x2", 3)statestate
kron(sigma_x(2), identity(1))statestate
hadamard(3)state
10We found Grover!
11(No Transcript)