This repo contains interesting algorithms that point to key aspects of quantum computing. It also includes handwritten notes taken from Nielsen and Chuang's celebrated book on the matter. The repo discusses implementations of the following algorithms and protocols
- Superdense Coding Protocol
- Teletransportation Protocol
- Deutsch - Joza Algorithm
- Bernstein - Vazirani Algorithm
- Quantum Fourier Transform (QFT)
- Reversible Adding Algorithms
It is suggested that the readers overview the written notes included on the repo before embarking on the study of the jupyter notebooks. The readers might start by the discussion on the circuit model of computation, that is included on the notes. This would give strong foundations for starting with Reversible Adding Algorithms. The rest of the algorithms require thorough knowledge of Quantum Mechanics and Linear Algebra. I suggest that readers start with Superdense Coding Protocol, in parallel to the discussion of entanglement in n-qbit systems proposed in the notes. After that, it is desirable to study the quantum circuit model of computation, and specially, the features of quantum parallelism. This would give strong foundations for understanding Deutsh - Joza and Bernstein - Vazirani algorithms. Finally, the QFT algorithms requires a bit more of knowledge of Quantum Mechanics, and thus is complemented with its own set of notes. This is by far the most prolific of quantum algorithms.
Note: I shall include Shor's factoring algorithm, Variational Eigensolver, Time Simulation, and Grover Search Algorithm. These are more advanced, however, and notes and notebooks are on preparation.