diff options
Diffstat (limited to 'source/know/concept/bernstein-vazirani-algorithm')
-rw-r--r-- | source/know/concept/bernstein-vazirani-algorithm/bernstein-vazirani-circuit.png | bin | 0 -> 8510 bytes | |||
-rw-r--r-- | source/know/concept/bernstein-vazirani-algorithm/index.md | 101 |
2 files changed, 101 insertions, 0 deletions
diff --git a/source/know/concept/bernstein-vazirani-algorithm/bernstein-vazirani-circuit.png b/source/know/concept/bernstein-vazirani-algorithm/bernstein-vazirani-circuit.png Binary files differnew file mode 100644 index 0000000..83ccde2 --- /dev/null +++ b/source/know/concept/bernstein-vazirani-algorithm/bernstein-vazirani-circuit.png diff --git a/source/know/concept/bernstein-vazirani-algorithm/index.md b/source/know/concept/bernstein-vazirani-algorithm/index.md new file mode 100644 index 0000000..8720c81 --- /dev/null +++ b/source/know/concept/bernstein-vazirani-algorithm/index.md @@ -0,0 +1,101 @@ +--- +title: "Bernstein-Vazirani algorithm" +date: 2021-05-01 +categories: +- Quantum information +- Algorithms +layout: "concept" +--- + +In quantum information, +the **Bernstein-Vazirani algorithm** proves +the supremacy of quantum computers +over classical deterministic or probabilistic computers. +It is extremely similar to the +[Deutsch-Jozsa algorithm](/know/concept/deutsch-jozsa-algorithm/), +and even uses the same circuit. + +It solves a very artificial problem: +we are given a "black box" function $f(x)$ +that takes an $N$-bit $x$ and returns a single bit, +which we are promised is the lowest bit of the bitwise dot product +of $x$ with an unknown $N$-bit string $s$: + +$$\begin{aligned} + f(x) + = s \cdot x \:\:(\bmod \: 2) + = (s_1 x_1 + s_2 x_2 + \:...\: + s_N x_N) \:\:(\bmod \: 2) +\end{aligned}$$ + +The goal is to find $s$. +To solve this problem, +a classical computer would need to call $f(x)$ exactly $N$ times +with $x = 2^n$ for $n \in \{ 0, ..., N \!-\! 1\}$. +However, the Bernstein-Vazirani algorithm +allows a quantum computer to do it with only a single query. +It uses the following circuit: + +<a href="bernstein-vazirani-circuit.png"> +<img src="bernstein-vazirani-circuit.png" style="width:52%"> +</a> + +Where $U_f$ is a phase oracle, +whose action is defined as follows, +where $\Ket{x} = \Ket{x_1} \cdots \Ket{x_N}$: + +$$\begin{aligned} + \Ket{x} + \quad \to \boxed{U_f} \to \quad + (-1)^{f(x)} \Ket{x} + = (-1)^{s \cdot x} \Ket{x} +\end{aligned}$$ + +That is, it introduces a phase flip based on the value of $f(x)$. +For an example implementation of such an oracle, +see the Deutsch-Jozsa algorithm: +its circuit is identical to this one, +but describes $U_f$ in a different (but equivalent) way. + +Starting from the state $\Ket{0}^{\otimes N}$, +applying the [Hadamard gate](/know/concept/quantum-gate/) $H$ +to all qubits yields: + +$$\begin{aligned} + \Ket{0}^{\otimes N} + \quad \to \boxed{H^{\otimes N}} \to \quad + \Ket{+}^{\otimes N} + = \frac{1}{\sqrt{2^N}} \sum_{x = 0}^{2^N - 1} \Ket{x} +\end{aligned}$$ + +This is an equal superposition of all candidates $\Ket{x}$, +which we feed to the oracle: + +$$\begin{aligned} + \frac{1}{\sqrt{2^N}} \sum_{x = 0}^{2^N - 1} \Ket{x} + \quad \to \boxed{U_f} \to \quad + \frac{1}{\sqrt{2^N}} \sum_{x = 0}^{2^N - 1} (-1)^{s \cdot x} \Ket{x} +\end{aligned}$$ + +Then, thanks to the definition of the Hadamard transform, +a final set of $H$-gates leads us to: + +$$\begin{aligned} + \frac{1}{\sqrt{2^N}} \sum_{x = 0}^{2^N - 1} (-1)^{s \cdot x} \Ket{x} + \quad \to \boxed{H^{\otimes N}} \to \quad + \Ket{s} + = \Ket{s_1} \cdots \Ket{s_N} +\end{aligned}$$ + +Which, upon measurement, gives us the desired binary representation of $s$. +For comparison, the Deutsch-Jozsa algorithm only cares whether $s = 0$ or $s \neq 0$, +whereas this algorithm is interested in the exact value of $s$. + + + +## References +1. J.S. Neergaard-Nielsen, + *Quantum information: lectures notes*, + 2021, unpublished. +2. S. Aaronson, + *Introduction to quantum information science: lecture notes*, + 2018, unpublished. |