Uno
Uno copied to clipboard
[WIP] Reoptimization capabilities
Added reoptimization capabilities to Uno, using the existing WarmstartInformation object:
- [x] pass the
WarmstartInformationobject as a parameter toUno::solve(), instead of creating it within the function; - [x] modify the
WarmstartInformationobject at the end of each major iteration, not at the beginning; - [x] 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
WarmstartInformationobject must be updated properly between consecutive calls to ``Uno::solve() (e.g. the fieldvariable_bounds_changedmust be set to true if the variable bounds change); - the initial iterate should be the previous solution
Result.solution.
Addresses https://github.com/cvanaret/Uno/issues/107 @ashu
Conditional on https://github.com/cvanaret/Uno/pull/155