我正在尝试在 pyomo 框架中使用 Gurobi 解决非线性(特别是指数)约束问题。求解器给出错误“模型约束不能写成 LP 形式”。同样的问题在 gurobipy 框架中得到了解决。
我使用了 pyomo core (pc) 中的内置函数来定义约束。 (参考下面的代码块)
model.con3=pe.Constraint(rule= model.expx == pc.exp(model.x) - 25)
求解器给我一个错误:“ValueError:模型约束包含无法写入 LP 格式的非线性项” 我为求解器选择了以下选项:
解算器=“gurobi” solver_config = {“消息”:1, “保持文件”:0, “选项”:{“FuncNonlinear”:1,“NonConvex”:2}}
我使用 gurobipy 实现了相同的代码并设置参数 m.params.FuncNonlinear = 1;代码运行良好,问题已解决。有没有办法在pyomo框架中解决Gurobi中的非线性优化问题?
谢谢!
在 Pyomo 中使用 Gurobi 进行非线性优化
opt = SolverFactory('gurobi')
opt.options['非凸'] = 2