Modern Quantum Computing: enhanced optimization, simulation and machine learning
Course Location: Rusky Island – University 20.35
Course Dates: 17-19 July 2018.
Teaching Team
- Jacob Biamonte (lead)
- Tim Tlyachev
- Vito Leli
Course Content
Visionary Lecture.
Jacob Biamonte outlines the last 20 years of quantum mechanics, the second quantum revolution and notes that while progress was made we are far from tackling some foundational questions. Despite this lack of understanding, this actually does not impede the use of quantum mechanics as a computational resource.
18 July 2018, 21:00-23:00, building A.
Lecture 1.
Introduction to the idea of using the low-energy state of a physical system as a computational resource. Methods to program and embed problems into interacting binary systems (Ising spins). Physics fundamentally governs what types of problems we can and cannot solve and is intimately tied with the theory of information and computation.
17 July 2018, 9:00-13:00, room 504, building D.
Read chapter one of Modern Quantum Programming: Computation and the Ising Model
Assignment 1a. (i) Modern Quantum Programming appendix A; (ii) warmup problems: Modern Quantum Programming appendix B and C
Assignment 1b. (programing)
Solutions 1a. (available after lecture)
Solutions 1b. (available after lecture)
Lecture 2.
The simplest way to teach quantum mechanics might be by comparing it to statistical mechanics. We construct a theory of random processes which would be accessible using standard techniques. This theory is easy to understand and we make it look as much like quantum mechanics as we can. This provides not just a teaching tool, but a powerful lens to understand why quantum mechanics is different. We end the lecture by showing how time-evolution of a quantum system can be used to create quantum logic gates: the building blocks of a gate model quantum computer.
18 July 2018, 9:00-13:00, room 504, building D.
Read chapter two of Modern Quantum Programming: Quantum vs. Stochastic Mechanics
Assignment 2a. (further problems I in Modern Quantum Programming)
Assignment 2b. (programing)
Solutions 2a. (available after lecture)
Solutions 2b. (available after lecture)
Quantum machine learning replaces the computationally challenging task of mimicking the process of thermalization – accelerated by quantum effects – with the actual physical process of thermalization.
Lecture 3.
Modern quantum computing utilizes the family of variational quantum algorithms. Algorithms which minimize the use of the quantum processor by doing pre- and post-processing with a classical computer. They can be used to minimize objective functions for use in optimization, machine learning and quantum enhanced simulation. Here we will recall the main ingredients behind these powerful algorithms, closing the course with several examples that are close to the contemporary state-of-the-art.
19 July 2018, 9:00-13:00, room 504, building D.
Assignment 3a. (further problems II in Modern Quantum Programming)
Assignment 3b. (programming)
Solutions 3a. (available after lecture)
Solutions 3b. (available after lecture)
Course Book (in progress)
- Modern Quantum Programming
By Jacob Biamonte with programming examples from Tim Tlyachev
preprint (2018).
Running the Programs
Programs are written using Python and are based on the standard and easy to use quantum simulator, QIT. Here are the instructions to install and run the course programs.
- Install Anaconda from https://www.anaconda.com/download/
With GNU/Linux or MacOS open a terminal in the same folder as the .sh file and write
bash Anaconda3-5.2.0-OS-x86_64.sh
where OS is MacOSX or Linux
On Windows double click the
Anaconda3-5.2.0-Windows-x86_64.exe
installer and follow the instructions.
During the installation use all the default settings
More informations on https://conda.io/docs/user-guide/install/index.html - Open a shell
On Windows From the Start menu, search for and open “Anaconda Prompt”
Update conda using the following command
conda update conda - Install the following python modules via pip using a shell or “Anaconda Prompt”
pip install numpy
pip install scipy
pip install networkx
pip install qit
pip install matplotlib - From the folder where you have saved the notebook files open a shell and type jupyter notebook
Open the URL with “token=” that will appear in the shell and from there open the notebook file