grbaddvars.


grbaddvars.

grbaddvars. grbmodel. *模型,
numvars,
numnz,
* vbeg,
* vind,
双倍的 * vval,
双倍的 * obj,
双倍的 *磅,
双倍的 * UB,
char * vtype,
Const Char. ** varnames)

将新变量添加到模型中。注意,由于我们的延迟更新方法,在更新模型之前,实际上不会添加新变量(使用grbupdatemodel.),优化模型(使用grboptimize.)或将模型写入磁盘(使用grbwrite.)。

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

返回值:

非零返回值表示添加变量时发生问题。参考错误代码表格有可能返回值列表。有关错误的详细信息可以通过呼叫获得grbgeterramsg.

论点:

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

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

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

vbeg.:在压缩稀疏列(CSC)格式中将约束矩阵非零值传递到该例程中。约束矩阵中的每个列表示为索引值对列表,其中每个索引条目提供非零系数的约束索引,并且每个值条目提供相应的非零值。模型中的每个变量都有一个vbeg.,表示该变量的非零的起始位置vvval.阵列。此例程需要连续存储列,因此变量的起始位置是先前变量的结束位置。举个例子,如果vbeg [2] = 10vbeg [3] = 12,这表明变量2具有与其相关联的两个非零值。他们的约束指数可以找到Vind [10]Vind [11],并且可以找到这些非零的数值vval [10]vval [11]

v:与非零值相关联的约束指数。查看描述的描述vbeg.有关更多信息的论证。

vval.:与约束矩阵非零关联的数值。查看描述的描述vbeg.有关更多信息的论证。

obj.:新变量的客观系数。这个论点可以空值,在这种情况下,物镜系数被设置为0.0

:新变量的下限。这个论点可以空值,在这种情况下所有变量都会获得下限0.0

UB.:新变量的上限。这个论点可以空值,在这种情况下,所有变量都会获得无限的上限。

vtype.:变量类型。选择是grb_continuous.grb_binary.grb_integer.grb_syemont., 或者grb_semiint.。这个论点可以空值,在这种情况下,所有变量都被假定为连续。

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