连续模型

连续模型

如果您希望使用Gurobi参数在连续模型上调整性能,我们提供以下指南。

选择LP或QP的方法

解决LP或QP时最重要的参数是方法。默认设置(-1)使用并发优化器对于LP,以及用于QP的平行屏障求解器。手机万博登录虽然默认是一个不错的选择,但您可能希望在几个情况下选择不同的方法。

如果内存紧密,则应考虑使用双单纯x方法(方法= 1)而不是默认值。默认值将调用屏障方法,这可能需要更多的内存,而不是双重。此外,LP的默认值将同时尝试多个算法,每个算法都需要原始模型的副本。通过选择双单纯x,您只会使用模型的一个副本。

另一个方案,您应该更改默认值是每次必须获得完全相同的最佳状态时。对于LP型号,默认的并发求解器在多核系统上同时调用多个算法,从第一核系统中同手机万博登录时返回最佳基础。在极少数情况下,一个算法可以在一次运行中首先完成,而另一个算法首先在另一个中完成。这可能会导致不同的替代最佳解决方案。选择任何其他方法,包括确定性并发求解器,将避免这种可能性。手机万博登录但是,请注意,确定性化的并发求解器可以明显比默认的并发求解器慢。手机万博登录

最后,如果您面对困难的LP模型,则应尝试使用不同的方法选项。虽然默认值很少比最佳选择慢得多,但您可能会发现一个选项对您的模型始终如一更快或更强大。没有简单的规则来预测哪种方法最适合特定的模型。

如果您正在解决QCP或SOCP模型,请注意,屏障算法是您唯一的选项。

并行解决方案

在影响连续模型的剩余参数中,您通常想要调整的唯一一个是线程,它控制用于并发和并行屏障算法的线程数。默认情况下,并发和障碍将在您的机器中使用所有可用的核心(最多32个)。请注意,Simplex求解器只能使用一个线程手机万博登录,因此此参数对它们没有影响。

如果您想在使用并发优化器解决LP模型时尝试不同的策略,请提供方法CC ++java.。网, 和Python这允许您创建和配置并发环境。

不可行或无限的型号

如果您面对不可行或无限的LP,则可以在设置时获得其他详细信息infunbdinfo.范围。对于无界模型,设置此参数允许您检索无限的射线(使用扣税属性)。对于一个不可行的模型,设置此参数允许您检索Farkas Infisibility证明(使用Farkasdual.Farkasproof.属性)。

对于屏障算法,您应该设置barhomeneouse.参数到1只要您有一个型号,您怀疑是不可行或无限制的。该算法更好地诊断了不可行或无界面。

特殊结构

如果您希望解决比约束更多变量的LP模型,则可能需要尝试筛选算法。筛选实际上是在我们的双单简单求解器内实现,从而选择筛选,设置手机万博登录方法参数为1(选择双),然后设置参数到正值。你可以使用夏季斯米德参数选择用于解决在筛选算法中出现的子问题的算法。通常,筛选仅在变量和约束之间的比率非常大(100到1或更多)时才有效。请注意默认值设置允许Gurobi Optimizer在问题具有适当的结构时自动选择筛选,因此您通常不需要手动选择它。

附加参数

scaleflag.参数可用于修改模型上执行的缩放。默认缩放值(-1)通常是最有效的选择,但完全关闭缩放(0)有时可以减少原始模型上的约束违规。选择不同的缩放选项(1,2或3),有时可以提高特定数字难度模型的性能。这objscale.参数允许您只扩展目标。客观缩放当目标包含极大的值时可能有用,但它也可以导致原始的未划算模型中的大量双重违规,因此应该谨慎使用。

simplexpricing.参数确定用于选择单简级的方法。默认是最佳选择。这normadjust.参数允许您选择备用单纯x定价规范。再次,默认通常是最好的。这Quad.参数允许您强制使用Simplex求解器使用(或不使用)四边形精度。手机万博登录虽然四边形精度可以帮助数字困难的模型,但默认设置通常会自动识别此类情况。这erburvalue.参数允许您调整Simplex扰动的大小(用于克服退化)。同样,默认值通常是有效的。

其他Gurobi参数控制屏障求解器的细节。手机万博登录这Barconvtol.barqcpconvtol.参数允许您调整障碍终止。虽然您可以要求更精确的精度而不是默认值,但您通常会相当快地遇到双重精度算术的局限性。此参数通常用于指示您愿意满足于默认值的较低答案。这巴恰特拉斯人参数允许您调整每个障碍迭代中应用的中央校正的数量。更多校正通常导致每次迭代中的更多前进进展,但以更昂贵的迭代的成本。这BarOrder.参数允许您选择屏障排序方法。默认方法通常很好,但您可以手动选择较便宜的近似最小程度排序选项(Barorder = 0.)如果您发现订单正在花费太久。