参数调优工具


参数调优工具

Gurobi优化器提供了各种各样的参数这样你就可以控制优化引擎的运行。控制级别从非常粗粒度的(例如方法参数,允许您选择用于解决连续模型的算法)以非常细粒度(例如,MarkowitzTol参数,该参数允许您调整在单纯形基分解期间使用的公差)。虽然这些参数提供了大量的用户控制,但当您在搜索参数设置以提高特定模型的性能时,可能的选项的巨大空间可能会带来巨大的挑战。Gurobi调优工具的目的是自动化此搜索。

Gurobi调优工具在您的模型上执行多个解决方案,为每个解决方案选择不同的参数设置,以搜索可以改善运行时的设置。您让它运行的时间越长,就越有可能发现显著的改进。如果您使用的是Gurobi Compute Server,您可以利用多台机器的强大功能来执行分布式并行调优,以加快搜索有效参数设置的速度。

调优工具可以通过两个不同的接口调用。你可以使用grbtune命令行工具,或者您可以从我们的一个中调用它编程语言api.这两种方法共享相同的底层调优算法,并且都允许修改相同的调优参数集。

许多关注相关的参数允许您控制调谐工具的操作。可能是最重要的TuneTimeLimit,它控制搜索改进参数集的时间量。其他参数包括TuneTrials(试图限制随机性对结果的影响),TuneCriterion(指定调谐标准),TuneResults(它控制返回的结果的数量),以及TuneOutput(控制工具产生的输出量)。

在讨论调优工具的实际操作之前,让我们首先提供一些关于结果的注意事项。虽然参数设置对许多模型都有很大的性能影响,但它们并不能解决所有的性能问题。一个简单的原因是,对于许多模型,即使是最好的参数设置选择也不会产生一个可接受的结果。有些模型太大或难以求解,而另一些模型可能存在无法通过参数变化来解决的数值问题。

自动调优的另一个限制是,由于随机影响(尤其是MIP模型),模型上的性能可能会发生重大变化。这就是搜索的本质。Gurobi算法通常必须从多个同样吸引人的备选方案中做出选择。看似无害的对模型的更改(如更改约束或变量的顺序),或对算法的细微更改(如修改随机数种子)可能导致不同的选择。通常情况下,用不同的方式打破一段关系会导致完全不同的搜索。我们已经看到过搜索中的细微变化会产生100倍的性能波动的情况。虽然调优工具试图限制这些效果的影响,但最终结果通常仍然会受到这些问题的严重影响。

最重要的是,自动性能调优意味着为参数提供建议,这些参数可以对模型产生一致的、可靠的改进。它并不意味着可以替代高效的建模或仔细的性能测试。



部分