Replies: 2 comments
-
My take on this:
This is usually handled by solver-options, typically: absolute mip gap and relative mip gap. Of course using those concepts most of the time needs some instance-specific "tuning", especially when using absolute gaps. Most of the time, these options are combined with time-limits (achieving the tuned mip-gap in 99% of all cases is fine, but there will be the 1% case where the time-limit has to kick in).
I would argue, that this is less common as usually too much control is given away to all those heuristics and their unpredictable behaviour. For what it's worth, you should be able to do that using absolute mip gap or relative mip gap too, although it might be somewhat "hacky". Assuming, that Highs starts internal bookkeeping with some infinite-like value (there is kHighsInf), everything else would not make much sense to me, you could post an absolue mip gap of As (if i remember correctly) modelling is based on the concept of range-constraints, modelling itself needs access to that value (e.g. for cancelling a lower-bound by posting negative infinity). Meaning: That value should be part of the API. If callbacks are available, which seem to be worked on (see issue-tracker), there will probably be a chance of calling abort or similar after you reasoned about abortion in your callback code. At least that's possible in all commercial solvers. |
Beta Was this translation helpful? Give feedback.
-
This is possible using by setting mip_max_improving_sols to 1 |
Beta Was this translation helpful? Give feedback.
-
For MIPs, does HiGHS have the ability to terminate the solve process when at least one feasible solution is found?
It would be awesome to be able to stop solving when I've found a good enough incumbent. Not sure if this is already possible through, e.g., a callback function or a solve option.
Beta Was this translation helpful? Give feedback.
All reactions