首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Bonmin Counne和Ipopt进行NLP

使用Bonmin Counne和Ipopt进行NLP
EN

Stack Overflow用户
提问于 2019-03-11 16:50:54
回答 1查看 627关注 0票数 1

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

注意:默认情况下,您将在MUMPS线性解算器中使用Ipopt。其他线性解算器可能更有效(请参见Ipopt文档)。

问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-11 17:30:33

一些注意事项:

(1) "Ipopt首先搜索全局答案,如果没有找到,将提供局部答案“

这可能不是我的表达方式。IPOPT找到本地解决方案。对于某些问题,这些将是全局解决方案。对于凸问题,通常都是这种情况(数值问题除外)。

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

(3)“注意:默认情况下,您将在MUMPS线性解算器中使用Ipopt。其他线性解算器可能更有效(请参阅Ipopt文档)。”

这只是一个通知,说明您正在使用IPOPT和来自MUMPS的线性代数例程。IPOPT还可以使用其他线性子求解器,它们在大型问题上的性能可能会更好。通常,HARWELL例程(通常称为MAnn)可以提供更好的性能。MUMPS是免费的,而Harwell例程需要许可证。

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

关于Ipopt,我如何理解它是在寻找全局最优解还是局部最优解?代码会通知吗?关于Bonmin,根据AMPL page AMPL,它提供了凸问题的全局解,“找到连续变量和离散变量的凸非线性问题的全局最优解,并可启发式地应用于非凸问题。”你说它是得到局部解的,我对这部分有点困惑。但是关于所有这些代码的一般问题是,我如何找到答案是全局最优的?

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

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

(c)在寻找有保证的全局解时,只有当问题是凸的时,才能使用局部求解器。对于其他问题,您需要一个全局求解器。另一种方法是使用具有局部求解器的多起点算法。这给了你信心,相信你不会得到一个糟糕的局部最优。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55098127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档