约束目录
-
- 有定界的线性约束 Add()/AddLinearConstraint()
- 绝对值约束 AddAbsEquality()
- 互不相等约束 AddAllDifferent()
- 限制变量取值 AddAllowedAssignments()/AddForbiddenAssignments()
- 多条件约束 AddBoolAnd()/AddBoolOr()
- 哈密顿回路 AddCircuit()
- 累计数量约束 AddCumulative()
- 取整商约束 AddDivisionEquality()
- 最大/小值约束 AddMaxEquality()/AddMinEquality()
- 分段约束 AddImplication()
在 OR-Tool 当中,建立的模型信息都包含在 CpModel()
对象当中,其中,为模型添加约束的方法为模型对象中 Add...
形式的函数,这些函数涵盖的约束类型非常多。
由于凸性问题有很好的性质,因此对于目前大部分的求解器而言,都需要问题的可行域是凸的。
包括分段函数、绝对值函数、指示函数、最大最小值函数等等,能够以非常方便的用法实现,相比于运筹当中常常使用的线性化思路,直接调用OR-Tools的特定约束函数建模,能节省很多公式推导及模型检查的工作。(本文仅介绍部分常见的约束类型)
有定界的线性约束 Add()/AddLinearConstraint()
在OR-Tools当中,添加约束用 Add()
函数,默认创建了 BoundedLinearExpression
对象,仅支持线性表达式,且表达式的边界为固定边界。
x