Grover's algorithm demonstrates the possibility of superior searching capabilities when used with a quantum computer. The algorithm is able to speed up an unstructured search problem quadratically. On a quantum computer, given a list of N items, we can find a marked item in
- Amplitude amplification procedure
- Apply the oracle reflection to the state
- Apply an additional reflection about the state
- Step 2 & 3 are repeated as this transformation continues to boost the negative amplitude of the marked item and decreases the other amplitudes. This is repeated roughly
$\sqrt{N}$ times.
I've implemented an example using 2 qubits searching for |11> using Qiskit in an iPython notebook. A more thorough explanation of the algorithm is commented in the notebook implementation.ipynb
. After implementation experiments are ran with a simulator on Qiskit and a real device via IBMQ.