属性


属性

如前一节所述,与Gurobi模型关联的大部分信息存储在一组中属性.有些属性与模型的变量有关,有些与模型的约束有关,还有一些与模型本身有关。例如,在优化模型之后,解决方案存储在X变量属性。由Gurobi优化器计算的属性(比如solution属性)不能由用户直接修改,而那些表示输入数据的属性(比如存储变量下界的属性)可以。

每个Gurobi语言接口都包含用于查询或修改属性值的例程。要检索或修改特定属性的值,只需将属性的名称传递给适当的查询或修改例程。例如,在C接口中,您可以执行以下调用来查询变量1的当前解决方案值:

双x1;error = grbgetdbltreelement (model, GRB_DBL_ATTR_X, 1, &x1);
这个例程从包含双精度数据的数组值属性返回单个元素。提供了查询和修改类型的标量值和数组值属性的例程int字符,或char *

在面向对象的接口中,可以通过适当的对象查询或修改属性值。例如,if变量v是一个Gurobi变量对象(aGRBVar),然后使用下面的调用来修改下限v

c++: v.set(GRB_DoubleAttr_LB, 0.0)c#: v.Set(GRB.DoubleAttr.)磅,0.0) or v.LB = 0.0 Python: v.lb = 0.0
查询或修改属性的确切语法因语言的不同而略有不同,但基本方法是一致的:使用所需属性的名称作为参数调用适当的查询或修改方法。

Gurobi属性的完整列表可以在属性部分的Gurobi参考手册