- Deutsch-Jozsa algorithm
The Deutsch-Jozsa algorithm is a quantum algorithm, proposed by
David Deutsch andRichard Jozsa in1992 with improvements by R. Cleve, A. Ekert, C. Macchiavello, and M. Mosca in1998 .cite journal
author =David Deutsch andRichard Jozsa
title = Rapid solutions of problems by quantum computation
journal = Proceedings of the Royal Society of London A
volume = 439
pages = 553
date = 1992] cite journal
author = R. Cleve, A. Ekert, C. Macchiavello, and M. Mosca
title = Quantum algorithms revisited
journal = Proceedings of the Royal Society of London A
volume = 454
pages = 339–354
date = 1998
url = http://arxiv.org/pdf/quant-ph/9708016
format = PDF] Although it is of little practical use, it is one of the first examples of a quantum algorithm that is more efficient than any possible classical algorithm.The problem statement
In the Deutsch-Jozsa problem, we are given a black box quantum computer known as an oracle that implements the function f:{0,1}^n ightarrow {0,1}. We are promised that the function is either
constant (0 on all inputs or 1 on all inputs) or "balanced" (returns 1 for half of the input domain and 0 for the other half); the task then is to determine if f is constant or balanced by utilizing the oracle.A classical solution
For a conventional
deterministic algorithm, 2^{n-1} + 1 evaluations of f will be required in the worst case (and in best case need only 2 queries, if the function is balanced), where "n" is number of bits/qubits. For a conventionalrandomized algorithm , a constant k evaluations of the function suffices to produce the correct answer with a high probability (failing with probability epsilon≤1/2k-1). However, k=2^{n-1} + 1 evaluations are still required if we want an answer that is always correct. The Deutsch-Jozsa quantum algorithm produces an answer that is always correct with a single evaluation of f.History
The algorithm builds on an earlier
1985 work by David Deutsch which provided a solution for the case n=1. Specifically we were given a boolean function f {0,1} ightarrow {0,1} and asked if it is constant.cite journal
author =David Deutsch
title = The Church-Turing principle and the universal quantum computer
journal = Proceedings of the Royal Society of London A
volume = 400
pages = 97
date = 1985
url =http://coblitz.codeen.org:3125/citeseer.ist.psu.edu/cache/papers/cs/13701/http:zSzzSzwww.qubit.orgzSzresourcezSzdeutsch85.pdf/deutsch85quantum.pdf
format =PDF]In
1992 this idea was generalized to a function which takes n bits for its input and we are asked if it is constant or balanced.Deutsch's Algorithm as he had originally proposed was not, in fact, deterministic. The algorithm was successful with a probability of one half. The original Deutsch-Jozsa algorithm was deterministic however unlike Deutsch's Algorithm it required two function evaluations instead of only one.
Further improvements to the Deutsch-Jozsa algorithm were made by Cleve et al which resulted in an algorithm that is both deterministic and requires only a single query of f. This algorithm is referred to as Deutsch-Jozsa algorithm in honour of the groundbreaking techniques they employed.
The Deutsch-Jozsa algorithm provided inspiration for
Shor's algorithm andGrover's algorithm , two of the most revolutionary quantum algorithms.cite journal
author = Lov K. Grover
title = A fast quantum mechanical algorithm for database search
journal = Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing
pages = 212–219
date = 1996
url =http://arxiv.org/pdf/quant-ph/9605043
format =PDF] cite journal
author = Peter W. Shor
title = Algorithms for Quantum Computation: Discrete Logarithms and Factoring
journal = IEEE Symposium on Foundations of Computer Science
pages = 124–134
date = 1994
url = http://citeseer.ist.psu.edu/cache/papers/cs/408/http:zSzzSzwww.research.att.comzSz%7EshorzSzpaperszSzQCalgs.pdf/algorithms-for-quantum-computation.pdf
format =PDF]Deutsch's Algorithm, a special case
We need to check the condition f(0)=f(1). It is equivalent to check f(0)oplus f(1) (where oplus is addition modulo 2), if zero, then f is constant, otherwise f is not constant.
We begin with a two qubit in the state 0 angle |1 angle and apply a
Hadamard transform to each qubit. This yields:frac{1}{2}(|0 angle + |1 angle)(|0 angle - |1 angle).We are given a quantum implementation of the function f which maps x angle |y angle to x angle |f(x)oplus y angle. Applying this function to our current state we obtain:frac{1}{2}(|0 angle(|f(0)oplus 0 angle - |f(0)oplus 1 angle) + |1 angle(|f(1)oplus 0 angle - |f(1)oplus 1 angle)):frac{1}{2}((-1)^{f(0)}|0 angle(|0 angle - |1 angle) + (-1)^{f(1)}|1 angle(|0 angle - |1 angle)):1)^{f(0)}frac{1}{2}(|0 angle + (-1)^{f(0)oplus f(1)}|1 angle)(|0 angle - |1 angle).
We ignore the last bit and the global phase and therefore have the state:frac{1}{sqrt{2(|0 angle + (-1)^{f(0)oplus f(1)}|1 angle).
Applying a hadamard transform to this state we have:frac{1}{2}(|0 angle + |1 angle + (-1)^{f(0)oplus f(1)}|0 angle - (-1)^{f(0)oplus f(1)}|1 angle):frac{1}{2}((1 +(-1)^{f(0)oplus f(1)})|0 angle + (1-(-1)^{f(0)oplus f(1)})|1 angle).
Obviously f(0)oplus f(1)=0 if and only if we measure a zero. Therefore the function is constant if and only if we measure a zero.
The Deutsch-Jozsa Algorithm, in detail
We begin with the n+1 bit state 0 angle^{otimes n} |1 angle . That is, the first n bits are each in the state 0 angle and the final bit is 1 angle . We apply a
Hadamard transformation to each bit to obtain the state:frac{1}{sqrt{2^{n+1}sum_{x=0}^{2^n-1} |x angle (|0 angle - |1 angle ).
We have the function f implemented as quantum oracle. The oracle maps the state x angle|y angle to x angle|yoplus f(x) angle . Applying the quantum oracle gives us
:frac{1}{sqrt{2^{n+1}sum_{x=0}^{2^n-1} |x angle (|f(x) angle - |1oplus f(x) angle ).
A quick check of the two possibilities for f(x) yields
:frac{1}{sqrt{2^{n+1}sum_{x=0}^{2^n-1} (-1)^{f(x)} |x angle (|0 angle - |1 angle ).
At this point we may ignore the last qubit. We apply a
Hadamard transformation to each bit to obtain:frac{1}{2^n}sum_{x=0}^{2^n-1} (-1)^{f(x)} sum_{y=0}^{2^n-1}(-1)^{xcdot y} |y angle=frac{1}{2^n}sum_{y=0}^{2^n-1} [sum_{x=0}^{2^n-1}(-1)^{f(x)} (-1)^{xcdot y}] |y angle
where xcdot y=x_0 y_0oplus x_1 y_1opluscdotsoplus x_{n-1} y_{n-1} is the sum of the bitwise product.
Finally we examine the probability of measuring 0 angle^{otimes n},
:igg|frac{1}{2^n}sum_{x=0}^{2^n-1}(-1)^{f(x)}igg|^2
which evaluates to 1 if f(x) is constant and 0 if f(x) is balanced.
References
External links
* [http://www.quiprocone.org/Protected/Lecture_5.htm Deutsch's lecture about Deutsch algorithm]
Wikimedia Foundation. 2010.