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

[ANT-1224] Preparing loop around benders solver #739

Merged
merged 104 commits into from
Mar 18, 2024
Merged

Conversation

a-zakir
Copy link
Contributor

@a-zakir a-zakir commented Dec 28, 2023

steps:

  • create a storage struct for cuts data
  • interface and its implementation(s) to save cuts data
  • re-use cuts
  • external loop criterion check
  • add external loop constraint
  • add "mathematical" logs for external loop (think about data to print)
  • improve operational logs with external loop
  • Computation of initial lambda_max by solving investment free problem + check criterion -> raise warning / exception if not satisfied at this point
  • Handle infeasibility / errors / ...
  • Write test
    [ANT-1224] Loop around Benders to satisfy custom user's criterion #706

Copy link

watermelon-copilot-for-code-review bot commented Dec 28, 2023

Watermelon AI Summary

AI Summary deactivated by a-zakir

GitHub PRs

antares-xpansion is an open repo and Watermelon will serve it for free.
🍉🫶
Have you starred Watermelon?

@a-zakir a-zakir changed the title prepare loop around benders preparing loop around benders solver Dec 28, 2023
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions

B Maintainability Rating on New Code (required ≥ A)

See analysis details on SonarCloud

idea Catch issues before they fail your Quality Gate with our IDE extension SonarLint SonarLint

@pull-request-size pull-request-size bot added size/L and removed size/M labels Jan 31, 2024
@pull-request-size pull-request-size bot added size/XL and removed size/L labels Feb 2, 2024
data_test/external_loop_test/lp/master_last_iteration.mps Outdated Show resolved Hide resolved
data_test/external_loop_test/lp/merged.mps Outdated Show resolved Hide resolved
src/cpp/benders/benders_core/BendersBase.cpp Outdated Show resolved Hide resolved
src/cpp/benders/benders_core/BendersBase.cpp Outdated Show resolved Hide resolved
src/cpp/benders/benders_core/SimulationOptions.cpp Outdated Show resolved Hide resolved
src/cpp/benders/external_loop/OuterLoop.cpp Outdated Show resolved Hide resolved
benders by batch + external loop: 1*100 + 1*10 = 110
*/

auto benders_algo_score =
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe simpler if BENDERSMETHOD is a "tuple" (bool by_batch, bool external_loop). I do not know if doing such a thing is easy

benders_loggers.AddLogger(logger);
benders_loggers.AddLogger(math_log_driver);
switch (method) {
case BENDERSMETHOD::BENDERS:
Copy link
Contributor

Choose a reason for hiding this comment

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

We see here that it may be used to characterize Benders method by a tuple as we only use only the "by batch" dimension

tests/cpp/ext_loop/ext_loop_test.cpp Outdated Show resolved Hide resolved
tests/cpp/ext_loop/ext_loop_test.cpp Outdated Show resolved Hide resolved
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
B Maintainability Rating on New Code (required ≥ A)
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarCloud

Catch issues before they fail your Quality Gate with our IDE extension SonarLint

@a-zakir a-zakir merged commit 12bf8f6 into develop Mar 18, 2024
7 of 9 checks passed
@a-zakir a-zakir deleted the feature/benders_loop branch March 18, 2024 16:20
JasonMarechal25 pushed a commit that referenced this pull request Apr 24, 2024
steps:
- [x] create a storage struct for cuts data
- [x] interface and its implementation(s) to save cuts data
- [x] re-use cuts 
- [x] external loop criterion check
- [x] add external loop constraint
- [x] add "mathematical" logs for external loop (think about data to
print)
- [x] improve operational logs with external loop 
- [x] Computation of initial lambda_max by solving investment free
problem + check criterion -> raise warning / exception if not satisfied
at this point
- [ ] Handle infeasibility / errors / ...
- [x] Write test
#706
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants