Measurement-based quantum computation (MBQC) is an alternative computational model to the circuit-based quantum computation (CBQC) model. While many quantum computing simulators like Qiskit-aer, PyQuil-qvm, and QuEST are based on the CBQC model, QuEST stands out by offering flexibility with mid-circuit measurement and the ability to perform feed-forward actions, such as adaptive basis measurements for future qubits. This repository aims to simulate a general MBQC framework using QuEST and leveraging the Boost Graph Library (BGL), which is developed under the Boost library in C++.
By combining QuEST's capabilities with the power of the Boost Graph Library, this project provides a versatile MBQC simulator. As more verification protocols rely on MBQC, this repository can prove to be a valuable resource.
TODO: Some brief MBQC overview content
This project is in active development, labelled as version 0.01. There is some basic functionality in this repositors, but by no means is a complete simulator. To run this repository see below for external library requirements.
Along with the standard C/C++ libraries there are two additional external libraries. Since MBQC is a graph theoretic based paradigm, the numerical library, Boost is called and with it, its graph library. To performthe quantum computation the current backend simulator is QuEST. Each of these libraries can be found here:
- Boost: https://www.boost.org/
- Boost graph library: https://www.boost.org/doc/libs/1_78_0/libs/graph/doc/index.html
- Download: https://www.boost.org/users/download/
- Homebrew: https://formulae.brew.sh/formula/boost
- GraphViz
- Page: https://graphviz.org/
- Downloads: https://graphviz.org/download/
- QuEST: https://quest.qtechtheory.org/
- Download page: https://quest.qtechtheory.org/download/
- Github: https://github.com/QuEST-Kit/QuEST
- Github organisation: https://github.com/QuEST-Kit
- Documentation: https://quest-kit.github.io/QuEST/modules.html
These (Boost and QuEST) are both REQUIRED to run this MBQC. GraphViz is required to print graphs to file.
- Download boost, the
CMakeLists.txt
file in the root of this repository attempts to find Boost. For any trouble with this step please open and issue and we will respond as soon as possible. - Download the QuEST repository from GitHub and save the folder to
$HOME/Projects/QuEST/
andCMakeLists.txt
should be able to load it. For any trouble with this step please open and issue and we will respond as soon as possible. (Note that$HOME
is used in Linux to represent the home directory such as/home/username/
To run a simple script executing a two dimensional lattice graph and measuring every qubit do the following
- Clone this repos with
git clone git@github.com:ediparquantum/MBQC.git
(I use ssh, use what works for you) to$HOME/Projects
- Navigate to
$HOME/Projects
(egcd $HOME/Projects/MBQC
) - Make a directory called
build
in$HOME/Projects/MBQC
withmkdir build
. - Navigate to
build
(egcd build
assuming you are already incd $HOME/Projects/MBQC
)
Now you are ready to run cmake: cmake ..
and should see
Now run make
and should see
Now run ./mbqcStarterFile
and should see
For any trouble with this step please open and issue and we will respond as soon as possible.