Divide-and-Conquer QAOA for Max Cut
Notebooks
The Jupyter notebooks in this folder are designed to run in an environment with CUDA-Q with Python. For instructions on how to install CUDA-Q on your machine, check out this guide. A Dockerfile and requirements.txt are also included in the main directory of the repository to help get you set up.
Otherwise, if you have set up an account in any of the platforms listed below, simply click on the icons below to run the notebooks on the listed platform.
Notebook | qBraid[^1] | CoCalc[^2] | Google Colab[^3] |
---|---|---|---|
Lab 0: Start Here | ![]() | ||
Lab 1: Max Cut with QAOA | ![]() | ||
Lab 2: One level Divide and Conquer[^4] | ![]() | ||
Lab 3: Recursive Divide and Conquer[^5] | ![]() | ||
Lab 4: Assessment[^6] | ![]() |
[^1]:If using qBraid Lab, use the Environment Manager to install the CUDA-Q environment and then activate it in your notebook. In qBraid Lab you can switch to a GPU instance using the Compute Manager. To run the optional interactive widgets in the notebooks, you'll need to copy the interactive widget folder into your environment. [^2]:After following the link, select the "Edit your own copy" button, and either select or create a project. Use the run icon in the upper toolbar to execute Python cells. To run the optional interactive widgets in the notebooks, you'll need to copy the interactive widget folder into your environment. [^3]:You will need to uncomment out the pip install cudaq
code in each notebook to run on Google CoLab. To run the optional interactive widgets in the notebooks, you'll need to copy the interactive widget folder into your environment. [^4]: The majority of the code in this lab can be executed on CPU. However, the final example employing parallelization does require a GPU. If you don't have GPU access, you can still appreciate and learn from the code without executing it.
[^5]: See the footnote above. [^6]: The assessment does require a GPU to execute. If you don't have GPU access, you can still appreciate and learn from the code without executing it.