C属性示例


C属性示例

考虑一下你有GoRoi模型的情况。<span>$</span>m<span>$</span>。您可以通过查询纽瓦模型属性。这是一个整数值的标量属性,所以您使用GRBgetintattr:

int cols;error=grbgettattr(m,GRB_int_ATTR_numvar,&cols);
也可以直接使用属性的名称:
int cols;error=grbgettattr(m,“NumVars”和cols);
(请注意,属性大小写在C接口中并不重要,因此您也可以使用“numVars”“numvars”).

如果您已经对模型进行了优化,那么可以通过查询奥比瓦尔模型属性。这是一个双值标量属性,因此您可以使用GRBgetdblattr:

double objval;error=GRBgetdblattr(m,GRB_DBL_ATTR_objval,&objval);

如果要查询变量在计算解决方案中的值,可以查询X变量属性。这是一个双值向量属性,因此您可以使用一些选项来查询关联的值。可以使用以下命令检索单个变量的值:GRBGetDbLattreElement:

double x0;error=grbgetdblattreelement(m,GRB_DBL_ATTR_X,0,&x0);
(在本例中,我们查询变量0的解决方案值)GRBGETDBLATTRARYGRBgetdblattrlist:
双x[];error=GRBgetdblattrarray(m,GRB_DBL_ATTR_X,0,cols,X);
前一个例程检索一组连续的值(<span>$</span>cols<span>$</span>值,从索引开始<span>$</span>0<span>$</span>后者允许您提供索引列表,并返回相应条目的值。

对于每个属性查询例程,都有一个类似的<span>$</span>设置<span>$</span>常规例如,要设置变量的上限,可以使用GRBSetdBlattreElement:

error=grbsetdblattreelement(m,GRB_DBL_ATTR_UB,0,0.0);
(在本例中,我们将变量0的上限设置为0)。您可以在一次调用中使用设置多个变量的属性值GRBSETDBLATTRARYGRBsetdblattrlist.