C属性示例
C属性示例
考虑一下你有GoRoi模型的情况。。您可以通过查询纽瓦模型属性。这是一个整数值的标量属性,所以您使用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的解决方案值)GRBGETDBLATTRARY或GRBgetdblattrlist:
双x[];error=GRBgetdblattrarray(m,GRB_DBL_ATTR_X,0,cols,X);前一个例程检索一组连续的值(值,从索引开始后者允许您提供索引列表,并返回相应条目的值。
对于每个属性查询例程,都有一个类似的常规例如,要设置变量的上限,可以使用GRBSetdBlattreElement:
error=grbsetdblattreelement(m,GRB_DBL_ATTR_UB,0,0.0);(在本例中,我们将变量0的上限设置为0)。您可以在一次调用中使用设置多个变量的属性值GRBSETDBLATTRARY或GRBsetdblattrlist.