GRBaddgenconstrIndicator


GRBaddgenconstrIndicator

int GRBaddgenconstrIndicator GRBmodel *模型,
const char *姓名、
int binvar,
int binval,
int 据nvar,
int * 印第安纳州,
双* 瓦尔,
字符 意义上说,
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 > < /美元跨度> 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 >的约束将被迫是二进制的;独立于它是如何创建的。

参数:

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

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

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

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

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

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

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

char感:对线性约束的感知。选项是GRB_LESS_EQUALGRB_EQUAL,或GRB_GREATER_EQUAL

双rhs:线性约束的右侧值。

返回值:

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

使用示例:

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