This unofficial primer for the OR-Tools CP-SAT solver is designed to help you understand this powerful tool. It may be especially useful if you are coming from the Mixed Integer Linear Programming community, as the CP-SAT solver can be successful in cases where Branch and Bound performs poorly.
Topics include:
- Installation. Quick installation guide.
- Examples. A short example, showing the usage of CP-SAT.
- Basic modeling. An overview of variables, objectives, and constraints.
- Advanced modeling. More complex constraints, such as circuit constraints and intervals.
- Parameters. How to specify CP-SATs behavior, if needed. Timelimits, hints, assumptions, parallelization, ...
- Coding patterns. Basic design patterns for creating maintainable algorithms.
- How does it work? After we know what we can do with CP-SAT, we look into how CP-SAT will do all these things.
- Alternatives. An overview of the different optimization techniques and tools available. Putting CP-SAT into context.
- Benchmarking your model. How to benchmark your model and how to interpret the results.
- Large neighborhood search. The use of CP-SAT to create more powerful heuristics.
Blog: CP-SAT primer.