The idea that quantum-mechanical computers might outperform classical computers was introduced decades ago. However, it was only late last year that a quantum computer was able to perform a computation that would be intractable on a classical computer. Still, current-generation quantum computers cannot yet solve useful practical problems due to technological limitations, such as the small number of available qubits and the limited maximum number of operations that can be executed before decoherence occurs. While these bounds can be improved by advances in technology, it is equally crucial that we use existing machines to their full extent by running desired computations as efficiently as possible. Doing so will shorten the time to having quantum computers that solve useful problems. This project will build a compiler that uses novel graphical methods to optimise quantum computations in a threefold manner. Firstly, we will develop theoretical insights and practical implementations that help optimise the number of resources needed for a given computation. Secondly, we will find ways to verify the correctness of these optimisations, and lastly we will build a classical simulator to test quantum computations.
In contrast to previous work, which has treated optimisation, verification, and classical simulation as distinct problems in quantum software, this project will advance a new unified approach, revealing previously unforeseen connections and applying the same core techniques to all three problems.