GRBaddgenconstrIndicator


GRBaddgenconstrIndicator

int GRBaddgenconstrIndicator GRBmodel *模型,
const char *姓名、
int binvar,
int binval,
int 据nvar,
const int *印第安纳州,
const双 * val,
字符 意义上说,
rhs)

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

一个指标约束<span>$< span>z = f \right tarrow a^Tx \leq b<span>$</span>表示如果二进制指示变量< span > < / span > z < span >美元< / span >等于< span > < / span > f < span >美元< / span >,在那里< span > < /美元跨度> f \ \ {0,1 \} < span > < / span >美元,则为线性约束< span > < / span >美元^ Tx \ leq b < span > < / span >美元应该持有。另一方面,如果< span > < / span > z =美元行进< span > < / span >美元,可能违反线性约束。线性约束的意义也可以指定为< span > < / span > = < span >美元< / span >”或“< span > < /美元跨度> \组< span > < / span >美元”。

请注意指示器变量< span > < / span > z < span >美元< / span >的约束将被迫是二进制的,与它是如何创建的无关。

参数:

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

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

binvar:二进制指标变量的索引< span > < / span > z < span >美元< / span >

binval价值:< span > < / span > f < span >美元< / span >对于将强制满足线性约束的二进制指标变量(< span > < / span > 0 < span >美元< / span >< span > < / span > 1美元美元< span > < / span >).

据nvar数量:< span > < / span > n < span >美元< / span >在非零系数的线性约束下触发的指标。

印第安纳州:变量索引< span > < /美元跨度> x_j < span > < / span >美元具有非零值的线性约束条件。

瓦尔:非零值的数值< span > < /美元跨度> a_j < span > < / span >美元在线性约束下。

感觉:表示线性约束的意义。选项是GRB_LESS_EQUALGRB_EQUAL,或GRB_GREATER_EQUAL

园艺学会:线性约束的右边值。

返回值:

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

使用示例:

/ * x7 = 1 - > x1 + 2 x3 + x4 = 1 * / int印第安纳州[]= {1,3,4};Double val[] = {1.0, 2.0, 1.0};error = grbadgenconstrucindicator(模型,NULL, 7, 1, 3, ind, val, GRB_EQUAL, 1.0);