2

我有一个非线性最小化问题,显然是非凸性的。我将 Pyomo 框架用于能源系统运行优化模型,其中需要在连续几个小时内评估一次配置的优化模型(我在开始时创建优化问题,为特定系统定义变量、约束和目标函数,然后我试图解决这个为“模拟”时间框架(例如,给定年份中的每个小时)创建的设置,只改变能源需求参数,......最小化运营成本)。我注意到在一些随机的时间里找不到最佳值。在大多数这些失败的情况下,我得到“达到最大迭代次数”,有时是“恢复失败”的结果。
为了克服这个问题,我想使用 Pyomo “pyo.Solverfactory('multistart').solve(model)),默认情况下使用 IPOPT 求解器。我以前也一直在使用它,但后来我有了语法: pyo.Solverfactory('ipopt', executable=...ipopt.exe) 在这个使用 multistart 的新案例中,虽然我无法为 IPOPT 求解器定义可执行文件。您能帮我解决这个问题吗?(...或建议替代 multistart 以克服非凸最小化的起点问题)
到目前为止,我已经尝试过:
pyo.Solverfactory('multistart', executable=...ipopt.exe).solve(model)
pyo.Solverfactory('multistart').solve(model, solver='ipopt', executable=...ipopt.exe)
非常感谢!

4

1 回答 1

0

应该有一个参数可以将关键字参数字典传递给求解器。见solver_args(https://pyomo.readthedocs.io/en/latest/contributed_pa ​​ckages/multistart.html#using-multistart-solver )

于 2021-12-21T20:31:13.940 回答