optimization - 使用 Bonmin Counne 和 Ipopt 进行 NLP

标签 optimization pyomo ipopt coin-or

我只想确保我有资格使用 Bonmin 和 Couenne 来解决 NLP 问题(我仍然没有整数变量)并且我渴望获得全局最优而不是局部最优。我还读到 Ipopt 首先搜索全局答案,如果没有找到它会提供本地答案。当我使用 Ipopt 时,我如何理解我的答案是一个全局答案。另外,我想知道可以与 Pyomo 合并的这些问题的最佳 NLP 和 MINLP 开源 pythonic 求解器是什么? 我提出问题的主要原因是使用 Bonmin 的以下输出:

注意:默认情况下,您将 Ipopt 与 MUMPS 线性求解器一起使用。 其他线性求解器可能更有效(请参阅 Ipopt 文档)。

问候

最佳答案

一些注意事项:

(1) “Ipopt 首先搜索全局答案,如果没有找到,它将提供本地答案
这可能不是我要表达的方式。 IPOPT 寻找本地解决方案。对于某些问题,这些将是全局解决方案。对于凸问题,总是如此(数值问题除外)。

(2) Bonmin 是局部 MINLP 求解器,Couenne 是全局 NLP/MINLP 求解器。通常情况下,Bonmin 可以解决比 Couenne 更大的问题,但您可以获得局部解决方案。

(3)“注意:默认情况下,您将 Ipopt 与 MUMPS 线性求解器一起使用。其他线性求解器可能更有效(请参阅 Ipopt 文档)。
这只是一个通知您正在将 IPOPT 与 MUMPS 的线性代数例程一起使用。 IPOPT 可以使用其他线性子求解器,它们在处理大型问题时可能表现更好。 HARWELL 例程(通常称为 MAnn)通常会提供更好的性能。 MUMPS 是免费的,而 Harwell 例程需要许可证。


在后续的回答中(嗯,这根本不是答案)是这样说的:

Regarding Ipopt how I can understand that it is finding the global solution or local optimum? the code will notify that? Regarding to Bonmin according to AMPL page AMPL It provides the global solution for the convex problem " Finds globally optimal solutions to convex nonlinear problems in continuous and discrete variables, and may be applied heuristically to nonconvex problems." And you were saying that it is obtained the local solution, I am a bit confused on this part. But the general question about all those codes is that how I can find out that the answer is global optimum?

(a) Ipopt 不知道一个解是局部最优解还是全局最优解。对于凸问题,局部最优解是全局最优解。你需要说服自己,你传递给 Ipopt 的问题是凸的(Ipopt 不会为你做这件事)。

(b) Bonmin:相同:如果问题是凸的,它会找到全局解。否则,您将获得本地解决方案。您不会收到有关解是否为全局解的通知:Bonmin 不知道解是否为全局最优解。

(c) 在寻找有保证的全局解决方案时,只有当问题是凸的时,您才可以使用局部求解器。对于其他问题,您需要一个全局求解器。另一种方法是使用具有局部求解器的多起点算法。这让您有信心不会以糟糕的局部最优解告终。

如果可能的话,我建议和你的老师讨论这个问题。理解这些概念很重要(大多数求解器手册都假设您了解它们)。

关于optimization - 使用 Bonmin Counne 和 Ipopt 进行 NLP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55098127/

相关文章:

algorithm - 优化包含给定点集的网格间距

iPhone 开发 - NSTimer 时间精度而不是重新计算?

optimization - 在一维网格中计算扭曲ID/车道ID的最有效方法是什么?

Python 找不到 Pyomo

python - 如何检查 python 中的真正相等性(numpy 数组)?

c++ - 科学编程实践

Python ibm pyomo cplex

python - Pyomo 值错误 : Invalid constraint expression

ubuntu - 无法在 ubuntu 中安装 ipopt 3.11.1 求解器

optimization - PyOmo/Ipopt 失败并显示 "can' t evaluate pow"