Python 检查优化解算器的收敛性“;ipopt&x201D;使用CheckConvergence()函数
我使用ipopt解算器来解决Python中的非线性优化问题。ipopt文档说明了一个函数CheckConvergence(),通过该函数可以获得解决方案的收敛状态 我尝试通过以下步骤访问该功能:Python 检查优化解算器的收敛性“;ipopt&x201D;使用CheckConvergence()函数,python,optimization,ipopt,Python,Optimization,Ipopt,我使用ipopt解算器来解决Python中的非线性优化问题。ipopt文档说明了一个函数CheckConvergence(),通过该函数可以获得解决方案的收敛状态 我尝试通过以下步骤访问该功能: solver = SolverFactory('ipopt') solver.solve(model) solver.CheckConvergence() 但我得到了一个错误,AttributeError:'IPOPT'对象没有属性'CheckConvergence' 因此,我尝试从定义此函数的文件
solver = SolverFactory('ipopt')
solver.solve(model)
solver.CheckConvergence()
但我得到了一个错误,AttributeError:'IPOPT'对象没有属性'CheckConvergence'
因此,我尝试从定义此函数的文件IpConvCheck.hpp导入脚本
如果有人能帮我解决这个问题,我将不胜感激
非常感谢您。前面提到的
CheckConvergence()
函数是Ipopt的Ipopt::ConvergenceCheck
类中的一个方法。也许它可以通过IoptsC++接口访问,但是你似乎使用了某种Python接口给Ipopt。
我建议与Python接口的创建者联系
但首先,您可能需要重新考虑通过调用此函数来实现什么。在Ipopt完成解决后,它返回一个状态代码,指示Ipopt停止的原因,并且有统计信息可用于获取原始和双重冲突(如果返回了解决方案)。您可能希望检查这些函数(假设它们在Python接口中可用),而不是调用某些用于检查Ipopt是否在当前迭代时终止的Ipopt内部函数