This book collects Julia and Python notebooks for learning mathematical programming, quadratic unconstrained binary optimization, and quantum and quantum-inspired optimization workflows. The notebooks pair mathematical formulations with executable examples, local validation, and explicitly gated cloud-hardware paths.
Notebook outputs are generated before publication rather than during the site build. This keeps the public book reproducible without placing solver credentials in GitHub Actions or consuming cloud-service credits on every documentation build.
Notebook map¶
Follow Lectures 1–5 in order: mathematical programming → classical QUBO/Ising models → classical augmentation methods → D-Wave and quantum methods → benchmarking. Lecture 4’s Python notebook places an optional CUDA-Q QAOA comparison after quantum annealing, using the same QUBO and exact baseline. Later notebooks extend the applications and methods, including a dedicated QAOA lesson in Lecture 10.
| Topic | Python | Julia |
|---|---|---|
| Mathematical Programming | 1 | 1-MathProg.ipynb |
| QUBO and Ising Models | 2-QUBO_python.ipynb | 2-QUBO.ipynb |
| Graver Augmentation Multiseed Algorithm | 3-GAMA_python.ipynb | 3-GAMA.ipynb |
| D-Wave | 4 | 4-DWave.ipynb |
| Benchmarking | 5 | 5 |
| QCI | 6-QCi_python.ipynb | 6-QCi.ipynb |
| Canonical QUBO problems | — | 7 |
| Order partitioning for A/B testing | — | 8 |
| Altered cancer pathways | — | 9 |
| Local-first QAOA | — | 10-QAOA.ipynb |
| Local simulated and quantum annealing | — | 11-Annealing.ipynb |
See Local Setup to build the book or reproduce notebook outputs. Each notebook page also provides an Open in Colab action.