Argonne-National-Laboratory / DSP

An open-source parallel optimization solver for structured mixed-integer programming
Other
81 stars 24 forks source link

Graceful termination when `getPrimalRays` is not implemented #265

Open kibaekkim opened 1 year ago

kibaekkim commented 1 year ago

When some subproblem is dual infeasible, DSP tries to use an extreme ray. However, getPrimalRays is not implemented in most solvers in Osi (except for Cplex as far as I checked).

https://github.com/Argonne-National-Laboratory/DSP/blob/41c3586948ef5c1653823d5d73f3c780eb4ad3b2/src/Solver/DantzigWolfe/DwWorker.cpp#L276

If getPrimalRays is implemented, a bundle cut may be generated by using the extreme ray of the dual infeasible subproblem. Otherwise, we would better return a message and terminate DSP gracefully.

Originally posted by @hideakiv in https://github.com/Argonne-National-Laboratory/DSP/issues/211#issuecomment-1544340695