A curated list of awesome OR-Tools community and official resources.
OR-Tools-related reading materials.
Google-produced reading materials:
- Online Documentation.
- References Documentations.
- or-tools-discuss: official mailing list.
- GitHub Discussion (beta).
- Discord Channel: official chat.
- OR-Tools Blog: unmaintained blog.
- OR-Tools User's Manual: unmaintained manual.
Community-produced reading materials:
- Stack Overflow
[or-tools]
tagged questions. - Xiang Chen's Blog Mostly CP-SAT related stuff.
- Activimetrics's Blog Mostly routing related stuff.
- freshcodeit.com General Presentation.
- medium.com "Google OR Tools A Guide".
- oreilly.com Practical Python AI Projects: Mathematical Models of Optimization Problems with Google OR-Tools.
- mlabonne.github.io Introduction to Linear Programming in Python.
- mlabonne.github.io Introduction to Integer Programming in Python.
- mlabonne.github.io Introduction to Constraint Programming in Python.
- Scheduling optimization in blending plants CP-SAT + ML practical example.
- kaggle.com Assignment and Routing example.
- Yet Another Math Programming Consultant 2D Bin packing with Google OR-Tools CP-
- Alireza Soroudi's git repository (CP-SAT examples)
- Philippe Olivier's Blog (CP-SAT examples)
SAT.
- Prescient Analytics First Look at OR-Tools.
- SCM DATA Simple LP Tutorial.
- SCM DATA Work scheduling using CP-SAT.
Research articles using OR-Tools solvers and technologies.
- CP-SAT:
- Scheduling: R. Montemanni, M. Dell’Amico, Solving the Parallel Drone Scheduling Traveling Salesman Problem via Constraint Programming. Algorithms 2023, 16 (40). doi: 10.3390/a16010040.
- Cryptography: E. A. Markatou, F. Falzon, Z. Espiritu, R. Tamassia, Attacks on Encrypted Range Search Schemes in Multiple Dimensions. Proceedings on Privacy Enhancing Technologies 2023(4), 204–223. doi: 10.56553/popets-2023-0106
- Scheduling: S. König, M. Reihn, F. G. Abujamra, A. Novy, B. Vogel‑Heuser, Flexible scheduling of diagnostic tests in automotive manufacturing. Flexible Services and Manufacturing Journal 2023, 35, pp. 320–342. doi: 10.1007/s10696-021-09438-3
- Assignment: K. Zhu, N. Gillani, P. Van Hentenryck. Impacts of Differential Privacy on Fostering more Racially and Ethnically Diverse Elementary Schools. International Conference on Computational Social Science 2023
- Routing:
- Drone scheduling: L. Sedov, A. Krasnochub, V. Polishchuk, Modeling quarantine during epidemics and mass-testing using drones. PLOS ONE 2020, 15(6), e0235307. doi: 10.1371/journal.pone.0235307
- Clustering: K. Abdou, O. Mohammed, G. Eskandar, A. Ibrahim, P.-A. Matt, M. F. Huber, Smart nesting: estimating geometrical compatibility in the nesting problem using graph neural networks. Journal of Intelligent Manufacturing 2023, doi: 10.1007/s10845-023-02179-0
- Travelling-salesperson problem (TSP): H. Gao, X. Zhou, X. Xu, Y. Lan, Y. Xiao, AMARL: An Attention-Based Multiagent Reinforcement Learning Approach to the Min-Max Multiple Traveling Salesmen Problem. IEEE Transactions on Neural Networks and Learning Systems 2023, doi: 10.1109/TNNLS.2023.3236629
- Travelling-salesperson problem (TSP): J. Park, C. Kwon, J. Park, Learn to Solve the Min-max Multiple Traveling Salesmen Problem with Reinforcement Learning. Proceedings of the International Conference on Autonomous Agents and Multiagent Systems 2023, pp. 878-886. doi: 10.5555/3545946.3598725
- Pickup and delivery (PDP): F. M. Bergmann, S. M. Wagner, M. Winkenbach, Integrating first-mile pickup and last-mile delivery on shared vehicle routes for efficient urban e-commerce distribution. Transportation Research Part B: Methodological 2020, 131, pp. 26-62. doi: 10.1016/j.trb.2019.09.013
- Linear solver interface (MPModel):
- Facility location: R. B. Lippmann, K. J. Helmstedt, M. T. Gibbs, P. Corry, Optimizing facility location, sizing, and growth time for a cultivated resource: A case study in coral aquaculture. PLOS ONE 2023, 18(3), e0282668. doi: /10.1371/journal.pone.0282668
- Bin packing: T. Li, Z. Erkin, R. L. Lagendijk, Privacy-Preserving Bin-Packing With Differential Privacy. IEEE Open Journal of Signal Processing 2022, 3, pp. 94-106. doi: 10.1109/OJSP.2022.3153231
- Graph algorithms:
Google-produced watching materials:
- OR-tools General presentation by Pawel Lichocki.
Community-produced watching materials:
- Primera sesión - "Optimización con Google OR Tools + Python": LP, MIP and assignment tutorial (Universidad Libre Columbia).
- Segunda sesión - "Optimización con Google OR Tools + Python": routing TSP tutorial (Universidad Libre Columbia).
- Building AI Solutions with Google OR-Tools - Barry Stahl.
- OR-Tools を使って数理最適化に触れてみよう.
- SCM DATA: job scheduling using CP-SAT.
Samples and models from the community.
Few canonical samples to advertise basic features of each module, There are usually written in all supported languages.
- Algorithms samples.
- Graph samples.
- Linear Solver samples.
- Constraint Solver samples Mostly routing samples.
- CP-SAT samples.
- Glop samples.
More advanced or complex examples usually merging few concepts and available (i.e. written) in one language.
- Miscellaneous examples.
- Contrib examples Community contributed examples.
- Hakank's examples Dozens of combinatorial problems and puzzles.
- MrBenGriffin's examples Models (Delegate Seating) and puzzle solvers.
Reading materials related to OR-Tools internals.
- Search is Dead, Long Live Proof (talk): SAT technology presentation.
- CPAIOR 2020: CP-SAT: how CP-Sat works internally.
- CP-SAT Primer: A Primer by Dominik Krupke.
- EWO Seminar 2023: The CP-SAT-LP solver: internals of CP-SAT-LP with slides.