找到多种解决方案

找到多种解决方案

默认情况下,Gurobi MIP求解器将尝试找到模型的手机万博登录证明最佳解决方案。它通常会沿途找到多个子最优解决方案,稍后可以检索(使用solutionnumber.参数,和XN.博诺贝·伯瓦尔属性)。但是,这些解决方案不是以系统的方式生产的。找到的一组解决方案取决于解算器通过MIP搜索的确切路径。手机万博登录您可以解决一次MIP模型,获取一组有趣的子最优解,然后再次使用不同的参数设置来解决同样的问题,并仅查找最佳解决方案。

如果您更喜欢如何控制解决方案和保留的解决方案,Gurobi Optimizer都有许多可用于此参数。第一和最简单的是山雀,控制解决方案池的大小。更改此参数不会影响找到的解决方案的数量 - 它只是确定其中有多少保留。

你可以使用PoolsearchMode.控制方法用于找到解决方案的方法。在其默认设置(0)中,MIP搜索只旨在找到一个最佳解决方案。将参数设置为1使MIP搜索降低额外的精力来查找更多的解决方案,但以非系统的方式查找更多的解决方案。您将获得更多的解决方案,但不一定是最好的解决方案。将参数设置为2导致MIP对系统进行系统搜索N最好的解决方案。对于非默认设置,山雀参数设置要查找的解决方案数量的目标。

如果您只对找到的最佳解决方案的某种差距内的解决方案感兴趣,您可以设置游戏池范围。丢弃不在规定间隙内的解决方案。

获得A.最佳使用时优化返回状态poolsearchMode = 2表示MIP解算器成功地找到了所需的最佳解决方案手机万博登录,或者证明该模型没有那种不同的可行解决方案。如果求解器早期手机万博登录终止(例如,由于时间限制),则可以使用poolobjbound.属性以评估找到的解决方案的质量。此属性为缺少解决方案池中的任何解决方案的目标提供了绑定。此属性与此属性之间的差异objbound.是后者给出了任何解决方案的目标的绑定,它通常比poolobjbound.

有一些微妙的子节点与查找应该知道的多个解决方案相关联。例如,找到的概念<span> $ </ span> n <span> $ </ span>当您具有非零最优性容差时,最佳解决方案可能有点模糊。此外,当模型具有连续变量时,它是否应该被认为是不同的。我们将在本节后面讨论这些问题。