GRBaddconstrs


GRBaddconstrs

int GRBaddconstrs GRBmodel *模型,
int numconstrs,
int numnz,
int * cbeg,
int * cind,
* cval,
字符 *感,
*,
const char * * constrnames)

向模型添加新的线性约束。注意,由于我们的延迟更新方法,只有在您更新模型(使用GRBupdatemodel),优化模型(使用GRBoptimize),或将模型写入磁盘(使用GRBwrite).

我们建议您一次只构建一个约束(使用GRBaddconstr),因为它没有引入显著的开销,而且我们发现它生成的代码更简单。不过,如果你不同意,可以随意使用这个程序。

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

返回值:

非零返回值表明在添加约束时发生了问题。指的是错误代码表中可能的返回值列表。关于错误的详细信息可以通过调用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争论以获得更多信息。

感觉:新约束的意义。选项是GRB_LESS_EQUALGRB_EQUAL,或GRB_GREATER_EQUAL

园艺学会:新约束的右边值。这个论点可以是,在这种情况下,右边的值被设置为0.0

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