Model.addGenConstrIndicator ()
Model.addGenConstrIndicator ()
addGenConstrIndicator(binvar, binval, lhs, sense=None, rhs=None, name="")添加一个新的通用类型约束伽马射线爆发。GENCONSTR_INDICATOR一个模型。
一个指标约束表示如果二进制指示符变量等于,在那里,则为线性约束应该持有。另一方面,如果,则可能违反线性约束。线性约束的意义也可以指定为或.
注意,指示器变量的约束将被迫是二进制的,与它是如何创建的无关。
您还可以使用特殊的重载语法添加指示器约束。有关详细信息,请参阅下面的示例。
参数:
binvar (Var):二进制指示变量。
binval(布尔):强制满足线性约束的二进制指示变量的值。
lhs (float, Var, LinExpr,或TempConstr):指示器触发的线性约束的左侧表达式。可以是常数a吗Var,或者一个LinExpr.或者,可以使用临时约束对象来定义由指示符触发的线性约束。临时约束对象是使用重载比较运算符创建的。看到TempConstr为更多的信息。在这种情况下,“sense”和“rhs”参数必须保持其默认值没有一个.
(字符):对线性约束的感知。选项是伽马射线爆发。LESS_EQUAL,伽马射线爆发。平等的,或伽马射线爆发。GREATER_EQUAL.
园艺学会(浮动):线性约束的右侧值。
名称(字符串,可选):新的通用约束的名称。请注意,的名字将被存储为ASCII字符串。因此,一个名字就像“一个B”会产生错误,因为''不能用ASCII字符表示。还请注意,强烈不鼓励包含空格的名称,因为它们不能写入LP格式文件。
使用示例:
# x7 = 1 -> x1 + 2 x3 + x4 = 1模型。addGenConstrIndicator(x7, True, x1 + 2*x2 + x4, GRB.EQUAL, 1.0) # alternative form model.addGenConstrIndicator(x7, True, x1 + 2*x2 + x4 == 1.0) # overloaded form model.addConstr((x7 == 1) >> (x1 + 2*x2 + x4 == 1.0))