Model.addGenConstrOr ()


Model.addGenConstrOr ()

addGenConstrOr(resvar, vars, name="")

添加一个新的通用类型约束伽马射线爆发。GENCONSTR_OR一个模型。

一个或约束< span > < / span > r =美元\ mbox{或}\ {x_1、\ ldots x_n \} < span > < / span >美元表示二元结式变量< span > < / span > r < span >美元< / span >应该是< span > < / span > 1美元美元< span > < / span >当且仅当任何操作数变量< span > < /美元跨度> x_1、\ ldots x_n < span > < / span >美元等于< span > < / span > 1美元美元< span > < / span >.如果所有操作数变量都是< span > < / span > 0 < span >美元< / span >,那么结果应该是< span > < / span > 0 < span >美元< / span >

请注意,参与这种约束的所有变量都将被强制为二进制变量,与它们是如何创建的无关。

控件还可以添加OR约束or_函数。

参数:

resvar (Var):其值将等于其他变量的OR连接的变量。

Var (Var列表):将进行OR连接的变量。

名称(字符串,可选):新的通用约束的名称。请注意,的名字将被存储为ASCII字符串。因此,一个名字就像“一个< span > < /美元跨度> {\ rightarrow} < span > < / span >美元B”会产生错误,因为'< span > < /美元跨度> {\ rightarrow} < span > < / span >美元'不能用ASCII字符表示。还请注意,强烈不鼓励包含空格的名称,因为它们不能写入LP格式文件。

使用示例:

# x5 =或(x1, x3, x4)模型。addGenConstrOr(x5, [x1, x3, x4], "orconstr") # overloaded forms model.addConstr(x5 == or_([x1, x3, x4]), "orconstr") model.addConstr(x5 == or_(x1, x3, x4), "orconstr")