^^Constraint programming.

https://developers.google.com/optimization/cp/cp_solver