Printing Pyomo:打印导致错误的约束

Printing Pyomo:打印导致错误的约束,printing,pyomo,ipopt,Printing,Pyomo,Ipopt,我在pyomo中使用ipopt,我有下一个错误: Error evaluating constraint 15: can't compute -1.65898/0. halt_on_ampl_error=yes 如何在pyomo中打印导致错误的约束名称 类似于AMPL命令:print\u sconname[15] 谢谢,M.我不知道如何进行映射以明确标识您想要的约束,但另一种选择是遍历您的模型,并重新设置任何约束,这些约束除以一个不远离零的变量。您还应该为所有变量提供良好的初始化,或者至少将它

我在pyomo中使用ipopt,我有下一个错误:

Error evaluating constraint 15: can't compute -1.65898/0.
halt_on_ampl_error=yes
如何在pyomo中打印导致错误的约束名称

类似于AMPL命令:
print\u sconname[15]


谢谢,M.

我不知道如何进行映射以明确标识您想要的约束,但另一种选择是遍历您的模型,并重新设置任何约束,这些约束除以一个不远离零的变量。您还应该为所有变量提供良好的初始化,或者至少将它们初始化为零以外的值

在求解过程中计算表达式时,ASL会抛出该错误(即,它不是Pyomo错误)

使错误更容易理解的技巧是让Pyomo将“符号”标签传递给解算器。出于效率原因,这在默认情况下被禁用:生成人类可读的标签比简单地为约束和变量编号更昂贵,并且用户很少与发送到解算器的原始模型交互

  • 如果使用的是
    pyomo
    命令,则可以传递
    --symbolic solver labels
    选项:

    pyomo solve --solver ipopt --stream-solver --symbolic-solver-labels #...
    
  • 如果要编写脚本,则需要在
    solve()
    调用中设置
    symbolic\u solver\u labels=True

    SolverFactory('ipopt').solve(model, tee=True, symbolic_solver_labels=True)