Gurobi Class2:Gurobi功能和操作进阶
2参数
2.1参数类别
1)Termination停止参数:TimeLimit设定时间;SolutionLimit设定MIP可行解数量
2)Tolerances容差参数:MIPGap设定MIP的gap值;FeasibilityTol设定精度
3)Simplex单纯性参数:InfUnbdInfo控制是否获取不可行或无界模型的额外信息
4)Barrier障碍法参数:QCPDual控制是否获取二次模型的对偶值
5)Mip混合整数参数:BranchDir(ection)设定优先分支方向;Heuristics设定启发式算法求解时间比例
6)Mip Cuts割平面参数:Cuts设定割平面强度
7)Tuning调参参数:TuneCriterion设定调参准则;TuneTimeLimit设定调参的时间
8)Multiple Solution多解参数:PoolSolutions决定存储可行解的数量\
2.2 参数设置方法
设定求解时间:
model.setParam(‘TimeLimit’, 600)/model.setParam(GRB.Param.TimeLimit, 600)/mode.Params.TimeLimit=600
2.3 常用参数
TimeLimit:时间设定
MIPFocus:设定MIP求解侧重点(0默认,1,2,3)
Method:设定线性或MIP根节点的求解方法(-1,0,1,2,3,4,5)
LogToConsole:log记录是否在控制台显示(0,1默认打开)
LogFile:设定log文件名称
Presolve:控制预处理程度(-1默认,0,1,2)
MIPGap:设定gap值,默认0.0001
ImproveStartGap:提升策略开始gap值
ImproveStartNodes:提升策略开始节点值
ImproveStartTime:提升策略开始时间
ObjNumber:目标函数索引
2.4案例(examples/python/params.py)
import sys
from gurobipy import *
m = read('net12.lp')
if m.isMIP == 0:
print('The model is not an integer program')
sys.exit(1)
m.Params.timelimit = 2
bestModel = m.copy()
bestModel.optimize()
for i in range(1, 4):
m.reset()
m.Params.MIPFocus = i
m.optimize()
if bestModel.MIPGap > m.MIP