属性
属性
如前一节所述,与Gurobi模型相关的大部分信息存储在一组属性.一些属性与模型的变量相关,一些与模型的约束相关,还有一些与模型本身相关。例如,在优化模型之后,解决方案将存储在X
变量属性。由Gurobi优化器计算的属性(如解决方案属性)不能由用户直接修改,而表示输入数据的属性(如磅
存储变量下界的属性)可以。
每个Gurobi语言接口都包含查询或修改属性值的例程。要检索或修改特定属性的值,只需将属性的名称传递给适当的查询或修改例程。例如,在C接口中,你可以调用以下函数来查询变量1的当前解决方案值:
双x1;error = GRBgetdblattrelement(model, GRB_DBL_ATTR_X, 1, &x1);这个例程从包含双精度数据的数组值属性中返回单个元素。提供了用于查询和修改类型的标量值和数组值属性的例程
int
,双
,字符
,或char *
.在面向对象的接口中,您可以通过适当的对象查询或修改属性值。例如,if variablev
是一个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参考手册.