ROL
ROL::OptimizationProblem< Real > Class Template Reference

#include <ROL_OptimizationProblem.hpp>

Public Member Functions

virtual ~OptimizationProblem (void)
 OptimizationProblem (void)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< BoundConstraint< Real > > &bnd, const std::vector< Ptr< Constraint< Real > > > &econ, const std::vector< Ptr< Vector< Real > > > &emul, const std::vector< Ptr< Constraint< Real > > > &icon, const std::vector< Ptr< Vector< Real > > > &imul, const std::vector< Ptr< BoundConstraint< Real > > > &ibnd)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< BoundConstraint< Real > > &bnd, const Ptr< Constraint< Real > > &econ, const Ptr< Vector< Real > > &emul, const std::vector< Ptr< Constraint< Real > > > &icon, const std::vector< Ptr< Vector< Real > > > &imul, const std::vector< Ptr< BoundConstraint< Real > > > &ibnd)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< BoundConstraint< Real > > &bnd, const std::vector< Ptr< Constraint< Real > > > &econ, const std::vector< Ptr< Vector< Real > > > &emul, const Ptr< Constraint< Real > > &icon, const Ptr< Vector< Real > > &imul, const Ptr< BoundConstraint< Real > > &ibnd)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< BoundConstraint< Real > > &bnd, const Ptr< Constraint< Real > > &econ, const Ptr< Vector< Real > > &emul, const Ptr< Constraint< Real > > &icon, const Ptr< Vector< Real > > &imul, const Ptr< BoundConstraint< Real > > &ibnd)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const std::vector< Ptr< Constraint< Real > > > &econ, const std::vector< Ptr< Vector< Real > > > &emul, const std::vector< Ptr< Constraint< Real > > > &icon, const std::vector< Ptr< Vector< Real > > > &imul, const std::vector< Ptr< BoundConstraint< Real > > > &ibnd)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< Constraint< Real > > &econ, const Ptr< Vector< Real > > &emul, const std::vector< Ptr< Constraint< Real > > > &icon, const std::vector< Ptr< Vector< Real > > > &imul, const std::vector< Ptr< BoundConstraint< Real > > > &ibnd)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const std::vector< Ptr< Constraint< Real > > > &econ, const std::vector< Ptr< Vector< Real > > > &emul, const Ptr< Constraint< Real > > &icon, const Ptr< Vector< Real > > &imul, const Ptr< BoundConstraint< Real > > &ibnd)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< Constraint< Real > > &econ, const Ptr< Vector< Real > > &emul, const Ptr< Constraint< Real > > &icon, const Ptr< Vector< Real > > &imul, const Ptr< BoundConstraint< Real > > &ibnd)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< BoundConstraint< Real > > &bnd, const std::vector< Ptr< Constraint< Real > > > &econ, const std::vector< Ptr< Vector< Real > > > &emul)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< BoundConstraint< Real > > &bnd, const Ptr< Constraint< Real > > &econ, const Ptr< Vector< Real > > &emul)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< BoundConstraint< Real > > &bnd, const std::vector< Ptr< Constraint< Real > > > &icon, const std::vector< Ptr< Vector< Real > > > &imul, const std::vector< Ptr< BoundConstraint< Real > > > &ibnd)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< BoundConstraint< Real > > &bnd, const Ptr< Constraint< Real > > &icon, const Ptr< Vector< Real > > &imul, const Ptr< BoundConstraint< Real > > &ibnd)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const std::vector< Ptr< Constraint< Real > > > &econ, const std::vector< Ptr< Vector< Real > > > &emul)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< Constraint< Real > > &econ, const Ptr< Vector< Real > > &emul)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const std::vector< Ptr< Constraint< Real > > > &icon, const std::vector< Ptr< Vector< Real > > > &imul, const std::vector< Ptr< BoundConstraint< Real > > > &ibnd)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< Constraint< Real > > &icon, const Ptr< Vector< Real > > &imul, const Ptr< BoundConstraint< Real > > &ibnd)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< BoundConstraint< Real > > &bnd)
 OptimizationProblem (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x)
virtual Ptr< Objective< Real > > getObjective (void)
virtual Ptr< Vector< Real > > getSolutionVector (void)
virtual Ptr< BoundConstraint< Real > > getBoundConstraint (void)
virtual Ptr< Constraint< Real > > getConstraint (void)
virtual Ptr< Vector< Real > > getMultiplierVector (void)
EProblem getProblemType (void)
void setMeanValueObjective (const Ptr< SampleGenerator< Real > > &sampler)
 Set objective function to mean value objective.
