martinbiel / StochasticPrograms.jl

Julia package for formulating and analyzing stochastic recourse models.
MIT License
75 stars 25 forks source link

Warning: Stochastic program could not be solved, returned status: INFEASIBLE_OR_UNBOUNDED #16

Closed maramos874 closed 3 years ago

maramos874 commented 3 years ago

Hi, My stochastic model converges easily to the optimal solution when using the deterministic equivalent formulation. Nevertheless, PH and L-Shaped methods do not converge at all (see title). I have explored changing both algorithms options without success. Is there something I can explore further to find the source of non-convergence?

Kind regards

martinbiel commented 3 years ago

It is hard to say without knowing what model you are solving. Gurobi has some good guidelines for avoiding common numerical issues. The Gurobi parameter BarHomogeneous can be useful as well. For L-shaped you could consider the somewhat hidden cut_scaling parameter if generated cuts are ill-conditioned. There could be some issue as well because you say that the deterministic equivalent solves fine, but I cannot check that without access to the model.

maramos874 commented 3 years ago

Thanks for the info, scaling the model coefficients surely has an impact on convergence, mostly for PH. I'm still having a hard time driving Benders decomposition towards convergence. is cut_scaling a StochasticPrograms parameter? How do you change it?

martinbiel commented 3 years ago

It should be either

MOI.set(sp, MOI.RawParameter("cut_scaling"), value)

or

set_optimizer_attributes(sp, cut_scaling = value)

It is mentioned in the ?LShapedAlgorithm documentation, and any new general L-shaped parameter would be set in the same way. The parameter re-scales the lhs and rhs of all cuts by the provided value.