grbaddsos.


grbaddsos.

grbaddsos. grbmodel. *模型,
numsos,
nummembers,
*类型,
*求,
* IND,
双倍的 *重量 )

为模型添加新的特殊订购集(SOS)约束。请注意,由于我们的延迟更新方法,在更新模型之前,实际上不会添加新的SOS约束(使用grbupdatemodel.),优化模型(使用grboptimize.)或将模型写入磁盘(使用grbwrite.)。

请参阅本节有关SOS限制的详细信息。

返回值:

非零返回值表示添加SOS约束时发生问题。参考错误代码表格有可能返回值列表。有关错误的详细信息可以通过呼叫获得grbgeterramsg.

论点:

模型:应该添加新毛泽和的模型。

numsos.:要添加的新袜子的数量。

nummembers.:新SOS中的SOS成员总数。

类型:SOS设置的类型。SOS设置可以是类型grb_sos_type1.或者grb_sos_type2.

:添加的SOS集的成员在压缩稀疏行(CSR)格式中传递到此例程中。每个SOS都表示为索引值对列表,其中每个索引条目为SOS成员提供变量索引,每个值条目都在相应的SOS中提供该变量的权重。每个新的SO都有一个关联的值,表示SOS成员列表中的开始位置Ind.重量阵列。此例程要求SOS的成员一世立即跟随那些SOS的人I-1Ind.重量。因此,乞讨[I]表示约束中第一个非零的索引一世和非零的结尾进行约束I-1。举例说明如何使用该表示,考虑一个案例乞讨[2] = 10乞求[3] = 12。这表明SOS 2号有两个成员。他们的可变指数可以找到Ind [10]Ind [11],并且可以找到相关的权重重量[10]重量[11]

Ind.:与SOS成员关联的可变索引。查看描述的描述有关更多信息的论证。

重量:与SOS成员相关的权重。查看描述的描述有关更多信息的论证。

示例用法:

int类型[] = {grb_sos_type1,grb_sos_type1};int beg [] = {0,2};INT IND [] = {1,2,1,3};双重重量[] = {1,2,1,2};error = grbaddsos(型号,2,4,类型,乞讨,ind,重量);