GRBgetgenconstrIndicator


GRBgetgenconstrIndicator

int GRBgetgenconstrIndicator GRBmodel *模型,
int id,
int * binvarP,
int * binvalP,
int * nvarsP,
int * 印第安纳州,
双* 瓦尔,
char * senseP,
双* rhsP)

检索类型为INDICATOR的通用约束的数据。为不同类型的一般约束调用此函数将导致错误返回代码。您可以查询GenConstrType属性确定一般约束的类型。

典型用法是调用这个例程两次。在第一个调用中,您指定请求的一般约束,使用的值印第安纳州瓦尔参数。例程返回与中指定的指示器约束相关联的线性约束中非零系数的总数nvarsP.这样你就能确保印第安纳州瓦尔数组的大小足以容纳第二次调用的结果。

另请参阅GRBaddgenconstrIndicator查看此通用约束类型的语义描述。

返回值:

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

参数:

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

id:要检索的一般约束的索引。

注意,以下参数的任何组合都可以

int * binvarP:与二进制指标变量相关联的变量索引。

int * binvalP:指示器变量为触发线性约束所必须取的值。

int * nvarsP:指标触发的线性约束中非零系数的个数。

int *印第安纳州:用于存储线性约束中非零值的可变索引的数组。

双*瓦尔:用于存储线性约束中非零值的数值的数组。

char * senseP:表示线性约束的意义。选项是GRB_LESS_EQUALGRB_EQUAL,或GRB_GREATER_EQUAL

双* rhsP:线性约束的右边值。

使用示例:

int类型;int binvar;Int binval: Int nvars;int *印第安纳州;双* val;char感;双rhs;error = grbgetintattrement(模型,grb_int_attr_genconstructype, 3, &类型);如果(type == grb_genconstruc_indicator) {error = grbgetgenconstruc_indicator(模型,3,&binvar, &binval, &nvars, NULL, NULL, &sense, &rhs);/ *……allocate ind and val to hold 'nvars' values... */ error = GRBgetgenconstrIndicator(model, 3, NULL, NULL, NULL, ind, val, NULL, NULL); }