The 'Deutsch-Jozsa algorithm' is a
quantum algorithm, proposed by
David Deutsch and
Richard Jozsa in
1992 with improvements by R. Cleve, A. Ekert, C. Macchiavello, and M. Mosca in
1998.
[1][2]. Although it is of little practical use, it is one of 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
. 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
is constant or balanced by utilizing the oracle.
A classical solution
For a conventional
deterministic algorithm,
evaluations of
will be required in the worst case. For a conventional
randomized algorithm, a constant number of evaluation suffices to produce the correct answer with a high probability but
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
.
History
The algorithm builds on an earlier
1985 work by David Deutsch which provided a solution for the case
. Specifically we were given a boolean function
and asked if it is constant.
[3]
In
1992 this idea was generalized to a function which takes
bits for its input and we are asked if it is constant or balanced.
1
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
. This algorithm is referred to as Deutsch-Jozsa algorithm in honour of the groundbreaking techniques they employed.
2
The Deutsch-Jozsa algorithm provided inspiration for
Shor's algorithm and
Grover's algorithm, two of the most revolutionary quantum algorithms.
[4][5]
Deutsch's Algorithm, a special case
We need to check the condition
. It is equivalent to check
, if zero, then
is constant, otherwise
is not constant.
We begin with a two qubits in the state
and apply a
Hadamard transform to each qubit. This yields
:
We are given a quantum implementation of the function
which maps
to
. Applying this function to our current state we obtain
:
:
:
We ignore the last bit and the global phase and therefore have the state
:
Applying a hadamard transform to this state we have
:
:
Obviously
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
. That is, the first n bits are each in the state
and the final bit is
. We apply a
Hadamard transformation to each bit to obtain the state
:
.
We have the function
implemented as quantum oracle. The oracle maps the state
to
. Applying the quantum oracle gives us
:
.
A quick check of the two possibilities for
yields
:
.
At this point we may ignore the last qubit. We apply a
Hadamard transformation to each bit to obtain
:
where
is the bitwise sum modulo 2.
Finally we examine the probability of measuring
,
:
which evaluates to 1 if
is constant and 0 if
is balanced.
References
1.
Rapid solutions of problems by quantum computation, David Deutsch and Richard Jozsa, , , Proceedings of the Royal Society of London A,
2.
Quantum algorithms revisited, R. Cleve, A. Ekert, C. Macchiavello, and M. Mosca, , , Proceedings of the Royal Society of London A,
3.
The Church-Turing principle and the universal quantum computer, David Deutsch, , , Proceedings of the Royal Society of London A,
4.
A fast quantum mechanical algorithm for database search, Lov K. Grover, , , Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing,
5.
Algorithms for Quantum Computation: Discrete Logarithms and Factoring, Peter W. Shor, , , IEEE Symposium on Foundations of Computer Science,
'See also'
[1] Deutsch's lecture about Deutsch algorithm.