Используя gurobipy, я могу предварительно решить смешанную целочисленную линейную модель оптимизации, вызвав функцию presolve, т.е.
model = read('milp.mps')
model.presolve().
Я хотел бы применить предварительный шаг Гуроби к некоторой модели, которая ограничена только линейными ограничениями смешанной целочисленной нелинейной модели пиомо (и впоследствии изменить предварительно решенную линейную модель, используя гуробипи или пиомо, перед решением с помощью Гуроби).
Схематично я хочу сделать следующее:
linear_model = deactivate_nonlinear_constrs(pyomo_model) #This step is clear
presolved_model = presolve_with_gurobi(linear_model),
где presolved_model может быть как гуробипой, так и пиомо-моделью.
Самый простой способ - это использовать некоторую функцию, которая преобразует модель pyomo в модель gurobipy, то есть gurobi_model = convert_to_gurobi(pyomo_model).
Я знаю, что пьомо и гуроби тесно связаны, то есть я могу решить модель пьомо с гуроби, используя
opt = SolverFactory('gurobi')
opt.solve(model),
так что я полагаю, что есть некоторая прямая связь между моделью гуробипи и моделью пиомо.