coin-or / SHOT

A solver for mixed-integer nonlinear optimization problems
https://shotsolver.dev
Eclipse Public License 2.0
117 stars 25 forks source link

fix handling of GAMS iterlim and setting of GAMS mipbest/objest #87

Closed svigerske closed 4 years ago

svigerske commented 4 years ago

Fix for passing on iteration limit to SHOT. The name ITERLIM_INFINITY is confusing and is actually used to represent the default iterlim. Even if the iterlim is left at the GAMS default, it should be passed on to SHOT. Only if set to the maximal value for an int, it doesn't pass it on (probably that is the SHOT default anyway).

Fix for passing dual bound back to GAMS. The currentDualBound was -infinity for instance https://www.minlplib.org/p_ball_10b_5p_2d_h.html, where SHOT stopped before proving global optimality (convexity is not detected here). But SHOT reported a (correct) dual bound of 0 in the log. Using getGlobalDualBound() seems to make sure that the 0 is passed back to GAMS as well.

Is it correct to base this on stable/1.0?

andreaslundell commented 4 years ago

Looks good. Are you preparing a new version for GAMS? In that case there are a few bug fixes that are not in stable/1.0 yet. But I could create a new release if you want.

svigerske commented 4 years ago

Looks good. Are you preparing a new version for GAMS? In that case there are a few bug fixes that are not in stable/1.0 yet. But I could create a new release if you want.

Well, we'll put out a minor release today, actually. That won't even include this fix to mipbest. (The one for iterlim was releases with GAMS 32.1.0, but I forgot to merge it into this repo.)

I cannot say when the next maintenance/minor release after today will happen, if it happens. GAMS 33 beta should be mid of October.