选择正确的算法

选择正确的算法

Gurobi优化器提供了两种主要的算法来求解连续模型和混合整数模型的连续松弛:障壁和单形。

障碍算法通常是最快的大型,困难的模型。然而,它对数字也更加敏感。即使当势垒算法收敛时,通常跟随的交叉算法也会由于数值问题而停止。

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

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

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