manbet体育手机客户端


GRBaddsos

int GRBaddsos GRBmodel *模型,
int numsos,
int nummembers,
int *类型,
int *乞讨,
int *印第安纳州,
*重量)

向模型添加新的特殊有序集(SOS)约束。请注意,由于我们的延迟更新方法,新的SOS约束实际上不会添加,直到更新模型(使用GRBupdatemodel),优化模型(使用GRBoptimize),或将模型写入磁盘(使用GRBwrite).

请参考本节参阅SOS限制的详情。

返回值:

非零返回值表示在添加SOS约束时发生了问题。指的是错误代码表中可能的返回值列表。关于错误的详细信息可以通过调用来获得GRBgeterrormsg

参数:

模型:应该添加新的SOSs的模型。

numsos:要添加的新SOSs的数量。

nummembers:新SOS成员总数。

类型: SOS集的类型。SOS集可以是类型的GRB_SOS_TYPE1GRB_SOS_TYPE2

:添加的SOS集合的成员以压缩稀疏行(CSR)格式传递到这个例程。每个SOS都表示为一个索引-值对列表,其中每个索引条目为SOS成员提供变量索引,每个值条目提供该变量在相应SOS集中的权重。每个新的SOS都有一个关联的值,表示SOS成员列表的起始位置印第安纳州重量数组。这个程序要求SOS的成员立即跟进SOS印第安纳州重量.因此,求[我]指示约束中第一个非零的索引约束条件的非零结束.为了给出如何使用这种表示的示例,考虑以下情况请求[2]= 10求[3]= 12.这表明2号SOS有两个成员。它们的变量索引可以在印第安纳州[10]印第安纳州[11],相关的权重可在体重[10]体重[11]

印第安纳州:与SOS成员相关联的变量指标。参见的描述参数以获取更多信息。

重量:与SOS成员关联的权重。参见的描述参数以获取更多信息。

使用示例:

int类型[]= {GRB_SOS_TYPE1, GRB_SOS_TYPE1};Int beg[] = {0,2};Int ind[] = {1, 2, 1, 3};Double weight[] = {1,2,1,2};error = grbadsos (model, 2,4, type, beg, ind, weight);