GRBXaddvars
GRBXaddvars
int | GRBXaddvars( | GRBmodel | *模型, |
int | numvars, | ||
size_t | numnz, | ||
size_t | * vbeg, | ||
int | * vind, | ||
双 | * vval, | ||
双 | * obj, | ||
双 | *磅, | ||
双 | *乌兰巴托, | ||
字符 | * vtype, | ||
const char | * * varnames) |
的size_t
版本的GRBaddvars.计算非零值的两个参数为类型size_t
在此版本中支持具有超过20亿个非零值的模型。
向模型添加新变量。注意,由于我们采用了延迟更新方法,在更新模型(使用GRBupdatemodel),优化模型(使用GRBoptimize),或将模型写入磁盘(使用GRBwrite).
返回值:
非零返回值表示在添加变量时发生了问题。指的是错误代码表中可能的返回值列表。关于错误的详细信息可以通过调用来获得GRBgeterrormsg.
参数:
模型:应该添加新变量的模型。
numvars:要添加的新变量的数量。
numnz:新列中非零系数的总数。
vbeg:约束矩阵非零值以压缩稀疏列(Compressed Sparse Column, CSC)格式传递到这个例程。约束矩阵中的每一列都表示为一个索引值对列表,其中每个索引项提供一个非零系数的约束索引,每个值项提供相应的非零值。模型中每个变量都有一个vbeg中,指示该变量的非零起始位置vind和vval数组。这个例程要求连续存储列,因此变量的开始位置是前一个变量的结束位置。举个例子,如果vbeg [2] = 10和vbeg [3] = 12,表示变量2有两个与之相关的非零值。它们的约束索引可以在vind [10]和vind [11],这些非零的数值可以在vval [10]和vval [11].
vind:与非零值关联的约束索引。参见的描述vbeg参数以获取更多信息。
vval:与约束矩阵非零关联的数值。参见的描述vbeg参数以获取更多信息。
obj:新变量的客观系数。这个论证可以是零,此时目标系数设为0.0.
磅:新变量的下界。这个论证可以是零,在这种情况下,所有的变量都有下界0.0.
乌兰巴托:新变量的上界。这个论证可以是零,在这种情况下,所有变量都有无限上界。
vtype:变量的类型。选项是GRB_CONTINUOUS,GRB_BINARY,GRB_INTEGER,GRB_SEMICONT,或GRB_SEMIINT.这个论证可以是零,在这种情况下,假设所有变量都是连续的。
varnames:新变量的名称。这个论证可以是零,在这种情况下,所有变量都有默认名称。