ortools/sat/README.md
This directory contains a next-gen Constraint Programming (CP) solver with clause learning. It is built on top of an efficient SAT/max-SAT solver whose code is also in this directory.
The technology started in 2009. A complete presentation is available here.
CP-SAT was described during the CPAIOR 2020 masterclass. The recording is available here.
To begin, skim cp_model.proto to understand how optimization problems can be modeled using the solver. You can then solve a model with the functions in cp_model_solver.h.
The optimization model description and related utilities:
Standalone SAT solver and related files. Note that this is more than a basic SAT solver as it already includes non-clause constraints. However, these do not work on the general integer problems that the CP solver handles.
Pure SAT solver:
Extension:
Input/output:
CP solver built on top of the SAT solver:
You can find a set a code recipes in the documentation directory.