SpineOpt.jl icon indicating copy to clipboard operation
SpineOpt.jl copied to clipboard

Use JuMP.fix_discrete_variables to calculate duals (fallback)

Open manuelma opened this issue 1 year ago • 3 comments

JuMP provides this function since recently and it would be good to at least try it out instead of our rather sophisticated dual solution in another thread...

manuelma avatar Jul 10 '23 07:07 manuelma

Good idea. As an aside, I see JuMP also now supports setting some solver options generally, such as set_time_limit_sec and maybe there are others. We could support these as generic model-level parameters instead of / in addition to the solver-specic parameters using the mip_solver_options and lp_solver_options map parameters

DillonJ avatar Jul 10 '23 09:07 DillonJ

Good idea @DillonJ - although about using JuMP.fix_discrete_variables... looking at the code it doesn't seem too impressive. They do the obvious thing we are already doing with the copy of the model, but a little of extra work to set lower and upper bounds for binary variables that don't have a value for some reason (which is never our case). So I'm not convinced.

At the same time, our approach generates a lot of copies of the model - but they are eventually cleaned up... I thing we need to carefully evaluate pros and cons...

manuelma avatar Jul 10 '23 09:07 manuelma

Might need to test the performance on a real-sized problem

DillonJ avatar Jul 10 '23 09:07 DillonJ