Progressive-hedging solvers

Documentation for StochasticPrograms.jl's progressive-hedging solvers.

Index

API

StochasticPrograms.ProgressiveHedging.ProgressiveHedgingAlgorithmType
ProgressiveHedgingAlgorithm

Functor object for the progressive-hedging algorithm. Create using the ProgressiveHedgingSolver factory function and then pass to a StochasticPrograms.jl model.

...

Parameters

  • τ::AbstractFloat = 1e-6: Relative tolerance for convergence checks.
  • log::Bool = true: Specifices if progressive-hedging procedure should be logged on standard output or not.

...

source
StochasticPrograms.ProgressiveHedging.PenalizerType
Regularizer

An optimizer attribute for specifying a penalization procedure to be used in the progressive-hedging algorithm. Options are:

  • Fixed: Fixed penalty (default) ?Fixed for parameter descriptions.
  • Adaptive: Adaptive penalty update ?Adaptive for parameter descriptions.
source
StochasticPrograms.ProgressiveHedging.OptimizerType
Optimizer(; <keyword arguments>)

Return a progressive-hedging optimizer.

...

Arguments

  • subproblem_optimizer::AbstractOptimizer: MathOptInterface solver capable of solving quadratic programs.
  • penalty::AbstractPenalizer = Fixed(): Specify penalty update procedure (Fixed, Adaptive)
  • execution::AbstractExecuter = Serial: Specify how algorithm should be executed (Serial, Synchronous, Asynchronous). Distributed variants requires worker cores.
  • penaltyterm::PenaltyTerm = Quadratic: Specify penaltyterm variant (Quadratic, Linearized, InfNorm, [ManhattanNorm][@ref])
  • <keyword arguments>: Algorithm specific parameters, consult individual docstrings (see above list) for list of possible arguments and default values.

...

source

Execution

StochasticPrograms.ProgressiveHedging.SynchronousExecutionType
SynchronousExecution

Functor object for using synchronous execution in a progressive-hedging algorithm (assuming multiple Julia cores are available). Create by supplying a Synchronous object through execution in the ProgressiveHedgingSolver factory function and then pass to a StochasticPrograms.jl model.

source

Penalties

StochasticPrograms.ProgressiveHedging.FixedPenalizationType
FixedPenalization

Functor object for using fixed penalty in a progressive-hedging algorithm. Create by supplying a Fixed object through penalty in the ProgressiveHedgingSolver factory function and then pass to a StochasticPrograms.jl model.

...

Parameters

  • r::T = 1.00: Fixed penalty

...

source
StochasticPrograms.ProgressiveHedging.AdaptivePenalizationType
AdaptivePenalization

Functor object for using adaptive penalty in a progressive-hedging algorithm. Create by supplying an Adaptive object through penalty in the ProgressiveHedgingSolver factory function and then pass to a StochasticPrograms.jl model.

...

Parameters

  • ζ::T = 0.1: Used to calculate the initial penalty. Non-anticipativity in the initial decision is enforced more as ζ increase.
  • γ₁::T = 1e-5: Tolerance for primal changes being significant
  • γ₂::T = 0.01: Tolerance for primal changes dominating dual changes
  • γ₃::T = 0.25: Tolerance for dual changes dominating primal changes
  • σ::T = 1e-5: Tolerance for the quadratic penalty dominating the Lagrangian
  • α::T = 0.95: Penalty decrease after primal changes dominating dual changes
  • θ::T = 1.1: Penalty increase after dual changes dominating primal changes
  • ν::T = 0.1: Tolerance for significant non-anticipativity violation
  • β::T = 1.1: Penalty increase after increased non-anticipativity violation
  • η::T = 1.25: Default penalty increase in the default case

...

source