Skip to content

Conversation

cvanaret
Copy link
Owner

@cvanaret cvanaret commented Feb 26, 2025

Added reoptimization capabilities to Uno, using the existing WarmstartInformation object:

  • pass the WarmstartInformation object as a parameter to Uno::solve(), instead of creating it within the function;
  • modify the WarmstartInformation object at the end of each major iteration, not at the beginning;
  • generate reformulation on the fly in ConstraintRelaxationStrategy, instead of storing it once and for all;
  • determine whether the initial point of the reoptimization (= the solution to the previous problem, at which the functions were not evaluated!) is close enough to the previous iterate. If so, use the evaluations as is. If not, reevaluate them.

Guidelines for a good reoptimization:

  • the WarmstartInformation object must be updated properly between consecutive calls to ``Uno::solve() (e.g. the field variable_bounds_changed must be set to true if the variable bounds change);
  • the initial iterate should be the previous solution Result.solution.

Addresses #107
@ashu

… allows for restarting Uno (provided the WarmstartInformation object is properly updated)
@cvanaret cvanaret changed the title Restarting capabilities Reoptimization capabilities Feb 26, 2025
@cvanaret cvanaret changed the title Reoptimization capabilities [WIP] Reoptimization capabilities Feb 28, 2025
@cvanaret cvanaret self-assigned this Apr 17, 2025
@cvanaret
Copy link
Owner Author

Conditional on #155

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.

1 participant