junglegobs / PH4GEPMs

A simple implementation of progressive hedging as applied to a generation expansion planning model.
0 stars 0 forks source link

PH4GEPMs

A simple implementation of progressive hedging as applied to a generation expansion planning model.

Setup

To try it out, just clone (download) this repository and run one of the scripts:

shell> git clone https://github.com/junglegobs/PH4GEPMs.git
shell> cd PH4GEPMs
pkg> activate .
julia> include("init.jl")
julia? include(joinpath(@__DIR__, "scripts", "simplest_PH.jl"))

Tip: to get to the shell, type ; in the Julia REPL. Similarly to get to the package manager, type ]

Distributed optimisations setup

To solve the problem distributedly (not a word) using all the cores of your computer, you need to do the following:

julia> using Distributed
shell> cd <path_to_PH4GEPMs>
julia> @everywhere include(joinpath("init.jl"))
julia> include(joinpath("scripts", "distributed_PH.jl"))

References

For a reference to progressive hedging, see here. For generation expansion planning models, see e.g. this paper.

Solver choice

Usually I would just use Gurobi, but that's paid software (though academics get free licenses). So I had a bit of an experiment with solvers, for which I give a summary here:

Performance