Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

skip the generation of Benders binary cut if the bigM problem is unbounded #124

Merged
merged 3 commits into from
Oct 12, 2023

Conversation

yuxies
Copy link

@yuxies yuxies commented Oct 10, 2023

Caused by unbounded \llv\ variables.

  • If the bigM problem is determined unbounded or does not have an optimal solution, set the value of bigM to -inf.
  • Add a boolean variable isBigMIncObjErr_ to track this case, and turn off Benders binary cut once the error is detected.

Will run more tests.

@yuxies yuxies marked this pull request as ready for review October 10, 2023 19:00
Copy link
Member

@tkralphs tkralphs left a comment

Choose a reason for hiding this comment

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

The purpose of the changes made in the last commit was to obviate the need for bigMIncObj_ and isBigMIncObjSet_, which serve no purpose at all as the code stands now, Can you just remove them completely?

src/MibSCutGenerator.cpp Outdated Show resolved Hide resolved
src/MibSCutGenerator.cpp Outdated Show resolved Hide resolved
@yuxies
Copy link
Author

yuxies commented Oct 12, 2023

Update:

  • Changed the return type of findBigMBendersBinaryCut() to boolean, and the value of bigM is now passed using a parameter.
  • If the bigM problem is determined unbounded or does not have an optimal solution, the function returns false.
  • The Benders binary cut generator will be turned off if not findBigMBendersBinaryCut().
  • Changed IncObj to BendBin in variable names.
  • Keep using the variables bigMBendBin_ and isBigMBendBinSet_ to track whether the bigM problem has been solved (currently on $\mathcal(S)$) before and the bigM value has been recorded. The value will be stored in bigMBendBin_ and used for future generations of Benders binary cut.

@tkralphs tkralphs merged commit 797ee51 into coin-or:stable/1.2 Oct 12, 2023
13 checks passed
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.

2 participants