GRBADDGENConstricator


GRBADDGENConstricator

int GRBADDGENConstricator( GRB模型 *模型,
常量字符 *名字,
int 宾瓦尔,
int 宾瓦尔,
int nvars,
int* 印第安纳州,
双重的* 瓦尔,
烧焦 感觉
双重的 (右)

添加类型为的新常规约束GRB\u发电商TR\u指示器一个模特。注意,由于我们的延迟更新方法,在您更新模型(使用GRBupdatemodel),优化模型(使用GRB优化),或将模型写入磁盘(使用GRBwrite).

指标约束<span>$</span>z=f\rightarrow a^Tx\leq b<span>$</span>表示如果二进制指示符变量<span>$</span>z<span>$</span>等于<span>$</span>f\in\{0,1\}<span>$</span>,然后是线性约束<span>$</span>a^Tx\leq b<span>$</span>应该保持,另一方面,如果<span>$</span>z=1-f<span>$</span>,可能会违反线性约束。线性约束的含义也可以指定为“<span>$</span>=<span>$</span>“或”<span>$</span>\geq<span>$</span>”.

请注意,指示符变量<span>$</span>z<span>$</span>约束的类型将强制为二进制;与它的创建方式无关。

论据:

模型:应向其添加新常规约束的模型。

名称:新常规约束的名称。此参数可以是无效的,在这种情况下,将为约束指定默认名称。

int宾瓦尔:二进制指示符变量的索引<span>$</span>z<span>$</span>.

内宾瓦尔:值<span>$</span>f<span>$</span>用于强制满足线性约束的二进制指示符变量(<span>$</span>0<span>$</span><span>$</span>1<span>$</span>).

国际nvars:号码<span>$</span>n<span>$</span>由指示器触发的线性约束中的非零系数。

常数int*ind:变量的索引<span>$</span>x_j<span>$</span>在线性约束中使用非零值。

常数双*val:非零值的数值<span>$</span>a_j<span>$</span>在线性约束中。

煤焦感:线性约束的意义。选项包括GRB_小于等于,GRB_相等GRB_大于等于.

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

返回值:

非零返回值表示添加常规约束时出现问题。请参阅错误代码表获取可能返回值的列表。可通过调用GRBgeterrormsg.

用法示例:

/*x7=1->x1+2x3+x4=1*/int ind[]={1,3,4};double val[]={1.0,2.0,1.0};error=grbaddgenconstricator(model,NULL,7,1,3,ind,val,GRB_EQUAL,1.0);