GRBXaddconstrs


GRBXaddconstrs

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

size_t版本的GRBaddconstrs.计算非零值的两个参数为类型size_t在此版本中支持具有超过20亿个非零值的模型。

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

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

返回值:

非零返回值表示在添加约束时发生了问题。指的是错误代码表中可能的返回值列表。关于错误的详细信息可以通过调用来获得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:新约束的名称。这个论证可以是,在这种情况下,所有的约束都有默认的名称。