GRBaddgenconstrAnd


GRBaddgenconstrAnd

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

添加一个新的通用类型约束GRB_GENCONSTR_AND一个模型。注意,由于我们的延迟更新方法,只有在您更新模型(使用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 >

注意,参与这种约束的所有变量都将被强制为二进制;独立于它们是如何被创造出来的。

参数:

模型:应该添加新的通用约束的模型。

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

int resvar:二进制结果变量的索引< span > < / span > r < span >美元< / span >它的值将等于其他变量的AND连接。

int据nvar数量:< span > < / span > n < span >美元< / span >二进制操作数变量的和运算符。

const int *增值:包含二进制操作数变量下标的数组< span > < /美元跨度> x_j < span > < / span >美元与将采取的连接。

返回值:

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

使用示例:

/ * x5 = (x1, x3, x4) * / int印第安纳州[]= {1,3,4};error = GRBaddgenconstrAnd(model, "andconstr", 5, 3, ind);