void setRiskNeutralObjective (const Ptr< SampleGenerator< Real > > &vsampler, const Ptr< SampleGenerator< Real > > &gsampler=nullPtr, const Ptr< SampleGenerator< Real > > &hsampler=nullPtr, const bool storage=true)
 Set objective function to risk neutral objective.
void setMeanValueEquality (const Ptr< SampleGenerator< Real > > &sampler, const int index=0)
 Set objective function to risk averse objective.
void setRiskNeutralEquality (const Ptr< SampleGenerator< Real > > &xsampler, const Ptr< BatchManager< Real > > &cbman, const int index=0)
void setAlmostSureEquality (const Ptr< SampleGenerator< Real > > &sampler, const int index=0)
void setStochasticEquality (std::vector< ParameterList > &parlist, const std::vector< Ptr< SampleGenerator< Real > > > &xsampler, const std::vector< Ptr< BatchManager< Real > > > &cbman)
void setStochasticEquality (ParameterList &parlist, const Ptr< SampleGenerator< Real > > &xsampler, const Ptr< BatchManager< Real > > &cbman)
void setMeanValueInequality (const Ptr< SampleGenerator< Real > > &sampler, const int index=0)
void setRiskNeutralInequality (const Ptr< SampleGenerator< Real > > &xsampler, const Ptr< BatchManager< Real > > &cbman, const int index=0)
void setRiskAverseInequality (ParameterList &parlist, const Ptr< SampleGenerator< Real > > &sampler, const int index=0)
void setAlmostSureInequality (const Ptr< SampleGenerator< Real > > &sampler, const int index=0)
void setStochasticInequality (std::vector< ParameterList > &parlist, const std::vector< Ptr< SampleGenerator< Real > > > &xsampler, const std::vector< Ptr< BatchManager< Real > > > &cbman)
void setStochasticInequality (ParameterList &parlist, const Ptr< SampleGenerator< Real > > &xsampler, const Ptr< BatchManager< Real > > &cbman)
Real getSolutionStatistic (int comp=0, int index=0)
 Returns the statistic from the soluton vector.
