一、概述
虽然Gurobi已经很智能了,但是还有会有很多问题场景。Gurobi的默认参数并不能高效求解模型,因此有必要了解Gurobi的重要参数和属性,以便在建模过程中能写出更高效的代码,能更快地进行试验和求解模型。
二、Gurobi优化器常用参数
参数控制Gurobi优化求解器的行为,需要在启动之前设置,一般来说Gurobi已经选择了最优的参数作为默认值,因此除非有必要,否则不用修改这些默认参数。下面列举Gurobi的部分参数进行说明,其中前8种类型参数使用比较多,后3种类型参数在部署Gurobi服务器或部署服务计算时使用,这些参数的详细说明可以参考Gurobi接口文档《Gurbi优化器参考手册》的相关内容。
(1)Termination停止参数,用于控制求解的停止条件。如TimeLimit设定整个求解过程耗时限制SolutionLimit设定MIP可行解数量;Barlterlimit设定障碍法(Barrier)迭代次数限制;lterationLimit设定单纯形法迭代次数限制。
(2)Tolerances容差参数,用于控制结果的精度,在大多数情况下,这个限制是通过数值公差来管理的;如果冲突小于相应的公差,求解器将结果视为满足约束。
(3)Simplex单纯形参数,用于控制单纯形法的应用。如InfUnbdInfo控制是否生成不可行或无界模型的附加信息。
(4)Barrier障碍法参数,用于控制障碍法的操作,障碍法也称罚函数法。如QCPDual控制是否获取二次模型的对偶值。
(5)MIP混合整数规划参数,用于控制混合整数规划算法。如BranchDir用于设定分支割平面搜索方向,默认值是自动选择的。值为-1时将总是首先探索向下分支,而值为1时则始终首先探索向上分支;Heuristics设定启发式算法求解所花费的时间所占的比重。
(6)MIPCuts割平面参数,用于控制制平面的形式。如Cuts用于控制全局制平面法的强度。
(7)Tuning调参参数,用于控制求解器的调参行为。如TuneCriterion可设定调参的准则,Tune-TimeLimit可设定调参的时间。
(8)MultipleSolutions多解参数,用于修改MIP的搜索行为,用于尝试为MIP模型寻找多个解。如PoolSolutions决定存储可行解的数量。
(9)DistributedAlgorithms分布式计算参数,用于控制分布式并行算法(分布式MIP分布式并发和分布式调优)的参数。
(10)CompuleServer计算服务器参数,用于配置和启动Gurobi计算服务器作业的参数,。
(11)Cloud云计算参数,用于启动Gurobi即时云实例的参数。
(12)TokenServer令牌服务参数,用于通信加密等功能。
(13)其他参数,是上述12种参数之外的参数,部分参数和上述参数有关联但是又不完全符合该分类,故独立出来。比如LogFile参数用于指定将模型求解信息保存到日志文件LogFile。
上一条:Gurobi-第一章Gurobi数据结构
下一条:Gurobi-第三章Gurobi参数修改和自动调整方法