参数调优工具

Gurobi优化器提供了各种各样的参数允许您控制的操作优化引擎。从非常粗粒度的控制水平的变化(例如,方法参数,它允许您选择算法用于解决连续模型)到非常细粒度的(例如,MarkowitzTol参数,它允许您调整公差期间使用单纯形分解)。虽然这些参数提供大量的用户控件,可能选择的巨大的空间可能呈现一个很大的挑战,当你正在寻找提高性能的参数设置在一个特定的模型。Gurobi调优工具的目的是自动化这个搜索。

Gurobi调优工具上执行多个解决你的模型中,选择不同的参数设置为每个解决,提高运行时在搜索设置。你让它运行的时间越长,越有可能找到一个显著的改善。如果您使用的是Gurobi计算服务器,您可以利用多台机器进行分布式并行优化为了加快寻找有效的参数设置。

调优工具可以通过两种不同的调用接口。您可以使用grbtune命令行工具,或者你可以从我们的一个调用它编程语言api。这两种方法都共享相同的底层优化算法。命令行工具提供了更多的优化功能。例如,它允许您提供模型优化的列表,或者指定一个基地设置列表(TuneBaseSettings)。

许多tuning-related参数允许您控制的操作调优工具。最重要的可能是TuneTimeLimit控制的时间寻找改善参数集,其他参数包括TuneTrials(试图限制随机性的影响结果),TuneCriterion(指定优化准则),TuneResults(控件返回的结果的数量),和TuneOutput(工具)所产生的控制量的输出。

之前我们讨论的实际操作调优工具,让我们先提供关于结果的一些注意事项。当参数设置对性能有很大的影响对许多模型,他们不会解决每一个性能问题。原因很简单,有很多模型,即使是最好的可能的选择参数设置不会产生一个可接受的结果。一些模型太大的和/或难以解决,而其他人可能数值问题,不能固定参数的改变。

自动调优的另一个限制是,表现在由于随机效应模型可以体验显著变化(特别是对MIP模型)。这是搜索的本质。Gurobi算法往往在多个选择,同样吸引人的选择。看似无关紧要的变化模型(如改变约束或变量)的顺序,或细微变化算法(如修改随机数种子)会导致不同的选择。通常,打破单一领带以不同的方式会导致一个完全不同的搜索。我们看到这样的情况,微妙的变化在搜索生产100倍的性能波动。而调优工具试图限制这些效应的影响,最终结果通常还会深受这样的问题。

底线是,自动化性能调优是为了给建议的参数可以生产一致,可靠的改进模型。这并不意味着是一个替代有效的建模性能测试或谨慎。



部分