Quantum Speedups DoRon Motter August 14, 2001
Introduction Two main approaches are known which produce fast Quantum Algorithms The first, and main approach is the Quantum Fourier Transform –This is used in number factoring, discrete logarithm, and other algorithms The second approach is Grover’s search
Notation Let 0.j 1 j 2 j 3 …= j 1 /2+j 2 /4+j 3 /8… H n denote taking the tensor product n times
Discrete Fourier Transform Defined as –where 0 k N – 1 Fast implementation takes O(N lg N)
Quantum Fourier Transform The same transformation On an orthonormal basis defined as
Quantum Fourier Transform Alternately, on an n qubit computer, use the basis N=2 n
Quantum Fourier Transform That’s great, but how do you build it? –Rewriting QFT expression gives rise to a circuit which implements it
Quantum Fourier Transform
QFT: Gates To build the circuit for the QFT, we will need an additional gate: We’ll also need the Hadamard gate
QFT: Implementation Using R and H we can produce an efficient circuit for the QFT The circuit comes naturally since the formula for QFT has been decomposed into the product representation
QFT: Implementation
What is the effect of ? Recall: Symbolically
QFT: Implementation What is the effect of ? Notice:
QFT: Implementation Using these effects we can verify the circuit
QFT: Implementation Begin in initial state The first gate is the Hadamard gate on bit 1 Next, apply R 2
QFT: Implementation
Continue to apply R 3 …R n, giving This produces the desired ‘factor’ in the product representation
QFT: Implementation
The next level of the circuit acts similarly: Applying the Hadamard gate gives
QFT: Implementation Applying the gates R 2 …R n-1 gives After all gates are applied, the state will be
QFT: Summary The QFT uses n(n+1)/2 gates not counting swaps QFT is unitary, since each gate is unitary Using the QFT is subtle –There is no way of directly accessing the result –There is no way (in general) of preparing the initial state efficiently
Search Algorithms A simple example of search: Everyone’s second C++ program: for(int x = 2; x <= sqrt(n); ++x) { if( “n is divisible by x” ) return Composite; } return Prime;
Search Algorithms Oracle Search –Oracle(x) takes the value 1 iff x is a solution to the search problem Grover’s search uses an oracle –In general, a unitary operator The specific oracle depends on the search desired
Grover Iteration Grover’s Search is the repeated application of a single operation –This operation is called the Grover operator, G Understanding G is key to understanding Grover’s search
Grover Iteration G consists of four ‘steps’ 1.Apply the Oracle operator O 2.Apply the Hadamard transform H n 3.Give every basis state except a phase shift of –1 4.Apply the Hadamard transform H n
Grover Iteration Give every basis state except a phase shift of –1 This can be written
Grover Iteration Consider the last 3 steps 2.Apply the Hadamard transform H n 3. 4.Apply the Hadamard transform H n Together these give:
Grover Iteration G consists of four ‘steps’ 1.Apply the Oracle operator O 2.Apply the Hadamard transform H n 3. 4.Apply the Hadamard transform H n Together these give:
Grover’s Search Takes: A black box oracle O which performs n+1 qubits in the state
Grover’s Search Runtime: Procedure: –Initialize states: –Apply H n to the first n quibits, and HX to the last qubit –Apply the Grover iteration –Measure first n qubits
Grover’s Search Procedure: –Initialize states: –Apply H n to the first n quibits, and HX to the last qubit –Apply the Grover iteration –Measure first n qubits
Conclusion