首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用CheckConvergence()函数检查优化求解器“ipopt”的收敛性

使用CheckConvergence()函数检查优化求解器“ipopt”的收敛性
EN

Stack Overflow用户
提问于 2020-11-10 07:15:35
回答 1查看 104关注 0票数 4

我正在使用ipopt solver来解决Python中的一个非线性优化问题。ipopt文档说明了一个函数CheckConvergence(),通过该函数可以获得解的收敛状态。

https://coin-or.github.io/Ipopt/classIpopt

我尝试通过以下步骤访问该函数:

代码语言:javascript
运行
复制
solver = SolverFactory('ipopt')
solver.solve(model)
solver.CheckConvergence()

但是我得到了一个错误,AttributeError:'IPOPT‘对象没有’object收敛‘属性。

因此,我尝试从定义此函数的文件IpConvCheck.hpp中导入脚本。

https://coin-or.github.io/Ipopt/IpConvCheck

如果有人能帮我解决这个问题,我将不胜感激。

非常提前感谢您。

EN

回答 1

Stack Overflow用户

发布于 2021-05-18 01:39:45

前面提到的CheckConvergence()函数是Ipopt的Ipopt::ConvergenceCheck类中的一个方法。也许可以通过Ipopts Python访问它,但是您似乎使用了某种C++接口来访问Ipopt。我建议与Python接口的创建者确认一下。

但首先,您可能希望重新考虑通过调用此函数来尝试实现的目标。在Ipopt完成解算后,它会返回一个状态代码,指示Ipopt停止的原因,并且有可用的统计数据来获取原始和双重违规(如果返回了解决方案)。您可能希望检查这些函数(假设它们在Python接口中可用),而不调用用于检查Ipopt是否在当前迭代处终止的Ipopt内部函数。

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

https://stackoverflow.com/questions/64760607

复制
相关文章

相似问题

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