summaryrefslogtreecommitdiff
path: root/source/know/concept/deutsch-jozsa-algorithm/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'source/know/concept/deutsch-jozsa-algorithm/index.md')
-rw-r--r--source/know/concept/deutsch-jozsa-algorithm/index.md104
1 files changed, 52 insertions, 52 deletions
diff --git a/source/know/concept/deutsch-jozsa-algorithm/index.md b/source/know/concept/deutsch-jozsa-algorithm/index.md
index c2bd1e6..bbdd58d 100644
--- a/source/know/concept/deutsch-jozsa-algorithm/index.md
+++ b/source/know/concept/deutsch-jozsa-algorithm/index.md
@@ -13,40 +13,40 @@ were first to prove that quantum computers can
solve certain problems more efficiently
than any classical system.
-Given an unknown "black box" binary function $f(x)$ of one or more bits $x$,
-the goal is determine whether $f$ is
-**constant** (i.e. $f(x)$ is the same for all $x$)
-or **balanced** (i.e. exactly 50% of all $x$-values yield $f(x) = 0$,
-and the other 50% yield $f(x) = 1$).
-We can query $f$ as many times as we want with inputs of our choice,
+Given an unknown "black box" binary function $$f(x)$$ of one or more bits $$x$$,
+the goal is determine whether $$f$$ is
+**constant** (i.e. $$f(x)$$ is the same for all $$x$$)
+or **balanced** (i.e. exactly 50% of all $$x$$-values yield $$f(x) = 0$$,
+and the other 50% yield $$f(x) = 1$$).
+We can query $$f$$ as many times as we want with inputs of our choice,
but we want to solve the problem using as few queries as possible.
The problem is extremely artificial and of no practical use,
but quantum computers can solve it with a single query,
-while classical computers need up to $2^{N - 1} + 1$ queries
-for an $N$-bit $x$.
+while classical computers need up to $$2^{N - 1} + 1$$ queries
+for an $$N$$-bit $$x$$.
## Deutsch algorithm
The Deutsch algorithm handles the simplest case,
-where $x$ is only a single bit.
-Only four $f$ exist:
+where $$x$$ is only a single bit.
+Only four $$f$$ exist:
-+ **Constant**: $(f(0) = f(1) = 0)$ or $(f(0) = f(1) = 1)$.
-+ **Balanced**: $(f(0) = 0, f(1) = 1)$, or $(f(0) = 1, f(1) = 0)$.
++ **Constant**: $$(f(0) = f(1) = 0)$$ or $$(f(0) = f(1) = 1)$$.
++ **Balanced**: $$(f(0) = 0, f(1) = 1)$$, or $$(f(0) = 1, f(1) = 0)$$.
-In other words, we only need to determine if $f(0) = f(1)$ or $f(0) \neq f(1)$.
+In other words, we only need to determine if $$f(0) = f(1)$$ or $$f(0) \neq f(1)$$.
To do this, we use the following quantum circuit,
-where $U_f$ is the oracle we query:
+where $$U_f$$ is the oracle we query:
<a href="deutsch-circuit.png">
<img src="deutsch-circuit.png" style="width:48%">
</a>
Due to unitarity constraints,
-the action of $U_f$ is defined to be as follows,
-with $\oplus$ meaning XOR:
+the action of $$U_f$$ is defined to be as follows,
+with $$\oplus$$ meaning XOR:
$$\begin{aligned}
\Ket{x} \Ket{y}
@@ -54,8 +54,8 @@ $$\begin{aligned}
\Ket{x} \Ket{y \oplus f(x)}
\end{aligned}$$
-Starting on the left from two qubits $\Ket{0}$ and $\Ket{1}$,
-we apply the [Hadamard gate](/know/concept/quantum-gate/) $H$ to both:
+Starting on the left from two qubits $$\Ket{0}$$ and $$\Ket{1}$$,
+we apply the [Hadamard gate](/know/concept/quantum-gate/) $$H$$ to both:
$$\begin{aligned}
\Ket{0} \Ket{1}
@@ -64,7 +64,7 @@ $$\begin{aligned}
= \frac{1}{2} \Big( \Ket{0} + \Ket{1} \Big) \Big( \Ket{0} - \Ket{1} \Big)
\end{aligned}$$
-Feeding this result into the oracle $U_f$ then leads us to:
+Feeding this result into the oracle $$U_f$$ then leads us to:
$$\begin{aligned}
\to \boxed{U_f} \to \quad
@@ -73,7 +73,7 @@ $$\begin{aligned}
\end{aligned}$$
The parenthesized superpositions can be reduced.
-Assuming that $f(b) = 0$, we notice:
+Assuming that $$f(b) = 0$$, we notice:
$$\begin{aligned}
\Ket{0 \oplus f(b)} - \Ket{1 \oplus f(b)}
@@ -81,7 +81,7 @@ $$\begin{aligned}
= \Ket{0} - \Ket{1}
\end{aligned}$$
-On the other hand, if we assume that $f(b) = 1$,
+On the other hand, if we assume that $$f(b) = 1$$,
we get the opposite result:
$$\begin{aligned}
@@ -90,7 +90,7 @@ $$\begin{aligned}
= - \big(\Ket{0} - \Ket{1}\big)
\end{aligned}$$
-We can thus combine both cases, $f(b) = 0$ or $f(b) = 1$,
+We can thus combine both cases, $$f(b) = 0$$ or $$f(b) = 1$$,
into the following single expression:
$$\begin{aligned}
@@ -106,7 +106,7 @@ $$\begin{aligned}
\frac{1}{2} \Big( (-1)^{f(0)} \Ket{0} + (-1)^{f(1)} \Ket{1} \Big) \Big( \Ket{0} - \Ket{1} \Big)
\end{aligned}$$
-The second qubit in state $\Ket{-}$ is garbage; it is no longer of interest.
+The second qubit in state $$\Ket{-}$$ is garbage; it is no longer of interest.
The first qubit is given by:
$$\begin{aligned}
@@ -114,10 +114,10 @@ $$\begin{aligned}
= \frac{(-1)^{f(0)}}{\sqrt{2}} \Big( \Ket{0} + (-1)^{f(0) \oplus f(1)} \Ket{1} \Big)
\end{aligned}$$
-If $f$ is constant, then $f(0) \oplus f(1) = 0$,
-meaning this state is $(-1)^{f(0)} \Ket{+}$.
-On the other hand, if $f$ is balanced, then $f(0) \oplus f(1) = 1$,
-meaning this state is $(-1)^{f(0)} \Ket{-}$.
+If $$f$$ is constant, then $$f(0) \oplus f(1) = 0$$,
+meaning this state is $$(-1)^{f(0)} \Ket{+}$$.
+On the other hand, if $$f$$ is balanced, then $$f(0) \oplus f(1) = 1$$,
+meaning this state is $$(-1)^{f(0)} \Ket{-}$$.
Taking the Hadamard transform of this qubit therefore yields:
$$\begin{aligned}
@@ -125,19 +125,19 @@ $$\begin{aligned}
(-1)^{f(0)} \Ket{f(0) \oplus f(1)}
\end{aligned}$$
-Depending on whether $f$ is constant or balanced,
-the mearurement outcome of this state will be $\Ket{0}$ or $\Ket{1}$
+Depending on whether $$f$$ is constant or balanced,
+the mearurement outcome of this state will be $$\Ket{0}$$ or $$\Ket{1}$$
with 100\% probability. We have solved the problem!
-Note that we only consulted the oracle (i.e. applied $U_f$) once.
+Note that we only consulted the oracle (i.e. applied $$U_f$$) once.
A classical computer would need to query it twice,
-once with input $x = 0$, and again with $x = 1$.
+once with input $$x = 0$$, and again with $$x = 1$$.
## Full Deutsch-Jozsa algorithm
-The Deutsch-Jozsa algorithm generalizes the above to $N$-bit inputs $x$.
-We are promised that $f(x)$ is either constant or balanced;
+The Deutsch-Jozsa algorithm generalizes the above to $$N$$-bit inputs $$x$$.
+We are promised that $$f(x)$$ is either constant or balanced;
other possibilities are assumed to be impossible.
This algorithm is then implemented by the following quantum circuit:
@@ -145,8 +145,8 @@ This algorithm is then implemented by the following quantum circuit:
<img src="deutsch-jozsa-circuit.png" style="width:52%">
</a>
-There are $N$ qubits in initial state $\Ket{0}$, and one in $\Ket{1}$.
-For clarity, the oracle $U_f$ works like so:
+There are $$N$$ qubits in initial state $$\Ket{0}$$, and one in $$\Ket{1}$$.
+For clarity, the oracle $$U_f$$ works like so:
$$\begin{aligned}
\Ket{x_1} \Ket{x_2} \cdots \Ket{x_N} \Ket{y}
@@ -154,7 +154,7 @@ $$\begin{aligned}
\Ket{x_1} \cdots \Ket{x_N} \Ket{y \oplus f(x_1, ..., x_N)}
\end{aligned}$$
-Applying the $N + 1$ Hadamard gates to the initial state
+Applying the $$N + 1$$ Hadamard gates to the initial state
yields the following superposition:
$$\begin{aligned}
@@ -164,9 +164,9 @@ $$\begin{aligned}
= \frac{1}{\sqrt{2^N}} \sum_{x = 0}^{2^N - 1} \Ket{x} \Ket{-}
\end{aligned}$$
-Where $\Ket{x} = \Ket{x_1} \cdots \Ket{x_N}$ denotes a classical binary state.
-For example, if $x = 5 = 2^0 + 2^2$ in the summation,
-then $\Ket{x} = \Ket{1} \Ket{0} \Ket{1} \Ket{0}^{\otimes N-3}$
+Where $$\Ket{x} = \Ket{x_1} \cdots \Ket{x_N}$$ denotes a classical binary state.
+For example, if $$x = 5 = 2^0 + 2^2$$ in the summation,
+then $$\Ket{x} = \Ket{1} \Ket{0} \Ket{1} \Ket{0}^{\otimes N-3}$$
(from least to most significant).
We give this state to the oracle,
@@ -178,8 +178,8 @@ $$\begin{aligned}
\frac{1}{\sqrt{2^N}} \sum_{x = 0}^{2^N - 1} (-1)^{f(x)} \Ket{x} \Ket{-}
\end{aligned}$$
-The last qubit $\Ket{-}$ is garbage.
-Next, applying the Hadamard transform to the other $N$ gives:
+The last qubit $$\Ket{-}$$ is garbage.
+Next, applying the Hadamard transform to the other $$N$$ gives:
$$\begin{aligned}
\to \boxed{H^{\otimes N}} \to \quad
@@ -187,8 +187,8 @@ $$\begin{aligned}
\bigg( \frac{1}{\sqrt{2^N}} \sum_{y = 0}^{2^N - 1} (-1)^{x \cdot y} \Ket{y} \bigg)
\end{aligned}$$
-Where $x \cdot y$ is the bitwise dot product of the binary representations of $x$ and $y$,
-so, for example, if $N = 2$, then $x \cdot y = x_1 y_1 + x_2 y_2$.
+Where $$x \cdot y$$ is the bitwise dot product of the binary representations of $$x$$ and $$y$$,
+so, for example, if $$N = 2$$, then $$x \cdot y = x_1 y_1 + x_2 y_2$$.
Note that the above expression has not been reduced at all;
it follows from the definition of the Hadamard transform.
We can rewrite it like so:
@@ -200,24 +200,24 @@ $$\begin{aligned}
\end{aligned}$$
The parenthesized expression can be interpreted as the coefficients
-of a superposition of several $y$-values.
-Therefore, the probability that a measurement yields $y = 0$,
-i.e. $\Ket{y} = \Ket{0}^{\otimes N}$, is:
+of a superposition of several $$y$$-values.
+Therefore, the probability that a measurement yields $$y = 0$$,
+i.e. $$\Ket{y} = \Ket{0}^{\otimes N}$$, is:
$$\begin{aligned}
|c_0|^2
= \bigg| \frac{1}{2^N} \sum_{x = 0}^{2^N - 1} (-1)^{f(x)} \bigg|^2
\end{aligned}$$
-The summation always contains an even number of terms, for all values of $N$.
-Consequently, if $f$ is constant, then $|c_0|^2 = |\!\pm\! 2^N / 2^N|^2 = 1$.
-Otherwise, if $f$ is balanced, all the terms cancel out, so we are left with $|c_0|^2 = 0$.
+The summation always contains an even number of terms, for all values of $$N$$.
+Consequently, if $$f$$ is constant, then $$|c_0|^2 = |\!\pm\! 2^N / 2^N|^2 = 1$$.
+Otherwise, if $$f$$ is balanced, all the terms cancel out, so we are left with $$|c_0|^2 = 0$$.
In other words, we reach the same result as the Deutsch algorithm:
-we only need to measure the $N$ qubits once;
-$f$ is constant if and only if all are zero.
+we only need to measure the $$N$$ qubits once;
+$$f$$ is constant if and only if all are zero.
The Deutsch-Jozsa algorithm needs only one oracle query to give an error-free result,
-whereas a classical computer needs $2^{N-1} + 1$ queries in the worst case;
+whereas a classical computer needs $$2^{N-1} + 1$$ queries in the worst case;
a revolutionary discovery.