前言
近几年,在工业界的大规模问题上,越来越多的人将目光聚焦于问题的可行解,而非最优解上。也就是所谓的约束满足问题,而市面上能解决工业级大规模问题的规划求解器主要有CPLEX的CP组件(商业),和OR-Tools的CP-SAT求解器(开源)。
本文介绍的CP-SAT的底层是C++,而且包含了多种语言的API,即时是Python调用也十分高效。它的底层算法利用了一些约束满足性传播搜索等方法,在定义域上搜索满足所有约束的可行解,在一些高度非凸问题上,CP-SAT相比一些MIP求解器具有支配性的效率。这里将引用公开资料当中的案例,介绍下如何用CP-SAT进行求解。
CP-SAT入门案例
简单案例:给出如下问题:有三个变量 x , y , x