Model.addGenConstrXxx ()
Model.addGenConstrXxx ()
下面描述的每个函数都添加了一个新的一般的约束一个模型。
数学规划传统上定义了一组基本约束类型:变界约束、线性约束、二次约束、完整性约束和SOS约束。这些问题通常由底层求解器直接处理(尽管并不总是),并且是整个算法的基础。手机万博登录
Gurobi接受许多额外的约束类型,我们将其统称为一般的约束.这些都是典型的不由求解器直接处理。手机万博登录相反,它们是通过求解转换成数学上等价的约束(和变量)集,这些约束(和变量)是从上面列出的基本类型中选择的。为方便用户而提供这些通用约束。如果这样的约束出现在您的模型中,但是如果您更喜欢使用基本约束类型自己重新规划它们,那么您当然可以这样做。但是,请注意,Gurobi有时可以利用模型中其他约束所包含的信息来构建比您可能创建的更高效的公式。
属于此范围的附加约束类型一般的约束伞是:
- MAX (Model.addGenConstrMax):设置一个决策变量等于一组决策变量中的最大值
- 分钟(Model.addGenConstrMin):设置一个决策变量等于一组决策变量中的最小值
- ABS (Model.addGenConstrAbs):设置一个决策变量等于另一个决策变量的绝对值
- 和(Model.addGenConstrAnd):当且仅当所有的二元决策变量都等于1时,设置一个二元变量等于1
- 或(Model.addGenConstrOr):当且仅当一组二元决策变量中至少有一个变量等于1时,设置一个二元变量等于1
- 指标(Model.addGenConstrIndicator):当给定的二元变量取一定的值时,则必须满足给定的线性约束
您还可以通过添加一般约束addConstr或addConstrs,使用重载操作符和一些通用约束辅助函数.下面的描述将说明这些等效的、更简洁的替代方案。
请参考本节有关一般约束的更多细节。