Skip to content

MinorEmbedding/graph-embedder

Repository files navigation

graph-embedder

Documentation Status

Testing a bunch of graph minor embedding heuristics and related techniques to improve the embedding of QUBOs.

Our final results for the project can be found here.

⚠️ This is a research repo, so APIs and algorithms might change frequently as we are trying out different ideas. Moreover, this means that the code is not production-ready.
☝️ We currently do not implement the same approaches in C++ and Python, but try out different ideas in different programming languages. Make sure to check out both the C++ and Python implementation.

Python

All Python-related code and documentation can be found in the Python folder.

C++

Build C++ library

Note that in order to build, you have to clone the submodules as well. That is, if you have already cloned this repository, you should run git submodule update --init --recursive and find the submodules in external/. In the case, you are about to clone the repository, just run git clone --recursive https://github.com/MinorEmbedding/majorminer.git.

In order to build, you must then run the following commands

bash prepare.sh
mkdir build
cd build/
cmake .. -DMAJORMINER_BUILD_TESTS=[ON|OFF] # depending on whether you want to run tests
make

Libraries used in the C++-Project

oneTBB (License: Apache 2.0)

Eigen (License: MPL2, disabled LGPL features.)

thread-pool (License: MIT)