ROL
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ROL::ProgressiveHedging< Real > Class Template Reference

Provides the interface to solve a stochastic program using progressive hedging. More...

#include <ROL_ProgressiveHedging.hpp>

Public Member Functions

 ProgressiveHedging (const Ptr< OptimizationProblem< Real >> &input, const Ptr< SampleGenerator< Real >> &sampler, ParameterList &parlist)
 
void check (std::ostream &outStream=std::cout, const int numSamples=1)
 
void run (std::ostream &outStream=std::cout)
 

Private Member Functions

void presolve (void)
 

Private Attributes

const Ptr< OptimizationProblem< Real > > input_
 
const Ptr< SampleGenerator< Real > > sampler_
 
ParameterList parlist_
 
bool usePresolve_
 
bool useInexact_
 
Real penaltyParam_
 
Real maxPen_
 
Real update_
 
int freq_
 
Real ztol_
 
int maxit_
 
bool print_
 
bool hasStat_
 
Ptr< PH_Objective< Real > > ph_objective_
 
Ptr< Vector< Real > > ph_vector_
 
Ptr< BoundConstraint< Real > > ph_bound_
 
Ptr< Constraint< Real > > ph_constraint_
 
Ptr< OptimizationProblem< Real > > ph_problem_
 
Ptr< OptimizationSolver< Real > > ph_solver_
 
Ptr< PH_StatusTest< Real > > ph_status_
 
Ptr< Vector< Real > > z_psum_
 
Ptr< Vector< Real > > z_gsum_
 
std::vector< Ptr< Vector< Real > > > wvec_
 

Detailed Description

template<class Real>
class ROL::ProgressiveHedging< Real >

Provides the interface to solve a stochastic program using progressive hedging.

The progressive hedging algorithm was introduced in

Rockafellar, R. T., and Wets, R. J-B. Scenarios and policy aggregation in optimization under uncertainty. Mathematics of Operations Research, 16 (1991), 119-147.

This algorithm solves deterministic optimization problems for each sample and then aggregates the optimization variables to produce an ``implementable'' solution. Progressive hedging has recently been applied to solve risk-averse and buffered probability optimization problems in

Rockafellar, R. T., Solving stochastic programming problems with risk measures by progessive hedging, Set-valued and Variational Analysis, published online 2017.

Rockafellar, R. T., and Uryasev, S. Minimizing buffered probability of exceedance by progressive hedging, Mathematical Programming B, published online 2018.

This implementation can also minimize deviation, error and regret arising from the expectation risk quadrangle as well as the smoothed probability

of exceedance.

Definition at line 87 of file ROL_ProgressiveHedging.hpp.

Constructor & Destructor Documentation

◆ ProgressiveHedging()

template<class Real >
ROL::ProgressiveHedging< Real >::ProgressiveHedging ( const Ptr< OptimizationProblem< Real >> &  input,
const Ptr< SampleGenerator< Real >> &  sampler,
ParameterList &  parlist 
)
inline

Member Function Documentation

◆ presolve()

template<class Real >
void ROL::ProgressiveHedging< Real >::presolve ( void  )
inlineprivate

◆ check()

template<class Real >
void ROL::ProgressiveHedging< Real >::check ( std::ostream &  outStream = std::cout,
const int  numSamples = 1 
)
inline

Definition at line 213 of file ROL_ProgressiveHedging.hpp.

◆ run()

template<class Real >
void ROL::ProgressiveHedging< Real >::run ( std::ostream &  outStream = std::cout)
inline

Member Data Documentation

◆ input_

template<class Real >
const Ptr<OptimizationProblem<Real> > ROL::ProgressiveHedging< Real >::input_
private

Definition at line 89 of file ROL_ProgressiveHedging.hpp.

◆ sampler_

template<class Real >
const Ptr<SampleGenerator<Real> > ROL::ProgressiveHedging< Real >::sampler_
private

