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值,表示该约束的非零的开始位置cindcval数组。这个例程需要约束的非零立即遵循这些约束cindcval。因此,cbeg[我]表明这两个指数的第一个非零约束和非零的约束。给如何使用这种表示方法的一个例子,考虑一个例子cbeg [2] = 10cbeg [3] = 12。这将表明,与之关联的约束2有两个非零值。他们的变量指标中可以找到cind [10]cind [11],这些非零的数值可以在找到cval [10]cval [11]

cind:变量指数与非零值。看到的描述cbeg参数的更多信息。

cval:数值与约束矩阵非零。看到的描述cbeg参数的更多信息。

较低的:下界的线性表达式。

:上界的线性表达式。

constrnames:新的约束的名称。这个观点可以,在这种情况下,所有约束给出默认的名字。

重要提示:

注意,添加一个约束模型添加一个新约束范围和一个新的变量。如果你保持一个计数的变量在模型中,记得要添加一个为每个范围的约束。

还要注意范围限制在内部存储作为等式约束。我们使用添加了额外的变量范围约束捕捉范围信息。因此,感觉属性总是会在一系列约束GRB_EQUAL