GRBaddrangeconstrs
int | GRBaddrangeconstrs( | GRBmodel | *模型, |
int | numconstrs, | ||
int | numnz, | ||
int | * cbeg, | ||
int | * cind, | ||
双 | * cval, | ||
双 | *低, | ||
双 | *上, | ||
const char | * * constrnames) |
添加新的范围约束模型。一系列约束状态,输入表达式的值必须在指定的之间较低的
和上
边界在任何解决方案。请注意,由于我们懒惰的更新方法,新的约束实际上不会被添加(使用直到你更新模型GRBupdatemodel(使用),优化模型GRBoptimize),或写磁盘(使用的模型GRBwrite)。
如果你的约束矩阵可能包含超过20亿个非零值,您应该考虑使用GRBXaddrangeconstrs这个例程的变体。
返回值:
一个非零返回值表明,添加约束时发生问题。指的是错误代码表的列表可能的返回值。细节错误可以通过调用GRBgeterrormsg。
参数:
模型:新约束的模型应该补充道。
numconstrs:新约束的数量增加。
numnz:非零系数的总数在新的约束。
cbeg:约束矩阵非零值传递给这个例程在压缩稀疏行这个例程(CSR)格式。每个约束的约束矩阵表示为一个索引值对列表,其中每个索引条目提供了一个非零系数的变量指标,和每个值条目提供了相应的非零值。每一个新的约束有关联的cbeg值,表示该约束的非零的开始位置cind和cval数组。这个例程需要约束的非零我立即遵循这些约束张在cind和cval。因此,cbeg[我]表明这两个指数的第一个非零约束我和非零的约束张。给如何使用这种表示方法的一个例子,考虑一个例子cbeg [2] = 10和cbeg [3] = 12。这将表明,与之关联的约束2有两个非零值。他们的变量指标中可以找到cind [10]和cind [11],这些非零的数值可以在找到cval [10]和cval [11]。
cind:变量指数与非零值。看到的描述cbeg参数的更多信息。
cval:数值与约束矩阵非零。看到的描述cbeg参数的更多信息。
较低的:下界的线性表达式。
上:上界的线性表达式。
constrnames:新的约束的名称。这个观点可以零,在这种情况下,所有约束给出默认的名字。
重要提示:
注意,添加一个约束模型添加一个新约束范围和一个新的变量。如果你保持一个计数的变量在模型中,记得要添加一个为每个范围的约束。
还要注意范围限制在内部存储作为等式约束。我们使用添加了额外的变量范围约束捕捉范围信息。因此,感觉属性总是会在一系列约束GRB_EQUAL
。