Files
ObsidianVault/SS2026/Quantum Computing/12. Grover's Algorithm/Grover's Algorithm.md
T

58 lines
1.5 KiB
Markdown

Another well known quantum algorithm for searching.
Takes a function $f : \{0,1\}^n \rightarrow \{0,1\}$ where f(x) = 1 for exactly one x.
The goal is to find x.
New gates: $V_f$ and FLIP$_*$
$\ket{*}$ denotes the superposition over al classical possibilities.
### Oracle $V_f$
![[Pasted image 20260805102238.png]]
We use the Unitary $U_f$ as previously defined to construct $V_f$
![[Pasted image 20260805102605.png]]
### FLIP$_*$
We first need FLIP$_0$ defined as follows:
![[Pasted image 20260805102659.png]]
This is implemented via this circuit:
![[Pasted image 20260805102717.png]]
Z is a Pauli matrix and the empty circles denote negative control wires.
So Z is only applied if all other wires are $\ket{0}$
Now we define the unitary FLIP$_*$:
![[Pasted image 20260805103650.png]]
![[Pasted image 20260805103706.png]]
### The search algorithm:
![[Pasted image 20260805110129.png]]
The algorithm works as follows:
1. $\ket{0}$ on every qubit.
2. Superposition over all entries via H which results in the quantum state $\ket{*}$
3. Apply unitary $V_f$
4. Apply unitary FLIP$_*$
5. Repeat 3 and 4 t times
6. Measure.
How does this work?:
We want the algorithm to terminate in $\ket{x_0}$
First, we bring the system into uniform superposition $\ket{*}$
We know that $\ket{x_0}$ is part of the superposition so we can rewrite as follows:
![[Pasted image 20260805110521.png]]
![[Pasted image 20260805110633.png]]
![[Pasted image 20260805110641.png]]
![[Pasted image 20260805110648.png]]