Используйте функцию предварительного разрешения Gurobi для модели pyomo
Используя gurobipy, я могу предварительно разрешить смешанную целочисленную линейную модель оптимизации, вызвав функцию предварительного разрешения, т.е.
model = read('milp.mps')
model.presolve().
Я хотел бы применить предварительный шаг Гуроби к некоторой модели, которая ограничена только линейными ограничениями смешанной целочисленной нелинейной модели пиомо (и впоследствии изменить предварительно разрешенную линейную модель, используя 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.
Самый простой способ - это некоторая функция, которая преобразует модель пиомо в модель гуробипы, т.е. gurobi_model = convert_to_gurobi(pyomo_model)
,
Я знаю, что pyomo и Gurobi тесно связаны, т.е. я могу решить модель pyomo с помощью Gurobi, используя
opt = SolverFactory('gurobi')
opt.solve(model),
поэтому я полагаю, что существует некоторая прямая связь между моделью gurobipy и моделью pyomo.
0 ответов
У меня был такой же вопрос, и я перенес ваш вопрос на форум pyomo.
Ответ: до сих пор эта функция не включена в pyomo.