一些注意事项:
(1)“ Ipopt 首先搜索全局答案,如果没有找到,它将提供本地答案”
这可能不是我的措辞。IPOPT 寻找本地解决方案。对于某些问题,这些将是全球解决方案。对于凸问题,情况总是如此(数值问题除外)。
(2) Bonmin 是局部 MINLP 求解器,Couenne 是全局 NLP/MINLP 求解器。通常,Bonmin 可以解决比 Couenne 更大的问题,但您可以获得本地解决方案。
(3) "注意:默认情况下,您将 Ipopt 与 MUMPS 线性求解器一起使用。其他线性求解器可能更有效(请参阅 Ipopt 文档)。 “
这只是一个通知,表明您正在将 IPOPT 与 MUMPS 的线性代数例程一起使用。IPOPT 可以使用其他线性子求解器,它们在处理大型问题时可能会表现得更好。通常,HARWELL 例程(通常称为 MANN)提供更好的性能。MUMPS 是免费的,而 Harwell 例程需要许可证。
在后续答案(它根本不是答案)中指出:
关于 Ipopt,我怎么能理解它是在寻找全局解决方案还是局部最优解?代码会通知吗?关于根据 AMPL 页面 AMPL 的 Bonmin 它提供了凸问题的全局解决方案“在连续和离散变量中找到凸非线性问题的全局最优解,并且可以启发式地应用于非凸问题。” 你说它是本地解决方案,我在这方面有点困惑。但是关于所有这些代码的一般问题是,我如何才能发现答案是全局最优的?
(a) Ipopt 不知道一个解是局部最优解还是全局最优解。对于凸问题,局部最优解是全局最优解。您需要说服自己传递给 Ipopt 的问题是凸的(Ipopt 不会为您这样做)。
(b) Bonmin:同理:如果问题是凸的,它将找到全局解决方案。否则,您将获得本地解决方案。您将不会收到解决方案是否是全局解决方案的通知:Bonmin 不知道解决方案是否是全局最优解。
(c) 在寻找有保证的全局解决方案时,您只能在问题是凸问题时使用局部求解器。对于其他问题,您需要一个全局求解器。另一种方法是使用带有本地求解器的多启动算法。这让您确信您最终不会得到一个糟糕的局部最优值。
如果可能的话,我建议和你的老师讨论这个问题。这些概念对于理解很重要(大多数求解器手册都假设您了解它们)。