std::vector< Real > getObjectiveStatistic (void) const
std::vector< Real > getConstraintStatistic (const int index=0) const
void reset (void)
void checkSolutionVector (Vector< Real > &x, Vector< Real > &y, Vector< Real > &u, std::ostream &outStream=std::cout)
void checkSolutionVector (OptimizationProblemCheckData< Real > &data, Vector< Real > &x, Vector< Real > &y, Vector< Real > &u, std::ostream &outStream=std::cout)
void checkObjective (Vector< Real > &x, Vector< Real > &u, Vector< Real > &v, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
void checkObjective (OptimizationProblemCheckData< Real > &data, Vector< Real > &x, Vector< Real > &u, Vector< Real > &v, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
void checkMultiplierVector (Vector< Real > &w, Vector< Real > &q, Vector< Real > &l, std::ostream &outStream=std::cout)
void checkMultiplierVector (OptimizationProblemCheckData< Real > &data, Vector< Real > &w, Vector< Real > &q, Vector< Real > &l, std::ostream &outStream=std::cout)
void checkConstraint (Vector< Real > &x, Vector< Real > &u, Vector< Real > &v, Vector< Real > &c, Vector< Real > &l, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
void checkConstraint (OptimizationProblemCheckData< Real > &data, Vector< Real > &x, Vector< Real > &u, Vector< Real > &v, Vector< Real > &c, Vector< Real > &l, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
void check (std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)
void check (OptimizationProblemCheckData< Real > &data, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1)

Private Member Functions

void initialize (const Ptr< Objective< Real > > &obj, const Ptr< Vector< Real > > &x, const Ptr< BoundConstraint< Real > > &bnd, const std::vector< Ptr< Constraint< Real > > > &econ, const std::vector< Ptr< Vector< Real > > > &emul, const std::vector< Ptr< Constraint< Real > > > &icon, const std::vector< Ptr< Vector< Real > > > &imul, const std::vector< Ptr< BoundConstraint< Real > > > &ibnd)
const Ptr< Constraint< Real > > setRiskLessCon (const Ptr< Constraint< Real > > &con, const bool needRiskLess) const
const Ptr< Objective< Real > > setRiskLessObj (const Ptr< Objective< Real > > &obj, const bool needRiskLess) const
std::vector< Real > computeSampleMean (const Ptr< SampleGenerator< Real > > &sampler) const
void initStochastic (void)
void buildRiskVec (Ptr< Vector< Real > > &x)
void buildRiskBnd (Ptr< BoundConstraint< Real > > &bnd)

Private Attributes

Ptr< Objective< Real > > INPUT_obj_
Ptr< Vector< Real > > INPUT_sol_
Ptr< BoundConstraint< Real > > INPUT_bnd_
std::vector< Ptr< Constraint< Real > > > INPUT_econ_
std::vector< Ptr< Vector< Real > > > INPUT_emul_
std::vector< Ptr< Constraint< Real > > > INPUT_icon_
std::vector< Ptr< Vector< Real > > > INPUT_imul_
std::vector< Ptr< BoundConstraint< Real > > > INPUT_ibnd_
Ptr< Objective< Real > > INTERMEDIATE_obj_
Ptr< Vector< Real > > INTERMEDIATE_sol_
Ptr< BoundConstraint< Real > > INTERMEDIATE_bnd_
std::vector< Ptr< Constraint< Real > > > INTERMEDIATE_econ_
std::vector< Ptr< Vector< Real > > > INTERMEDIATE_emul_
std::vector< Ptr< Constraint< Real > > > INTERMEDIATE_icon_
std::vector< Ptr< Vector< Real > > > INTERMEDIATE_imul_
std::vector< Ptr< BoundConstraint< Real > > > INTERMEDIATE_ibnd_
Ptr< SampleGenerator< Real > > vsampler_
Ptr< SampleGenerator< Real > > gsampler_
Ptr< SampleGenerator< Real > > hsampler_
std::vector< Ptr< SampleGenerator< Real > > > exsampler_
std::vector< Ptr< BatchManager< Real > > > ecbman_
std::vector< Ptr< SampleGenerator< Real > > > ixsampler_
std::vector< Ptr< BatchManager< Real > > > icbman_
Ptr< ParameterList > parlistObj_
std::vector< Ptr< ParameterList > > parlistCon_
Ptr< Objective< Real > > obj_
Ptr< Vector< Real > > sol_
Ptr< BoundConstraint< Real > > bnd_
Ptr< Constraint< Real > > con_
Ptr< Vector< Real > > mul_
Ptr< ConstraintManager< Real > > conManager_
EProblem problemType_
bool isInitialized_
bool needRiskLessObj_
std::vector< bool > needRiskLessEcon_
std::vector< bool > needRiskLessIcon_
bool isStochastic_

Detailed Description

template<class Real>
class ROL::OptimizationProblem< Real >

Definition at line 54 of file ROL_OptimizationProblem.hpp.

Constructor & Destructor Documentation

◆ ~OptimizationProblem()

template<class Real>
virtual ROL::OptimizationProblem< Real >::~OptimizationProblem ( void )
inlinevirtual

Definition at line 259 of file ROL_OptimizationProblem.hpp.

◆ OptimizationProblem() [1/19]

◆ OptimizationProblem() [2/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< BoundConstraint< Real > > & bnd,
const std::vector< Ptr< Constraint< Real > > > & econ,
const std::vector< Ptr< Vector< Real > > > & emul,
const std::vector< Ptr< Constraint< Real > > > & icon,
const std::vector< Ptr< Vector< Real > > > & imul,
const std::vector< Ptr< BoundConstraint< Real > > > & ibnd )
inline

◆ OptimizationProblem() [3/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< BoundConstraint< Real > > & bnd,
const Ptr< Constraint< Real > > & econ,
const Ptr< Vector< Real > > & emul,
const std::vector< Ptr< Constraint< Real > > > & icon,
const std::vector< Ptr< Vector< Real > > > & imul,
const std::vector< Ptr< BoundConstraint< Real > > > & ibnd )
inline

◆ OptimizationProblem() [4/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< BoundConstraint< Real > > & bnd,
const std::vector< Ptr< Constraint< Real > > > & econ,
const std::vector< Ptr< Vector< Real > > > & emul,
const Ptr< Constraint< Real > > & icon,
const Ptr< Vector< Real > > & imul,
const Ptr< BoundConstraint< Real > > & ibnd )
inline

◆ OptimizationProblem() [5/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< BoundConstraint< Real > > & bnd,
const Ptr< Constraint< Real > > & econ,
const Ptr< Vector< Real > > & emul,
const Ptr< Constraint< Real > > & icon,
const Ptr< Vector< Real > > & imul,
const Ptr< BoundConstraint< Real > > & ibnd )
inline

◆ OptimizationProblem() [6/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const std::vector< Ptr< Constraint< Real > > > & econ,
const std::vector< Ptr< Vector< Real > > > & emul,
const std::vector< Ptr< Constraint< Real > > > & icon,
const std::vector< Ptr< Vector< Real > > > & imul,
const std::vector< Ptr< BoundConstraint< Real > > > & ibnd )
inline

Definition at line 356 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

◆ OptimizationProblem() [7/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< Constraint< Real > > & econ,
const Ptr< Vector< Real > > & emul,
const std::vector< Ptr< Constraint< Real > > > & icon,
const std::vector< Ptr< Vector< Real > > > & imul,
const std::vector< Ptr< BoundConstraint< Real > > > & ibnd )
inline

Definition at line 365 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

◆ OptimizationProblem() [8/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const std::vector< Ptr< Constraint< Real > > > & econ,
const std::vector< Ptr< Vector< Real > > > & emul,
const Ptr< Constraint< Real > > & icon,
const Ptr< Vector< Real > > & imul,
const Ptr< BoundConstraint< Real > > & ibnd )
inline

Definition at line 374 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

◆ OptimizationProblem() [9/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< Constraint< Real > > & econ,
const Ptr< Vector< Real > > & emul,
const Ptr< Constraint< Real > > & icon,
const Ptr< Vector< Real > > & imul,
const Ptr< BoundConstraint< Real > > & ibnd )
inline

Definition at line 383 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

◆ OptimizationProblem() [10/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< BoundConstraint< Real > > & bnd,
const std::vector< Ptr< Constraint< Real > > > & econ,
const std::vector< Ptr< Vector< Real > > > & emul )
inline

Definition at line 393 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

◆ OptimizationProblem() [11/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< BoundConstraint< Real > > & bnd,
const Ptr< Constraint< Real > > & econ,
const Ptr< Vector< Real > > & emul )
inline

Definition at line 400 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

◆ OptimizationProblem() [12/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< BoundConstraint< Real > > & bnd,
const std::vector< Ptr< Constraint< Real > > > & icon,
const std::vector< Ptr< Vector< Real > > > & imul,
const std::vector< Ptr< BoundConstraint< Real > > > & ibnd )
inline

Definition at line 408 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

◆ OptimizationProblem() [13/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< BoundConstraint< Real > > & bnd,
const Ptr< Constraint< Real > > & icon,
const Ptr< Vector< Real > > & imul,
const Ptr< BoundConstraint< Real > > & ibnd )
inline

Definition at line 416 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

◆ OptimizationProblem() [14/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const std::vector< Ptr< Constraint< Real > > > & econ,
const std::vector< Ptr< Vector< Real > > > & emul )
inline

Definition at line 425 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

◆ OptimizationProblem() [15/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< Constraint< Real > > & econ,
const Ptr< Vector< Real > > & emul )
inline

Definition at line 431 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

◆ OptimizationProblem() [16/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const std::vector< Ptr< Constraint< Real > > > & icon,
const std::vector< Ptr< Vector< Real > > > & imul,
const std::vector< Ptr< BoundConstraint< Real > > > & ibnd )
inline

Definition at line 438 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

◆ OptimizationProblem() [17/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< Constraint< Real > > & icon,
const Ptr< Vector< Real > > & imul,
const Ptr< BoundConstraint< Real > > & ibnd )
inline

Definition at line 445 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

◆ OptimizationProblem() [18/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< BoundConstraint< Real > > & bnd )
inline

Definition at line 453 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

◆ OptimizationProblem() [19/19]

template<class Real>
ROL::OptimizationProblem< Real >::OptimizationProblem ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x )
inline

Definition at line 459 of file ROL_OptimizationProblem.hpp.

References OptimizationProblem().

Member Function Documentation

◆ initialize()

template<class Real>
void ROL::OptimizationProblem< Real >::initialize ( const Ptr< Objective< Real > > & obj,
const Ptr< Vector< Real > > & x,
const Ptr< BoundConstraint< Real > > & bnd,
const std::vector< Ptr< Constraint< Real > > > & econ,
const std::vector< Ptr< Vector< Real > > > & emul,
const std::vector< Ptr< Constraint< Real > > > & icon,
const std::vector< Ptr< Vector< Real > > > & imul,
const std::vector< Ptr< BoundConstraint< Real > > > & ibnd )
inlineprivate

◆ setRiskLessCon()

template<class Real>
const Ptr< Constraint< Real > > ROL::OptimizationProblem< Real >::setRiskLessCon ( const Ptr< Constraint< Real > > & con,
const bool needRiskLess ) const
inlineprivate

Definition at line 180 of file ROL_OptimizationProblem.hpp.

Referenced by initialize().

◆ setRiskLessObj()

template<class Real>
const Ptr< Objective< Real > > ROL::OptimizationProblem< Real >::setRiskLessObj ( const Ptr< Objective< Real > > & obj,
const bool needRiskLess ) const
inlineprivate

Definition at line 189 of file ROL_OptimizationProblem.hpp.

Referenced by initialize().

◆ computeSampleMean()

template<class Real>
std::vector< Real > ROL::OptimizationProblem< Real >::computeSampleMean ( const Ptr< SampleGenerator< Real > > & sampler) const
inlineprivate

Definition at line 198 of file ROL_OptimizationProblem.hpp.

References dim.

Referenced by setMeanValueEquality(), setMeanValueInequality(), and setMeanValueObjective().

◆ initStochastic()

◆ buildRiskVec()

◆ buildRiskBnd()

◆ getObjective()

◆ getSolutionVector()

template<class Real>
virtual Ptr< Vector< Real > > ROL::OptimizationProblem< Real >::getSolutionVector ( void )
inlinevirtual

◆ getBoundConstraint()

◆ getConstraint()

◆ getMultiplierVector()

template<class Real>
virtual Ptr< Vector< Real > > ROL::OptimizationProblem< Real >::getMultiplierVector ( void )
inlinevirtual

◆ getProblemType()

◆ setMeanValueObjective()

template<class Real>
void ROL::OptimizationProblem< Real >::setMeanValueObjective ( const Ptr< SampleGenerator< Real > > & sampler)
inline

Set objective function to mean value objective.

We assume the objective function is parametrized by an additional variable (other than the optimization variable). This variable could, e.g., be random. The mean value objective function evaluates the the parametrized objective function at the sample average of the auxiliary variable.

Parameters
[in]sampleris the SampleGenerator defining the distribution of the auxiliary parameter

Definition at line 526 of file ROL_OptimizationProblem.hpp.

References buildRiskBnd(), buildRiskVec(), computeSampleMean(), gsampler_, hsampler_, initStochastic(), INPUT_bnd_, INPUT_obj_, INPUT_sol_, INTERMEDIATE_obj_, isInitialized_, and vsampler_.

◆ setRiskNeutralObjective()

template<class Real>
void ROL::OptimizationProblem< Real >::setRiskNeutralObjective ( const Ptr< SampleGenerator< Real > > & vsampler,
const Ptr< SampleGenerator< Real > > & gsampler = nullPtr,
const Ptr< SampleGenerator< Real > > & hsampler = nullPtr,
const bool storage = true )
inline

Set objective function to risk neutral objective.

We assume the objective function is parametrized by an additional variable (other than the optimization variable). This variable could, e.g., be random. The risk neutral objective function evaluates the the average of parametrized objective function.

Parameters
[in]vsampleris the SampleGenerator defining the distribution of the auxiliary parameter for the value
[in]gsampleris the SampleGenerator defining the distribution of the auxiliary parameter for the gradient
[in]hsampleris the SampleGenerator defining the distribution of the auxiliary parameter for the Hessian
[in]storagewhether or not to store the sampled value and gradient

Definition at line 560 of file ROL_OptimizationProblem.hpp.

References buildRiskBnd(), buildRiskVec(), gsampler_, hsampler_, initStochastic(), INPUT_bnd_, INPUT_obj_, INPUT_sol_, INTERMEDIATE_obj_, isInitialized_, and vsampler_.

◆ setMeanValueEquality()

template<class Real>
void ROL::OptimizationProblem< Real >::setMeanValueEquality ( const Ptr< SampleGenerator< Real > > & sampler,
const int index = 0 )
inline

Set objective function to risk averse objective.

We assume the objective function is parametrized by an additional variable (other than the optimization variable). This variable could, e.g., be random. The risk averse objective function evaluates the the ``risk'' of parametrized objective function.

Parameters
[in]parlistcontains the information defining the risk measure
[in]vsampleris the SampleGenerator defining the distribution of the auxiliary parameter for the value
[in]gsampleris the SampleGenerator defining the distribution of the auxiliary parameter for the gradient
[in]hsampleris the SampleGenerator defining the distribution of the auxiliary parameter for the Hessian */ void setRiskAverseObjective(ParameterList &parlist, const Ptr<SampleGenerator<Real>> &vsampler, const Ptr<SampleGenerator<Real>> &gsampler = nullPtr, const Ptr<SampleGenerator<Real>> &hsampler = nullPtr) { initStochastic(); Set objective function samplers vsampler_ = vsampler; gsampler_ = gsampler; hsampler_ = hsampler; if ( gsampler == nullPtr ) { gsampler_ = vsampler_; } if ( hsampler == nullPtr ) { hsampler_ = gsampler_; } Construct risk-averse/probabilistic objective function if ( vsampler_ == nullPtr ) { throw Exception::NotImplemented(">>> ROL::OptimizationProblem::setRiskAverseObjective: Objective function value sampler is null!"); } else { needRiskLessObj_ = false; parlistObj_ = makePtrFromRef(parlist); INTERMEDIATE_obj_ = makePtr<StochasticObjective<Real>>(INPUT_obj_,parlist,vsampler_,gsampler_,hsampler_); } Set vector and bound constraint buildRiskVec(INPUT_sol_); buildRiskBnd(INPUT_bnd_);

isInitialized_ = false; }

void setStochasticObjective(ParameterList &parlist, const Ptr<SampleGenerator<Real>> &vsampler, const Ptr<SampleGenerator<Real>> &gsampler = nullPtr, const Ptr<SampleGenerator<Real>> &hsampler = nullPtr) { Determine Stochastic Objective Type std::string type = parlist.sublist("SOL").get("Type","Risk Neutral"); if ( type == "Risk Neutral" ) { bool storage = parlist.sublist("SOL").get("Store Sampled Value and Gradient",true); setRiskNeutralObjective(vsampler,gsampler,hsampler,storage); } else if ( type == "Risk Averse" || type == "Deviation" || type == "Error" || type == "Regret" || type == "Probability" ) { setRiskAverseObjective(parlist,vsampler,gsampler,hsampler); } else if ( type == "Mean Value" ) { setMeanValueObjective(vsampler); } else { throw Exception::NotImplemented(">>> ROL::OptimizationProblem::setStochasticObjective: Invalid stochastic optimization type!"); } Set vector and bound constraint buildRiskVec(INPUT_sol_); buildRiskBnd(INPUT_bnd_);

isInitialized_ = false; }

/* Equality Constraint

Definition at line 665 of file ROL_OptimizationProblem.hpp.

References buildRiskBnd(), buildRiskVec(), computeSampleMean(), exsampler_, initStochastic(), INPUT_bnd_, INPUT_econ_, INPUT_emul_, INPUT_sol_, INTERMEDIATE_econ_, INTERMEDIATE_emul_, and isInitialized_.

Referenced by setStochasticEquality().

◆ setRiskNeutralEquality()

template<class Real>
void ROL::OptimizationProblem< Real >::setRiskNeutralEquality ( const Ptr< SampleGenerator< Real > > & xsampler,
const Ptr< BatchManager< Real > > & cbman,
const int index = 0 )
inline

◆ setAlmostSureEquality()

template<class Real>
void ROL::OptimizationProblem< Real >::setAlmostSureEquality ( const Ptr< SampleGenerator< Real > > & sampler,
const int index = 0 )
inline

◆ setStochasticEquality() [1/2]

template<class Real>
void ROL::OptimizationProblem< Real >::setStochasticEquality ( std::vector< ParameterList > & parlist,
const std::vector< Ptr< SampleGenerator< Real > > > & xsampler,
const std::vector< Ptr< BatchManager< Real > > > & cbman )
inline

◆ setStochasticEquality() [2/2]

template<class Real>
void ROL::OptimizationProblem< Real >::setStochasticEquality ( ParameterList & parlist,
const Ptr< SampleGenerator< Real > > & xsampler,
const Ptr< BatchManager< Real > > & cbman )
inline

Definition at line 770 of file ROL_OptimizationProblem.hpp.

References setStochasticEquality().

◆ setMeanValueInequality()

template<class Real>
void ROL::OptimizationProblem< Real >::setMeanValueInequality ( const Ptr< SampleGenerator< Real > > & sampler,
const int index = 0 )
inline

◆ setRiskNeutralInequality()

template<class Real>
void ROL::OptimizationProblem< Real >::setRiskNeutralInequality ( const Ptr< SampleGenerator< Real > > & xsampler,
const Ptr< BatchManager< Real > > & cbman,
const int index = 0 )
inline

◆ setRiskAverseInequality()

template<class Real>
void ROL::OptimizationProblem< Real >::setRiskAverseInequality ( ParameterList & parlist,
const Ptr< SampleGenerator< Real > > & sampler,
const int index = 0 )
inline

◆ setAlmostSureInequality()

template<class Real>
void ROL::OptimizationProblem< Real >::setAlmostSureInequality ( const Ptr< SampleGenerator< Real > > & sampler,
const int index = 0 )
inline

◆ setStochasticInequality() [1/2]

template<class Real>
void ROL::OptimizationProblem< Real >::setStochasticInequality ( std::vector< ParameterList > & parlist,
const std::vector< Ptr< SampleGenerator< Real > > > & xsampler,
const std::vector< Ptr< BatchManager< Real > > > & cbman )
inline

◆ setStochasticInequality() [2/2]

template<class Real>
void ROL::OptimizationProblem< Real >::setStochasticInequality ( ParameterList & parlist,
const Ptr< SampleGenerator< Real > > & xsampler,
const Ptr< BatchManager< Real > > & cbman )
inline

Definition at line 920 of file ROL_OptimizationProblem.hpp.

References setStochasticInequality().

◆ getSolutionStatistic()

template<class Real>
Real ROL::OptimizationProblem< Real >::getSolutionStatistic ( int comp = 0,
int index = 0 )
inline

Returns the statistic from the soluton vector.

Parameters
[in]compis the component of the risk vector (0 for objective, 1 for inequality constraint)
[in]indexis the inequality constraint index

Definition at line 934 of file ROL_OptimizationProblem.hpp.

References computeStatistic(), INTERMEDIATE_icon_, INTERMEDIATE_obj_, and INTERMEDIATE_sol_.

Referenced by main().

◆ getObjectiveStatistic()

template<class Real>
std::vector< Real > ROL::OptimizationProblem< Real >::getObjectiveStatistic ( void ) const
inline

Definition at line 962 of file ROL_OptimizationProblem.hpp.

References INTERMEDIATE_sol_.

◆ getConstraintStatistic()

template<class Real>
std::vector< Real > ROL::OptimizationProblem< Real >::getConstraintStatistic ( const int index = 0) const
inline

Definition at line 980 of file ROL_OptimizationProblem.hpp.

References INTERMEDIATE_sol_.

◆ reset()

◆ checkSolutionVector() [1/2]

template<class Real>
void ROL::OptimizationProblem< Real >::checkSolutionVector ( Vector< Real > & x,
Vector< Real > & y,
Vector< Real > & u,
std::ostream & outStream = std::cout )
inline

Definition at line 1006 of file ROL_OptimizationProblem.hpp.

References checkSolutionVector().

Referenced by check(), and checkSolutionVector().

◆ checkSolutionVector() [2/2]

◆ checkObjective() [1/2]

template<class Real>
void ROL::OptimizationProblem< Real >::checkObjective ( Vector< Real > & x,
Vector< Real > & u,
Vector< Real > & v,
std::ostream & outStream = std::cout,
const int numSteps = ROL_NUM_CHECKDERIV_STEPS,
const int order = 1 )
inline

Definition at line 1031 of file ROL_OptimizationProblem.hpp.

References checkObjective(), and ROL_NUM_CHECKDERIV_STEPS.

Referenced by check(), and checkObjective().

◆ checkObjective() [2/2]

◆ checkMultiplierVector() [1/2]

template<class Real>
void ROL::OptimizationProblem< Real >::checkMultiplierVector ( Vector< Real > & w,
Vector< Real > & q,
Vector< Real > & l,
std::ostream & outStream = std::cout )
inline

Definition at line 1064 of file ROL_OptimizationProblem.hpp.

References checkMultiplierVector().

Referenced by check(), and checkMultiplierVector().

◆ checkMultiplierVector() [2/2]

◆ checkConstraint() [1/2]

template<class Real>
void ROL::OptimizationProblem< Real >::checkConstraint ( Vector< Real > & x,
Vector< Real > & u,
Vector< Real > & v,
Vector< Real > & c,
Vector< Real > & l,
std::ostream & outStream = std::cout,
const int numSteps = ROL_NUM_CHECKDERIV_STEPS,
const int order = 1 )
inline

Definition at line 1088 of file ROL_OptimizationProblem.hpp.

References checkConstraint(), and ROL_NUM_CHECKDERIV_STEPS.

Referenced by check(), and checkConstraint().

◆ checkConstraint() [2/2]

◆ check() [1/2]

template<class Real>
void ROL::OptimizationProblem< Real >::check ( std::ostream & outStream = std::cout,
const int numSteps = ROL_NUM_CHECKDERIV_STEPS,
const int order = 1 )
inline

◆ check() [2/2]

Member Data Documentation

◆ INPUT_obj_

◆ INPUT_sol_

◆ INPUT_bnd_

◆ INPUT_econ_

◆ INPUT_emul_

◆ INPUT_icon_

◆ INPUT_imul_

◆ INPUT_ibnd_

◆ INTERMEDIATE_obj_

◆ INTERMEDIATE_sol_

◆ INTERMEDIATE_bnd_

◆ INTERMEDIATE_econ_

◆ INTERMEDIATE_emul_

◆ INTERMEDIATE_icon_

◆ INTERMEDIATE_imul_

◆ INTERMEDIATE_ibnd_

◆ vsampler_

template<class Real>
Ptr<SampleGenerator<Real> > ROL::OptimizationProblem< Real >::vsampler_
private

Definition at line 74 of file ROL_OptimizationProblem.hpp.

Referenced by setMeanValueObjective(), and setRiskNeutralObjective().

◆ gsampler_

template<class Real>
Ptr<SampleGenerator<Real> > ROL::OptimizationProblem< Real >::gsampler_
private

Definition at line 75 of file ROL_OptimizationProblem.hpp.

Referenced by setMeanValueObjective(), and setRiskNeutralObjective().

◆ hsampler_

template<class Real>
Ptr<SampleGenerator<Real> > ROL::OptimizationProblem< Real >::hsampler_
private

Definition at line 76 of file ROL_OptimizationProblem.hpp.

Referenced by setMeanValueObjective(), and setRiskNeutralObjective().

◆ exsampler_

template<class Real>
std::vector<Ptr<SampleGenerator<Real> > > ROL::OptimizationProblem< Real >::exsampler_
private

◆ ecbman_

template<class Real>
std::vector<Ptr<BatchManager<Real> > > ROL::OptimizationProblem< Real >::ecbman_
private

Definition at line 78 of file ROL_OptimizationProblem.hpp.

Referenced by initStochastic(), and setRiskNeutralEquality().

◆ ixsampler_

template<class Real>
std::vector<Ptr<SampleGenerator<Real> > > ROL::OptimizationProblem< Real >::ixsampler_
private

◆ icbman_

template<class Real>
std::vector<Ptr<BatchManager<Real> > > ROL::OptimizationProblem< Real >::icbman_
private

Definition at line 80 of file ROL_OptimizationProblem.hpp.

Referenced by initStochastic(), and setRiskNeutralInequality().

◆ parlistObj_

template<class Real>
Ptr<ParameterList> ROL::OptimizationProblem< Real >::parlistObj_
private

Definition at line 82 of file ROL_OptimizationProblem.hpp.

Referenced by buildRiskBnd(), buildRiskVec(), and initStochastic().

◆ parlistCon_

template<class Real>
std::vector<Ptr<ParameterList> > ROL::OptimizationProblem< Real >::parlistCon_
private

◆ obj_

template<class Real>
Ptr<Objective<Real> > ROL::OptimizationProblem< Real >::obj_
private

◆ sol_

template<class Real>
Ptr<Vector<Real> > ROL::OptimizationProblem< Real >::sol_
private

Definition at line 86 of file ROL_OptimizationProblem.hpp.

Referenced by check(), getSolutionVector(), and initialize().

◆ bnd_

template<class Real>
Ptr<BoundConstraint<Real> > ROL::OptimizationProblem< Real >::bnd_
private

Definition at line 87 of file ROL_OptimizationProblem.hpp.

Referenced by getBoundConstraint(), and initialize().

◆ con_

template<class Real>
Ptr<Constraint<Real> > ROL::OptimizationProblem< Real >::con_
private

◆ mul_

template<class Real>
Ptr<Vector<Real> > ROL::OptimizationProblem< Real >::mul_
private

Definition at line 89 of file ROL_OptimizationProblem.hpp.

Referenced by check(), getMultiplierVector(), and initialize().

◆ conManager_

template<class Real>
Ptr<ConstraintManager<Real> > ROL::OptimizationProblem< Real >::conManager_
private

Definition at line 91 of file ROL_OptimizationProblem.hpp.

Referenced by initialize(), and reset().

◆ problemType_

template<class Real>
EProblem ROL::OptimizationProblem< Real >::problemType_
private

Definition at line 93 of file ROL_OptimizationProblem.hpp.

Referenced by getProblemType(), and initialize().

◆ isInitialized_

◆ needRiskLessObj_

template<class Real>
bool ROL::OptimizationProblem< Real >::needRiskLessObj_
private

Definition at line 97 of file ROL_OptimizationProblem.hpp.

Referenced by initialize(), and initStochastic().

◆ needRiskLessEcon_

template<class Real>
std::vector<bool> ROL::OptimizationProblem< Real >::needRiskLessEcon_
private

Definition at line 98 of file ROL_OptimizationProblem.hpp.

Referenced by initialize(), and initStochastic().

◆ needRiskLessIcon_

template<class Real>
std::vector<bool> ROL::OptimizationProblem< Real >::needRiskLessIcon_
private

Definition at line 99 of file ROL_OptimizationProblem.hpp.

Referenced by initialize(), initStochastic(), and setRiskAverseInequality().

◆ isStochastic_


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