kibaekkim / DualDecomposition.jl

An algorithmic framework for parallel dual decomposition methods in Julia
MIT License
19 stars 5 forks source link

Refactored for distributionally robust optimization and scenario tree #14

Closed hideakiv closed 4 years ago

hideakiv commented 4 years ago

8 Nontrivial extensions to DRO is handled by converting all LagrangeDual to AbstractLagrangeDual

9 User-defined constraints and variables are also handled by AbstractLagrangeDual and initialization - the BundleMethod.jl needs to be updated

13 added investment.jl

codecov-commenter commented 4 years ago

Codecov Report

Merging #14 into master will increase coverage by 0.00%. The diff coverage is 98.50%.

Impacted file tree graph

@@           Coverage Diff           @@
##           master      #14   +/-   ##
=======================================
  Coverage   97.76%   97.76%           
=======================================
  Files           4        5    +1     
  Lines         179      224   +45     
=======================================
+ Hits          175      219   +44     
- Misses          4        5    +1     
Impacted Files Coverage Δ
src/DualDecomposition.jl 100.00% <ø> (ø)
src/ScenarioTree.jl 97.50% <97.50%> (ø)
src/BlockModel.jl 100.00% <100.00%> (ø)
src/LagrangeDual.jl 95.74% <100.00%> (+0.23%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update f008fa4...262ddbc. Read the comment docs.

kibaekkim commented 4 years ago

@hideakiv please add some test script for ScenarioTree.jl in ./test/runtests.jl.

hideakiv commented 4 years ago

Done!

kibaekkim commented 4 years ago

@hideakiv BundleMethod.jl just released v0.1.4 with your implementation of setting initial point. Now you have to update your package dependency and compatibility.

kibaekkim commented 4 years ago

And your push failed the test.

hideakiv commented 4 years ago

My test runs fine when I create a testset with only the "investment" problem, but crashes when I combine with the other tests. I discovered that the crash happens while we set_coupling_variables, inside parallel.allcollect. Do you have any idea as to why this is happening?

hideakiv commented 4 years ago

I am getting a message "Attempting to use an MPI routine after finalizing MPICH"

kibaekkim commented 4 years ago

I am getting a message "Attempting to use an MPI routine after finalizing MPICH"

Yes, I confirmed that too. I suspect that internal initialization/finalization of MPI may not work properly. I am separating out the function calls in #15. Once it is merged, we can try this PR again.