|
|
Line 1: |
Line 1: |
| The '''Deutsch–Jozsa algorithm''' is a [[quantum algorithm]], proposed by [[David Deutsch]] and [[Richard Jozsa]] in 1992<ref name="DJ92"> | | Hiya. The [https://Www.Google.com/search?hl=en&gl=us&tbm=nws&q=author%27s&btnI=lucky author's] name is Eusebio but rather he never really beloved that name. The desired hobby for him and his kids is to drive and he's also been doing it for a while. Auditing is how he supports his family. Massachusetts is where it and his wife remain. He's been working about his website for some people time now. Check it out here: http://[http://Search.Un.org/search?ie=utf8&site=un_org&output=xml_no_dtd&client=UN_Website_en&num=10&lr=lang_en&proxystylesheet=UN_Website_en&oe=utf8&q=Circuspartypanama&Submit=Go Circuspartypanama].com<br><br>Feel free to surf to my web-site: [http://Circuspartypanama.com Hack Clash Of Clans Android] |
| {{cite journal
| |
| | author = [[David Deutsch]] and [[Richard Jozsa]]
| |
| | title = Rapid solutions of problems by quantum computation
| |
| | journal = Proceedings of the Royal Society of London A
| |
| | volume = 439
| |
| | pages = 553
| |
| | year = 1992|bibcode = 1992RSPSA.439..553D |doi = 10.1098/rspa.1992.0167 }}
| |
| </ref> with improvements by [[Richard Cleve]], [[Artur Ekert]], Chiara Macchiavello, and [[Michele Mosca]] in 1998.<ref name="CEMM98">
| |
| {{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
| |
| | year = 1998
| |
| | arxiv = quant-ph/9708016
| |
| |bibcode = 1998RSPSA.454..339C |doi = 10.1098/rspa.1998.0164 }}</ref> Although of little practical use, it is one of the first examples of a quantum algorithm that is exponentially faster than any possible deterministic classical algorithm. It is also a [[deterministic algorithm]], meaning that it always produces an answer, and that answer is always correct.
| |
| | |
| == Problem statement == | |
| In the Deutsch-Jozsa problem, we are given a black box quantum computer known as an [[Oracle machine|oracle]] that implements the function <math>f:\{0,1\}^n\rightarrow \{0,1\}</math>. In layman's terms, it takes n-digit binary values as input and produces either a 0 or a 1 as output for each such value. We are [[promise problem|promised]] that the function is either [[constant function|constant]] (0 on all inputs or 1 on all inputs) or ''balanced''<ref>[http://www.fortunecity.com/emachines/e11/86/qcomp2.html Certainty from Uncertainty<!-- Bot generated title -->]</ref> (returns 1 for half of the input [[function domain|domain]] and 0 for the other half); the task then is to determine if <math>f</math> is constant or balanced by using the oracle.
| |
| | |
| == Motivation ==
| |
| The Deutsch–Jozsa problem is specifically designed to be easy for a quantum algorithm and hard for any deterministic classical algorithm. The motivation is to show a black box problem that can be solved efficiently by a quantum computer with no error, whereas a deterministic classical computer would need exponentially many queries to the black box to solve the problem. More formally, it yields an oracle relative to which '''[[EQP (complexity)|EQP]]''', the class of problems that can be solved exactly in polynomial time on a quantum computer, and '''P''' are different. | |
| | |
| Since the problem is easy to solve on a probabilistic classical computer, it does not yield an oracle separation with '''[[BPP (complexity)|BPP]]''', the class of problems that can be solved with bounded error in polynomial time on a probabilistic classical computer. [[Simon's problem]] is an example of a problem that yields a separation between '''BQP''' and '''BPP'''.
| |
| | |
| == Classical solution ==
| |
| For a conventional [[deterministic]] algorithm where ''n'' is number of bits/qubits, <math>2^{n-1} + 1</math> evaluations of <math>f</math> will be required in the worst case. To prove that <math>f</math> is constant, just over half the set of inputs must be evaluated and their outputs found to be identical (remembering that the function is guaranteed to be either balanced or constant, not somewhere in between). The best case occurs where the function is balanced and the first two output values that happen to be selected are different. For a conventional [[randomized algorithm]], a constant <math>k</math> evaluations of the function suffices to produce the correct answer with a high probability (failing with probability <math>\epsilon \leq 1/2^{k-1}</math>). However, <math>k=2^{n-1} + 1</math> 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 <math>f</math>.
| |
| | |
| ==History==
| |
| The Deutsch–Jozsa Algorithm generalizes earlier (1985) work by David Deutsch, which provided a solution for the simple case.
| |
| <br />Specifically we were given a boolean function whose input is 1 bit, <math>f: \{0,1\} \rightarrow \{0,1\}</math> and asked if it is constant.<ref name="Deu85">
| |
| {{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
| |
| | year = 1985
| |
| | url =http://coblitz.codeen.org:3125/citeseer.ist.psu.edu/cache/papers/cs/13701/http:zSzzSzwww.qubit.orgzSzresourcezSzdeutsch85.pdf/deutsch85quantum.pdf
| |
| | format =PDF|bibcode = 1985RSPSA.400...97D |doi = 10.1098/rspa.1985.0070 }}
| |
| </ref>
| |
| | |
| The algorithm as Deutsch had originally proposed it was not, in fact, deterministic. The algorithm was successful with a probability of one half.
| |
| In 1992, Deutsch and Jozsa produced a deterministic algorithm which was generalized to a function which takes <math>n</math> bits for its input. Unlike Deutsch's Algorithm, this algorithm required two function evaluations instead of only one.
| |
| | |
| Further improvements to the Deutsch–Jozsa algorithm were made by Cleve et al.,<ref name="CEMM98" /> resulting in an algorithm that is both deterministic and requires only a single query of <math>f</math>. This algorithm is still referred to as Deutsch–Jozsa algorithm in honour of the groundbreaking techniques they employed.<ref name="CEMM98" />
| |
| | |
| The Deutsch–Jozsa algorithm provided inspiration for [[Shor's algorithm]] and [[Grover's algorithm]], two of the most revolutionary quantum algorithms.<ref name="Gro85">
| |
| {{cite conference
| |
| | author = Lov K. Grover
| |
| | title = A fast quantum mechanical algorithm for database search
| |
| | booktitle = Proceedings of the Twenty-Eighth Annual ACM [[Symposium on Theory of Computing]]
| |
| | pages = 212–219
| |
| | year = 1996
| |
| | doi = 10.1145/237814.237866
| |
| | arxiv =quant-ph/9605043
| |
| }}
| |
| </ref><ref name="Shor85">
| |
| {{cite conference
| |
| | author = Peter W. Shor
| |
| | title = Algorithms for quantum computation: discrete logarithms and factoring
| |
| | booktitle = Proceedings of the 35th IEEE [[Symposium on Foundations of Computer Science]]
| |
| | pages = 124–134
| |
| | year = 1994
| |
| | doi = 10.1109/SFCS.1994.365700
| |
| | url = http://citeseer.ist.psu.edu/cache/papers/cs/408/http:zSzzSzwww.research.att.comzSz%7EshorzSzpaperszSzQCalgs.pdf/algorithms-for-quantum-computation.pdf
| |
| | format =PDF}}
| |
| </ref>
| |
| | |
| == Decoherence ==
| |
| | |
| For the Deutsch–Jozsa algorithm to work, the oracle computing f(x) from x has to be a quantum oracle which doesn't decohere x. It also mustn't leave any copy of x lying around at the end of the oracle call.
| |
| | |
| [[Image:Deutsch-Jozsa Algorithm.svg|thumb|400px|right|The Deutsch-Jozsa algorithm's [[quantum circuit]]]]
| |
| | |
| The algorithm begins with the n+1 bit state <math>|0\rangle^{\otimes n} |1\rangle </math>. That is, the first n bits are each in the state <math>|0\rangle </math> and the final bit is <math>|1\rangle </math>. A [[Hadamard transformation]] is applied to each bit to obtain the state
| |
| | |
| :<math>\frac{1}{\sqrt{2^{n+1}}}\sum_{x=0}^{2^n-1} |x\rangle (|0\rangle - |1\rangle )</math>.
| |
| | |
| We have the function <math>f</math> implemented as quantum oracle. The oracle maps the state <math> |x\rangle|y\rangle </math> to <math> |x\rangle|y\oplus f(x) \rangle </math>, where <math>\oplus</math> is addition modulo 2 (see below for details of implementation). Applying the quantum oracle gives
| |
| | |
| :<math>\frac{1}{\sqrt{2^{n+1}}}\sum_{x=0}^{2^n-1} |x\rangle (|f(x)\rangle - |1\oplus f(x)\rangle )</math>.
| |
| | |
| For each <math>x</math>, <math>f(x)</math> is either <math>0</math> or <math>1</math>. A quick check of these two possibilities yields
| |
| | |
| :<math>\frac{1}{\sqrt{2^{n+1}}}\sum_{x=0}^{2^n-1} (-1)^{f(x)} |x\rangle (|0\rangle - |1\rangle )</math>.
| |
| | |
| At this point the last qubit may be ignored. We apply a [[Hadamard transformation]] to each qubit to obtain
| |
| | |
| :<math>\frac{1}{2^n}\sum_{x=0}^{2^n-1} (-1)^{f(x)} \sum_{y=0}^{2^n-1}(-1)^{x\cdot y} |y\rangle=
| |
| \frac{1}{2^n}\sum_{y=0}^{2^n-1} \left[\sum_{x=0}^{2^n-1}(-1)^{f(x)} (-1)^{x\cdot y}\right] |y\rangle </math>
| |
| | |
| where <math>x\cdot y=x_0 y_0\oplus x_1 y_1\oplus\cdots\oplus x_{n-1} y_{n-1} </math> is the sum of the bitwise product.
| |
| | |
| Finally we examine the probability of measuring <math>|0\rangle^{\otimes n}</math>,
| |
| | |
| :<math>\bigg|\frac{1}{2^n}\sum_{x=0}^{2^n-1}(-1)^{f(x)}\bigg|^2</math>
| |
| | |
| which evaluates to 1 if <math>f(x)</math> is constant ([[constructive interference]]) and 0 if <math>f(x)</math> is balanced ([[destructive interference]]).
| |
| | |
| == Deutsch's Algorithm==
| |
| Deutsch's algorithm is a special case of the general Deutsch–Jozsa algorithm. We need to check the condition <math>f(0)=f(1)</math>. It is equivalent to check <math>f(0)\oplus f(1)</math> (where <math>\oplus</math> is addition modulo 2, which can also be viewed as a quantum [[XOR gate]] implemented as a [[Controlled NOT gate]]), if zero, then <math>f</math> is constant, otherwise <math>f</math> is not constant.
| |
| | |
| We begin with the two-qubit state <math>|0\rangle |1\rangle</math> and apply a [[Hadamard transform]] to each qubit. This yields
| |
| :<math>\frac{1}{2}(|0\rangle + |1\rangle)(|0\rangle - |1\rangle).</math>
| |
| | |
| We are given a quantum implementation of the function <math>f</math> that maps <math>|x\rangle |y\rangle</math> to <math>|x\rangle |f(x)\oplus y\rangle</math>. Applying this function to our current state we obtain
| |
| :<math>\frac{1}{2}(|0\rangle(|f(0)\oplus 0\rangle - |f(0)\oplus 1\rangle) + |1\rangle(|f(1)\oplus 0\rangle - |f(1)\oplus 1\rangle))</math>
| |
| :<math>=\frac{1}{2}((-1)^{f(0)}|0\rangle(|0\rangle - |1\rangle) + (-1)^{f(1)}|1\rangle(|0\rangle - |1\rangle))</math>
| |
| :<math>=(-1)^{f(0)}\frac{1}{2}\left(|0\rangle + (-1)^{f(0)\oplus f(1)}|1\rangle\right)(|0\rangle - |1\rangle).</math>
| |
| | |
| We ignore the last bit and the global phase and therefore have the state
| |
| :<math>\frac{1}{\sqrt{2}}(|0\rangle + (-1)^{f(0)\oplus f(1)}|1\rangle).</math>
| |
| | |
| Applying a Hadamard transform to this state we have
| |
| :<math>\frac{1}{2}(|0\rangle + |1\rangle + (-1)^{f(0)\oplus f(1)}|0\rangle - (-1)^{f(0)\oplus f(1)}|1\rangle)</math>
| |
| :<math>=\frac{1}{2}((1 +(-1)^{f(0)\oplus f(1)})|0\rangle + (1-(-1)^{f(0)\oplus f(1)})|1\rangle).</math>
| |
| | |
| Obviously <math>f(0)\oplus f(1)=0</math> if and only if we measure a zero and <math>f(0)\oplus f(1)=1</math> if and only if we measure a one. So with certainty we know whether <math>f(x)</math> is constant or balanced.
| |
| | |
| ==References==
| |
| {{reflist}}
| |
| | |
| ==External links==
| |
| *[http://www.quiprocone.org/Protected/Lecture_5.htm Deutsch's lecture about Deutsch algorithm]
| |
| *[http://code.google.com/p/quala-scala/ Implementation of the Deutsch-Jozsa algorithm in the Scala programming language]
| |
| | |
| {{Quantum computing}}
| |
| | |
| {{DEFAULTSORT:Deutsch-Jozsa algorithm}}
| |
| [[Category:Quantum algorithms]]
| |