^^
Constraint programming.
https://developers.google.com/optimization/cp/cp_solver