使用gurobipy,我可以通过调用presolve函数来预先解决混合整数线性优化模型,即
model = read('milp.mps')
model.presolve().
我想将Gurobi的预处理步骤应用于某个模型,该模型仅受混合整数非线性pyomo模型的线性约束的限制(并随后修改预先解决的线性模型,使用gurobipy或者pyomo,在使用Gurobi解决之前。
示意图,我想要做的是:
linear_model = deactivate_nonlinear_constrs(pyomo_model) #This step is clear
presolved_model = presolve_with_gurobi(linear_model),
其中presolved_model
可以是gurobipy,也可以是pyomo模型。
最简单的方法是将pyomo模型转换为gurobipy模型,即gurobi_model = convert_to_gurobi(pyomo_model)
。
我知道pyomo和Gurobi紧密耦合,即我可以使用Gurobi解决pyomo模型
opt = SolverFactory('gurobi')
opt.solve(model),
因此我认为gurobipy模型和pyomo模型之间也存在一些直接联系。