选择正确的算法

选择正确的算法

Gurobi Optimizer提供了两种主要算法来求解连续模型和混合整数模型的连续松弛:barrier和simplex。

对于大型、困难的模型,barrier算法通常是最快的。然而,它在数值上也更敏感。即使当屏障算法收敛时,通常跟随的交叉算法也会因为数值问题而停滞。

单纯形法通常是一个很好的选择,因为它通常对数值问题不太敏感。若要使用对偶单形或原始单形,请设置方法参数值分别为1或0。

注意,在许多优化应用程序中,并非所有问题实例都有数值问题。因此,只选择单纯形可能会阻止您在数值性能良好的实例上利用barrier算法的性能优势。在这种情况下,您应该使用并发优化器,它同时使用多个算法并返回从第一个算法到完成的解决方案。并发优化器是LP模型的默认设置,可以通过设置MIP来选择方法参数为3或4。

为了详细控制并发优化器,您可以创建并发环境,在其中您可以为每个并发解决方案设置特定的算法参数。例如,您可以创建一个并发环境方法= 0和另一个方法= 1同时使用原单形和对偶单形。最后,您可以使用分布式优化在多个不同的计算机上使用并发优化。在一台计算机上,不同的算法在多个线程上运行,每个线程使用不同的处理器核。使用分布式优化,独立的计算机运行独立的算法,这可以更快,因为计算机不争夺对内存的访问。