Skip to content

Latest commit

 

History

History
31 lines (19 loc) · 2.19 KB

README.md

File metadata and controls

31 lines (19 loc) · 2.19 KB

ProgressiveHedgingSolvers

Build Status

Coverage Status

codecov.io

ProgressiveHedgingSolvers includes implementations of the Progressive-hedging algorithm for two-stage stochastic recourse problems. All algorithm variants are based on the original progressive-hedging algorithm by Rockafellar and Wets. ProgressiveHedgingSolvers interfaces with StochasticPrograms.jl, and a given recourse model sp is solved effectively through

julia> using ProgressiveHedgingSolvers

julia> solve(sp,solver=ProgressiveHedgingSolver(IpoptSolver(print_level=0)))
Progressive Hedging Time: 0:00:06 (1315 iterations)
  Objective:  -855.8332803469432
  δ:          9.436947935542464e-7
:Optimal

Note, that a QP capable AbstractMathProgSolver is required to solve emerging subproblems. In addition, there are distributed variants of the algorithm: ProgressiveHedgingSolver(execution = Synchronous()) and ProgressiveHedgingSolver(execution = Asynchronous()), which requires adding processes with addprocs prior to execution.

The algorithm has a set of parameters that can be tuned prior to execution. For a list of these parameters and their default values, use ? in combination with the solver object. For example, ?Adaptive gives the parameter list for the adaptive penalty procedure. For a list of all solvers and their handle names, use ?ProgressiveHedgingSolver.

References

  1. R. T. Rockafellar and Roger J.-B. Wets (1991), Scenarios and Policy Aggregation in Optimization Under Uncertainty, Mathematics of Operations Research, vol. 16, no. 1, pp. 119-147.