CMPT 478/981 project

Project overview



For the course project you are asked to do your own independent research on a topic in quantum circuits and compilation. The only specific requirement for the project is a written report. You may work in groups of up to two (2)

Broadly speaking, the project may take one of a few forms:

Option 1: Coding

For a coding-style project, you should implement some non-trivial compilation/optimization/verification/etc. algorithm(s). They can be algorithm(s) we've seen in class or in papers, and they can be implemented inside existing compilers/software packages (listed below) or free-form. The main requirement here is that it is your own work, i.e. you are not simply copy and pasting some existing compilation code from Qiskit. If you do a coding style project, your report should detail your implementation, any challenges or issues that arose, and some experimental results. For example, you may choose to compare two different compilation algorithms, or compare your implementation against another existing implementation. Benchmark circuits can be found, for example, in the Feynman repository listed below.

Here is a (non-exhaustive) list of software packages which may be of use:

Option 2: Theory

Select a topic and read one or more papers on it then write a report. A typical format would be to survey a few different methods for a particular problem in compilation, e.g. different optimization algorithms, and write a comparative analysis. Where does one method particularly shine? Are there any trade-offs or is one method clearly superior? Are they complementary in that their combination can be used to solve a larger problem? If you choose to do a report on a single paper, your report should clearly explain the details of the work and provide some new insight and criticism. In the end the depth of the analysis of each paper should roughly be inversely proportional to the number of papers you are reading.

Some samples (slightly out of the course scope) are provided here and here. This should be a more in depth report (around 10 pages) than if the project is largely coding based.

Option 3: Application

Apply compilation techniques to solve a problem, possibly related to your own research. An example could be to compile a non-trivial instance of a quantum algorithm down to Clifford+T --- e.g. simulation of the ground state energy of a particular molecule using phase estimation, or an instance of Grover's search applied to SAT solving. You will likely need to read papers to fill in gaps in your knowledge on the algorithmic side.

Milestones



Resources



Template for writing your report in LaTeX (not required but recommended)

Possible projects



Please ask me to expand on any of these if you're interested but unsure of the details.