The aim of this notebook is to learn some basic Quantum computing principles by implementing Grover's search algorithm. This algorithm is a highly effective quantum searching algorithm with significantly less complexity compared to classical methods.
Meaning this technique is useful in searching through large unstructured and unsorted datasets. As quantum computers improve in size, cost, required maintanance and operating requirements, algorithms such as this could be become common place.
As such, an exploration of Grover's Algorthim and its implementation, as well as basic quantum computing principles, is a worthwhile endeavour - providing insight into the posibilities of quantum computing. It is also important to understand the concepts of noise and how actual quantum devices run rather than utilising ideal simulators.
To do this, there are two sections::
- Quantum Computing Crash Course
- Grover's Algrithm Realisation, implementation and testing.
This section is introduction to the concepts of Quantum Computing.
Including insight into the following:
- Bra-ket notation
- Representing Quantum Bits (Qubits)
- Quantum Gates
This section is used to advance on the basic concepts learned in the first section, applying them to a useful algorithm. Step by step, learners are introduced to the different components of Grover's algorithm and their interconnections. The section concludes with testing the developed circuitry through simulators and actual quantum devices. This teaches, using experience, how a quantum algorithm and circuit may be affected in operating conditions.
Qiskit/Anaconda Installation Guide
- Jupyter Notebooks
- python3
- qiskit
- IBM Quantum Account. (See https://quantum-computing.ibm.com/lab/docs/iql/manage/account/ibmq for more information.)
- James Allsop https://github.com/JAllsop
- Marco Benevenuti https://github.com/Mnmben24