Benchmarking Stochastic UC Solution Methods #33
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR provides a function to compare the performance of the currently supported solution methods (i.e., extensive form and progressive hedging) in solving stochastic unit commitment (SUC) models. The benchmark SUC instances can be constructed by the user based on different test cases with varying scenario numbers.
PHFinalResult
struct was taken out assumingly to ensure consistency with the otheroptimize!
methods. One concern that arises with this is that it will become challenging to obtain the global objective function value of the aggregate UC model, because the JuMP model in each process has its own objective value and it is oblivious to the global objective value of the aggregate UC model. The solution dictionary (merged from all processes) does not track the global objective value either. For this reason, I had to add PHFinalResult tostructs.jl
and return it inoptimize!
.ph_subp.jl
, is included inside the package, which is called by the benchmarking function.Would welcome any feedback/suggestions @iSoron!