GRBaddgenconstrIndicator
GRBaddgenconstrIndicator
int | GRBaddgenconstrIndicator( | GRBmodel | *模型, |
const char | *姓名、 | ||
int | binvar, | ||
int | binval, | ||
int | 据nvar, | ||
const int | *印第安纳州, | ||
const双 | * val, | ||
字符 | 意义上说, | ||
双 | rhs) |
添加一个新的通用类型约束GRB_GENCONSTR_INDICATOR一个模型。注意,由于我们的惰性更新方法,新的约束实际上不会添加,直到您更新模型(使用GRBupdatemodel),优化模型(使用GRBoptimize),或者将模型写入磁盘(使用GRBwrite).
一个指标约束表示如果二进制指示变量等于,在那里,则为线性约束应该持有。另一方面,如果,可能违反线性约束。线性约束的意义也可以指定为”或“”。
请注意指示器变量的约束将被迫是二进制的,与它是如何创建的无关。
参数:
模型:应加入新的一般约束的模型。
的名字:新通用约束的名称。这个论证可以是零,在这种情况下,约束被赋予一个默认名称。
binvar:二进制指标变量的索引.
binval价值:对于将强制满足线性约束的二进制指标变量(或).
据nvar数量:在非零系数的线性约束下触发的指标。
印第安纳州:变量索引具有非零值的线性约束条件。
瓦尔:非零值的数值在线性约束下。
感觉:表示线性约束的意义。选项是GRB_LESS_EQUAL,GRB_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);