Skip to content

Eliminated infinite loop when writing IIS LP to file#2741

Merged
jajhall merged 10 commits intolatestfrom
fix-2635
Jan 13, 2026
Merged

Eliminated infinite loop when writing IIS LP to file#2741
jajhall merged 10 commits intolatestfrom
fix-2635

Conversation

@jajhall
Copy link
Member

@jajhall jajhall commented Jan 11, 2026

Checking of (I)IS LP now done with Highs::optimizeModel(), eliminating infinite loop.

This will close #2635

@jajhall jajhall mentioned this pull request Jan 11, 2026
@jajhall
Copy link
Member Author

jajhall commented Jan 11, 2026

Closes #2635

@jajhall jajhall marked this pull request as draft January 11, 2026 23:00
@jajhall
Copy link
Member Author

jajhall commented Jan 11, 2026

Once #2740 is pushed, this will look less scary

@jajhall jajhall marked this pull request as ready for review January 12, 2026 17:30
@jajhall jajhall requested a review from Opt-Mucca January 12, 2026 17:42
@jajhall
Copy link
Member Author

jajhall commented Jan 12, 2026

It would be good to have your views on this, @haman80

Copy link
Collaborator

@Opt-Mucca Opt-Mucca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Good idea adding a test too.

@jajhall jajhall merged commit 0da61e3 into latest Jan 13, 2026
406 of 407 checks passed
@jajhall jajhall deleted the fix-2635 branch January 13, 2026 09:22
bool ray_option =
// kIisStrategyFromRay & options.iis_strategy;
false;
const bool lp_option = kIisStrategyFromLp & options_.iis_strategy;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jajhall If strategy is set to kIisStrategyIrreducible, lp_option will evaluate to false and we end up with an early exit.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed, I think the better interpretation is that if the kIisStrategyIrreducible bit is set, then the IS is obtained from the ray (if that bit is set - and the code works, which it doesn't at present) or the whole LP, regardless of whether the kIisStrategyLp bit is set

@haman80
Copy link
Collaborator

haman80 commented Jan 14, 2026

@jajhall Thank you for the fix. I had a comment regarding the use of lp_option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants