首页>软件资讯>常见问题

常见问题

Gurobi-第四章Gurobi属性和修改方法

发布时间:2024-03-20 09:49:33人气:95

通过属性(Atributes)能够控制模型(变量、约束、目标等对象)的特征,Gurobi中的属性共分成8种类型,分别是模型属性、变量属性、线性约束属性、SOS约束属性、二次约束属性、广义约束属性、解的质量属性和多目标属性。  

一、ModelAttributes(模型属性)  

包括ModeSense模型优化方向(最大化或最小化)ObiVal当前的目标值,其具体如表所示。  

二、VariableAttributes(变量属性)  

如X获取当前变量的取值,Stat属性用于设置MIP模型的初始解,更多变量属性如表所示。  

三、线性约束属性  

这些属性提供与特定线性约束相关的信息,如Pi约束对应的对偶值,Slack约束对应的松弛量,RHS约束对应的右端项,如表所示。  

说明3.png

四、Special-OrderedSetConstraintsAttributes(SOS约束属性)  

这些属性提供与特定的顺序集(SOS)约束相关的信息,如IISSOS对不可行的模型,指示约束是否属于IIS(IreducibleInconsistentSubsystem),如表所示。  

说明4.png

五、QuadraticConstraintAttributes(二次约束属性)  

这些属性提供与特定二次约束相关的信息,如OCRHS约束右端项,如表所示。  

说明5.png

六、GeneralConstraintAttributes(广义约束属性)  

这些属性提供与特定常规约束关联的信息,如GenConstrName约束名称如表所示。  

说明6.png

七、SolutionQualityAttributes(解质量属性)  

用于评价解质量的相关属性,如BoundVio最大的界违反,IntVio整数变量离最近整数的最大距离,如表所示。  

说明7.png

八、Multi-objectiveAttributes(多目标属性)  

用于多目标优化问题的相关属性,如ObjN对应多目标表达式中的变量系数,ObiNVal对应目标函数值,如表所示。  

说明.png

六、查看修改属性  

查看和修改Gurobi参数属性的方法很简单,用于查看属性的函数是getAntr(atlrname,objs),用于修改属性的函数是setAttr(attrname,newvalue)。  

注意:并不是所有属性都能进行修改,对于只读属性就只能查看而不能修改。  

(1)查看属性。  

方法:getAttr(attrmame,objs),其中attmame是属性名称objs(可选是列表或字典对象用来存储查询的值。  

例如,model.getAttr(GRB.Attr.ObjVal)或简写为odel.ObjVal。  

(2)修改属性。  

方法:setAttr(attrname,newvalue),其中attrname是属性名称,newvalue是属性的值。  

例如,var.setAttr(GRB.Attr.VType,‘C’)或简写为var.Vtype='C’。



上一条:Gurobi-第三章Gurobi参数修改和自动调整方法

下一条:Gurobi-第五章Gurobi线性化技巧