Feasibility jump: fix #3302 and #3303 - #3310
Conversation
* Correct sign of objective contribution * Handle jump candidates with negative coefficient values * Remove double-counting for equality constraints in jump candidate handling * Amend comments
|
@jajhall I'd like to performance test this - we can chat about it tomorrow |
jajhall
left a comment
There was a problem hiding this comment.
Good spot. Were these errors in the original code?
fwesselm
left a comment
There was a problem hiding this comment.
Looks good, @BenChampion!
Credit to @ spoorendonk!
Yes. I did check for interactions with new functionality, though. |
Opt-Mucca
left a comment
There was a problem hiding this comment.
I guess this would mostly change the quality of solutions FJ was returning (not the general ratio of success)?
It's conceivable that we might see a bit of both, because the bug meant it was basically missing constraints when trying to reduce infeasibilities. The FJ paper didn't test objective improvement of the reference implementation, but it's not clear to me whether that meant using a zero objective or something else, which would influence the size of the impact we'll see on solution quality. We'll find out! |
|
This is good to merge! Benchmarking (with a focus on early feasible solutions) shows decent improvements on both time and solution quality. Thanks to @Opt-Mucca for the scripts that made this very easy! Details (for those interested)With the fork-point Note that these are quite different settings from typical performance runs, on which the overall impact may be much smaller.
On the subset of 514, the time ratio (shifted geometric means, shift 1) was 0.94 in favour of the change |
Description
Also amends comments.
Checklist
latestbranchRelated issues
Closes #3302
Closes #3303