解算器(ipopt)没有正常退出python/jupyter/ubuntu

2024-04-18 07:14:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在ubuntu上使用python和jupyter笔记本解决pyomo模型。为了解决这个问题,我使用了一个名为“Ipopt”的解算器,因为我的问题是非线性的。但它每次都给我这个错误。我什么都试过了,但没有解决

ERROR: Solver (ipopt) returned non-zero return code (-11)
ERROR: See the solver log above for diagnostic information.

应用程序错误:

Traceback (most recent call last)<ipython-input-76-287a30c5476c> in <module> 
      
          3 opt = SolverFactory('ipopt',executable='/usr/local/bin/ipopt')

    ----> 4 results = opt.solve(model,tee=True)
    

     ~/project/my_project_env/lib/python3.6/site-packages/pyomo/opt/base/solvers.py in solve(self, *args, **kwds)
    598                     logger.error("Solver log:\n" + str(_status.log))
    599                 raise pyutilib.common.ApplicationError(
    --> 600                     "Solver (%s) did not exit normally" % self.name)
    601             solve_completion_time = time.time()
    602             if self._report_timing:

    ApplicationError: Solver (ipopt) did not exit normally

从哪里可以查看解算器日志??或者是否有任何其他非线性问题的解算器可以用pyomo完成


Tags: inselfprojectlogtime错误errorpyomo
1条回答
网友
1楼 · 发布于 2024-04-18 07:14:15

在检查了可能的IPOPT options并阅读了关于如何设置解算器选项的pyomo文档之后,假设solver是您的解算器的处理程序(使用SolverFactory创建),我将按如下方式执行:

solver.options['print_level'] = 12
solver.options['output_file'] = "/home/your_user/my_ipopt_log.txt"

这样,您就可以完全控制日志文件的创建位置。根据IPOPT的文档,值12表示最大日志级别:此整数选项的有效范围为0≤ 打印水平≤ 12,其默认值为5

相关问题 更多 >