- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Gurobi 快速模型优化和测试指南
本指南是为快速运行 Gurobi, 并在已有模型文件基础上(LP/MPS/REW 格式),对Gurobi 优
化参数进行调整和性能测试而制作。这个快速指南并不能代替详细的Gurobi 使用手册。
假设许可文件已经正确放置,Gurobi 可以正常运行。
(1) 启动 DOS 行命令方式。在左下角开始菜单中,在运行(RUN)或者提示输入框中,
输入 cmd, 启动 DOS 命令行方式。
(2 ) 通过 CD 命令,进入到模型数据文件所在的目录。Gurobi 支持的模型数据格式包括
MPS,LP,REW 等。
(3 ) 在提示符下,输入 gurobi ,启动 gurobi 交互环境,如下
(4 ) 读入数据模型文件,输入
m=read(‘abc.mps’)
(5 ) 这样数据就读入到 m 变量中
如果采用所有默认优化参数,那么可以直接运行优化
m.optimize()
(6 ) 用 ctrl-C 中断优化运行。
(7 ) 输出优化结果,可以将当前找到的可行解或者最优解输出,可以输入
m.write(‘output.sol’)
那么在当前目录下,输出一个 output.sol 文件,可以用文本编辑器打开。文件名称可以是
任何名称,只要后缀是 sol 就可以。
(8 ) 清除当前的最优解或者可行解,可以输入
m.reset()
这样再输入 m.optimize()时,会从头开始运行;否则,会从当前可行解再继续运行优化。
(9 ) Gurobi 默认优化参数已经可以取得较好的结果,但也提供了优化参数调整的功能,
更好地针对具体问题提升优化性能。常用的优化参数有 MIPFocus, Presolve,Method,
ImproveStartGap, ImproveStartTime 等等. 我们并不建议过度调整参数,因为
Gurobi 已经将可调整的参数大大缩减。这些参数的使用方法都是一样的,就是在 运
行优化之前,设定这些参数,设置方法为
m.Params.XXXX=Y
例如:如果希望以取得可行解为优化策略,那么可以设定为
m.Params.MIPFocus=1
然后再运行
m.optimize()
如果希望将优化参数的数值恢复到默认数值,可以采用
m.Params.XXXX=’default’
如果希望清除所有优化参数的数值,而恢复到默认数值,可以采用
m.resetParams()
手册中详细提供了这些参数的取值范围,默认数值和功能。
(10)一些常见情况的优化参数建议:
MIPFocus:默认值0,试图在最优值和可行解之间取得平衡。1:以可行解为目标;2:
以证明最优性为目标;3:以优化边界为目标。
Presolve: 默认值:-1,自动决定预优化力度。0 :关闭预优化;1:保守;2:激进。
Method:默认值:-1,自动决定优化方法。0 :原始单纯型;1:对偶;2:Barrier; 3:
随机并行;4 :确定并行。如果模型巨大,可以考虑 2.
ImproveStartTime 和 ImproveStartGap: 都是确定从什么条件开始,优化转向对可行
解质量的提升上。优化从 ImproveStartTime 设定的时间之后(以秒为单位),或者
ImproveStartGap 设定的收敛gap 达到之后开始进行可行解的提升。
NonConvex: 当模型提示是非凸模型时(Q 矩阵非半正定),需要将此参数设置为2。
NoRelHeurTime / NoRelHeurWork: 对于很难找到可
文档评论(0)