GRBaddgenconstrOr


GRBaddgenconstrOr

int GRBaddgenconstrOr GRBmodel *模型,
const char *姓名、
int resvar,
int 据nvar,
const int * var)

添加一个新的通用类型约束GRB_GENCONSTR_OR一个模型。注意,由于我们的惰性更新方法,新的约束实际上不会添加,直到您更新模型(使用GRBupdatemodel),优化模型(使用GRBoptimize),或者将模型写入磁盘(使用GRBwrite).

一个或约束< 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 >

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

参数:

模型:应加入新的一般约束的模型。

的名字:新通用约束的名称。这个论证可以是,在这种情况下,约束被赋予一个默认名称。

resvar:二进制合成变量的索引< span > < / span > r < span >美元< / span >它的值将等于其他变量的OR连接。

据nvar数量:< span > < / span > n < span >美元< / span >将对其进行OR运算的二进制操作数变量。

var:包含二进制操作数变量下标的数组< span > < /美元跨度> x_j < span > < / span >美元将在其上进行OR连接。

返回值:

非零返回值表明在添加一般约束时发生了问题。指的是错误代码可能返回值列表的表。关于错误的详细信息可以通过调用来获得GRBgeterrormsg

使用示例:

/* x5 = or(x1, x3, x4) */ int ind[] = {1,3,4};error = grbadgenconstror(模型,"orconstr", 5, 3, ind);