Quantum Programming Languages

This project aims at exploring the field of quantum programming languages and quantum artificial intelligence in a new line of research of the group of formal methods of Department of Informatics.

- Promotor: Luís Barbosa
- Daily supervisor: Carlos Tavares

Nowadays, quantum computation is one the most exciting fields in computer science and physics. Quantum computers work based in the laws of quantum physics, and seem to be able to provide an exponential improvement for computational performance, due to the strange effects predicted by quantum physics, such as quantum entanglement.

However, finding new quantum algorithms that can take advantage of such effects, has shown to be a hard task. There is already a significant amount of algorithms, that can take advantage of such phenomena, however they all reduce to a very small amount of primitive techniques, which can vary significantly among each other. Such algorithms are already important fields of application, such as search and optimization problems or to extract algebraic properties of mathematical objects, such as factoring big numbers. Quantum computation also originates a natural interplay between computer science and quantum physics, which has been motivating the usage of computer science techniques in the latter, such as complexity or other semantic computational techniques. Such techniques can be used, for instance, to understand quantum dynamics, to isolate algorithms inner structures, or to validate quantum algorithms and protocols.

Further, as it could be expected, classical computation can be also used to simulate quantum systems, unfortunately with an exponential cost. The development of programming languages to conduct such simulations of quantum algorithms is a topic that has been attracting a lot of interest from the research community in the last years, which originated already many new quantum programming languages and runtime environments. Nowadays, such tools constitute only a way of conducting experiments in a virtual environment, but in the future they can also be used to program actual quantum computers.

The global objective of this master thesis is to initiate a work in quantum programming languages within the group of formal methods of the department of informatics of University of Minho:

- Review the literature about quantum programming languages;
- Implement most common quantum algorithms (e.g Grover, Shor) in a chosen language;
- Explore the implementation of two types of artificial intelligence algorithms in the language: optimization algorithm and a machine learning algorithm. Compare with the classical equivalents.

- Chuang, M. A. (2010). Quantum computation and quantum information. Cambridge university press.
- Selinger, P. (2004). A brief survey of quantum programming languages. Functional and Logic Programming, (pp. 61-69).
- Seth Lloyd, M. M. (s.d.). Quantum algorithms for supervised and unsupervised machine learning.