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.,表示该变量的非零的起始位置v和vval.阵列。此例程需要连续存储列,因此变量的起始位置是先前变量的结束位置。举个例子,如果vbeg [2] = 10和vbeg [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.:新变量的名称。这个论点可以空值,在这种情况下,所有变量都是给出的默认名称。