文章目录
1. 前言
近年来,在一些实际的应用场景中,约束规划求解器的优势愈发显现,由于特定场景下的约束条件非常复杂,且并不需要像数学规划一样给出一个最优的方案,而是需要在较短的时间内得到一个可行的次有方案,这种场景下,约束规划求解器往往能具有较好的表现。
这类只需要考虑能否满足约束的求可行解的问题,称为约束满足问题,在许多具体领域诸如人工智能、信息安全、集成电路设计、软件验证等都有广泛应用。
2. 约束满足问题 CSP/SAT/SMT 的联系与区别
2.1 Constraint Satisfaction Problem
如前文介绍的 OR-Tools 的 CP-SAT 求解器,可以视为约束满足问题(Constraint Satisfaction Problem,CSP)求解器,根据 相关文章 的解释:一组变量(类型可以是整数、实数等),每个变量有自己的值域,当每个变量都有自己的赋值且满足所有关于变量的约束时,问题就得到了解决,这类问题就叫做约束满足问题。
这是在数学建模中常见的形式,一般不涉及逻辑表达式和逻辑推理,例如下面两条约束,默认是同时满足所有的约束,即