gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 20:47:51 26 4
gpt4 key购买 nike

我正在使用 ipopt 求解器来解决 Python 中的非线性优化问题。 ipopt 文档说明了一个函数 CheckConvergence() ,通过该函数可以获得解决方案的收敛状态。
https://coin-or.github.io/Ipopt/classIpopt_1_1ConvergenceCheck.html
我尝试通过以下步骤访问该功能:

solver = SolverFactory('ipopt')
solver.solve(model)
solver.CheckConvergence()
但我得到一个错误,AttributeError:'IPOPT' 对象没有属性'CheckConvergence'。
所以我试图从定义此函数的文件 IpConvCheck.hpp 导入脚本。
https://coin-or.github.io/Ipopt/IpConvCheck_8hpp_source.html
如果有人可以帮助我解决这个问题,我将不胜感激。
非常感谢您提前。

最佳答案

提到的CheckConvergence() function 是 Ipopt::ConvergenceCheck 中的一个方法Ipopt 类。也许它可以通过 Ipopts C++ API 访问,但你似乎使用了某种 Python 接口(interface)来连接 Ipopt。
我建议与那个 Python 接口(interface)的创建者核实一下。
但首先,您可能需要重新考虑通过调用此函数尝试实现的目标。在 Ipopt 完成求解后,它返回一个状态代码,指示 Ipopt 停止的原因,并且有可用的统计数据来获取原始和双重违规(如果返回解决方案)。您可能想要检查这些(假设它们可用于 Python 接口(interface)),而不是调用一些用于检查 Ipopt 是否在当前迭代处终止的 Ipopt 内部函数。

关于python - 使用 CheckConvergence() 函数检查优化求解器 “ipopt” 的收敛性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64760607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com