GRBaddvars


GRBaddvars

int GRBaddvars GRBmodel *模型,
int numvars,
int numnz,
int * vbeg,
int * vind,
* vval,
* obj,
*磅,
*乌兰巴托,
字符 * vtype,
const char * * varnames)

向模型中添加新变量。注意,由于我们的惰性更新方法,新变量实际上不会被添加,直到您更新模型(使用GRBupdatemodel),优化模型(使用GRBoptimize),或将模型写入磁盘(使用GRBwrite).

如果约束矩阵可能包含超过20亿个非零值,则应考虑使用GRBXaddvars这个程序的变体。

返回值:

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

参数:

模型:新变量应该添加到的模型。

numvars:要添加的新变量的数量。

numnz:新列中非零系数的总数。

vbeg约束矩阵非零值以压缩稀疏列(Compressed Sparse Column, CSC)格式传入此例程。约束矩阵中的每一列都表示为一个索引值对列表,其中每个索引项提供一个非零系数的约束索引,每个值项提供相应的非零值。模型中的每个变量都有一个vbeg,表示该变量的非零值的起始位置vindvval数组。这个例程要求连续存储列,因此变量的起始位置是前一个变量的结束位置。举个例子,如果vbeg [2] = 10vbeg [3] = 12,这表明变量2有两个与之相关的非零值。它们的约束指数可以在vind [10]vind [11],这些非零的数值可以在vval [10]vval [11]

vind:与非零值相关联的约束索引。的描述vbeg以获取更多信息。

vval:与约束矩阵非零相关的数值。的描述vbeg以获取更多信息。

obj:新变量的客观系数。这个论点可以是,此时客观系数设为0.0

:新变量的下界。这个论点可以是,在这种情况下,所有变量的下界0.0

乌兰巴托:新变量的上界。这个论点可以是,在这种情况下,所有的变量都有无限的上界。

vtype:变量的类型。选项是GRB_CONTINUOUSGRB_BINARYGRB_INTEGERGRB_SEMICONT,或GRB_SEMIINT.这个论点可以是,在这种情况下,假设所有变量都是连续的。

varnames:新变量的名称。这个论点可以是,在这种情况下,所有变量都给出了默认名称。