Definition at line 90 of file ROL_ProgressiveHedging.hpp.

◆ parlist_

template<class Real >
ParameterList ROL::ProgressiveHedging< Real >::parlist_
private

Definition at line 91 of file ROL_ProgressiveHedging.hpp.

◆ usePresolve_

template<class Real >
bool ROL::ProgressiveHedging< Real >::usePresolve_
private

Definition at line 92 of file ROL_ProgressiveHedging.hpp.

◆ useInexact_

template<class Real >
bool ROL::ProgressiveHedging< Real >::useInexact_
private

Definition at line 93 of file ROL_ProgressiveHedging.hpp.

◆ penaltyParam_

template<class Real >
Real ROL::ProgressiveHedging< Real >::penaltyParam_
private

◆ maxPen_

template<class Real >
Real ROL::ProgressiveHedging< Real >::maxPen_
private

◆ update_

template<class Real >
Real ROL::ProgressiveHedging< Real >::update_
private

Definition at line 96 of file ROL_ProgressiveHedging.hpp.

Referenced by ROL::ProgressiveHedging< Real >::run().

◆ freq_

template<class Real >
int ROL::ProgressiveHedging< Real >::freq_
private

Definition at line 97 of file ROL_ProgressiveHedging.hpp.

◆ ztol_

template<class Real >
Real ROL::ProgressiveHedging< Real >::ztol_
private

Definition at line 98 of file ROL_ProgressiveHedging.hpp.

◆ maxit_

template<class Real >
int ROL::ProgressiveHedging< Real >::maxit_
private

Definition at line 99 of file ROL_ProgressiveHedging.hpp.

Referenced by ROL::ProgressiveHedging< Real >::run().

◆ print_

template<class Real >
bool ROL::ProgressiveHedging< Real >::print_
private

Definition at line 100 of file ROL_ProgressiveHedging.hpp.

◆ hasStat_

template<class Real >
bool ROL::ProgressiveHedging< Real >::hasStat_
private

Definition at line 102 of file ROL_ProgressiveHedging.hpp.

◆ ph_objective_

template<class Real >
Ptr<PH_Objective<Real> > ROL::ProgressiveHedging< Real >::ph_objective_
private

◆ ph_vector_

template<class Real >
Ptr<Vector<Real> > ROL::ProgressiveHedging< Real >::ph_vector_
private

◆ ph_bound_

template<class Real >
Ptr<BoundConstraint<Real> > ROL::ProgressiveHedging< Real >::ph_bound_
private

◆ ph_constraint_

template<class Real >
Ptr<Constraint<Real> > ROL::ProgressiveHedging< Real >::ph_constraint_
private

◆ ph_problem_

template<class Real >
Ptr<OptimizationProblem<Real> > ROL::ProgressiveHedging< Real >::ph_problem_
private

◆ ph_solver_

template<class Real >
Ptr<OptimizationSolver<Real> > ROL::ProgressiveHedging< Real >::ph_solver_
private

Definition at line 108 of file ROL_ProgressiveHedging.hpp.

◆ ph_status_

template<class Real >
Ptr<PH_StatusTest<Real> > ROL::ProgressiveHedging< Real >::ph_status_
private

Definition at line 109 of file ROL_ProgressiveHedging.hpp.

◆ z_psum_

template<class Real >
Ptr<Vector<Real> > ROL::ProgressiveHedging< Real >::z_psum_
private

Definition at line 110 of file ROL_ProgressiveHedging.hpp.

◆ z_gsum_

template<class Real >
Ptr<Vector<Real> > ROL::ProgressiveHedging< Real >::z_gsum_
private

Definition at line 110 of file ROL_ProgressiveHedging.hpp.

◆ wvec_

template<class Real >
std::vector<Ptr<Vector<Real> > > ROL::ProgressiveHedging< Real >::wvec_
private

Definition at line 111 of file ROL_ProgressiveHedging.hpp.


The documentation for this class was generated from the following file: