ROL
ROL::CoherentEntropicRisk< Real > Class Template Reference

Provides the interface for the coherent entropic risk measure. More...

#include <ROL_CoherentEntropicRisk.hpp>

Inheritance diagram for ROL::CoherentEntropicRisk< Real >:

Public Member Functions

 CoherentEntropicRisk (void)
void initialize (const Vector< Real > &x)
void updateValue (Objective< Real > &obj, const Vector< Real > &x, const std::vector< Real > &xstat, Real &tol)
Real getValue (const Vector< Real > &x, const std::vector< Real > &xstat, SampleGenerator< Real > &sampler)
void updateGradient (Objective< Real > &obj, const Vector< Real > &x, const std::vector< Real > &xstat, Real &tol)
void getGradient (Vector< Real > &g, std::vector< Real > &gstat, const Vector< Real > &x, const std::vector< Real > &xstat, SampleGenerator< Real > &sampler)
void updateHessVec (Objective< Real > &obj, const Vector< Real > &v, const std::vector< Real > &vstat, const Vector< Real > &x, const std::vector< Real > &xstat, Real &tol)
void getHessVec (Vector< Real > &hv, std::vector< Real > &hvstat, const Vector< Real > &v, const std::vector< Real > &vstat, const Vector< Real > &x, const std::vector< Real > &xstat, SampleGenerator< Real > &sampler)

Private Attributes

Real dval1_
Real dval2_
Real dval3_

Detailed Description

template<class Real>
class ROL::CoherentEntropicRisk< Real >

Provides the interface for the coherent entropic risk measure.

The coherent entropic risk measure is

\[ \mathcal{R}(X) = \inf_{\lambda > 0} \left\{ \lambda \log\mathbb{E}\left[\exp\left(\frac{X}{\lambda}\right)\right] \right\}. \]

\(\mathcal{R}\) is a law-invariant coherent risk measure. ROL implements this by augmenting the optimization vector \(x_0\) with the parameter \(\lambda\), then minimizes jointly for \((x_0,\lambda)\).

Definition at line 33 of file ROL_CoherentEntropicRisk.hpp.

Constructor & Destructor Documentation

◆ CoherentEntropicRisk()

template<class Real>
ROL::CoherentEntropicRisk< Real >::CoherentEntropicRisk ( void )
inline

Definition at line 53 of file ROL_CoherentEntropicRisk.hpp.

References dval1_, dval2_, and dval3_.

Member Function Documentation

◆ initialize()

template<class Real>
void ROL::CoherentEntropicRisk< Real >::initialize ( const Vector< Real > & x)
inline

Definition at line 56 of file ROL_CoherentEntropicRisk.hpp.

References dval1_, dval2_, dval3_, and zero.

◆ updateValue()

template<class Real>
void ROL::CoherentEntropicRisk< Real >::updateValue ( Objective< Real > & obj,
const Vector< Real > & x,
const std::vector< Real > & xstat,
Real & tol )
inline

Definition at line 62 of file ROL_CoherentEntropicRisk.hpp.

◆ getValue()

template<class Real>
Real ROL::CoherentEntropicRisk< Real >::getValue ( const Vector< Real > & x,
const std::vector< Real > & xstat,
SampleGenerator< Real > & sampler )
inline

◆ updateGradient()

template<class Real>
void ROL::CoherentEntropicRisk< Real >::updateGradient ( Objective< Real > & obj,
const Vector< Real > & x,
const std::vector< Real > & xstat,
Real & tol )
inline

Definition at line 78 of file ROL_CoherentEntropicRisk.hpp.

◆ getGradient()

template<class Real>
void ROL::CoherentEntropicRisk< Real >::getGradient ( Vector< Real > & g,
std::vector< Real > & gstat,
const Vector< Real > & x,
const std::vector< Real > & xstat,
SampleGenerator< Real > & sampler )
inline

◆ updateHessVec()

template<class Real>
void ROL::CoherentEntropicRisk< Real >::updateHessVec ( Objective< Real > & obj,
const Vector< Real > & v,
const std::vector< Real > & vstat,
const Vector< Real > & x,
const std::vector< Real > & xstat,
Real & tol )
inline

Definition at line 107 of file ROL_CoherentEntropicRisk.hpp.

References dval1_, dval2_, and dval3_.

◆ getHessVec()

template<class Real>
void ROL::CoherentEntropicRisk< Real >::getHessVec ( Vector< Real > & hv,
std::vector< Real > & hvstat,
const Vector< Real > & v,
const std::vector< Real > & vstat,
const Vector< Real > & x,
const std::vector< Real > & xstat,
SampleGenerator< Real > & sampler )
inline

Member Data Documentation

◆ dval1_

template<class Real>
Real ROL::CoherentEntropicRisk< Real >::dval1_
private

◆ dval2_

template<class Real>
Real ROL::CoherentEntropicRisk< Real >::dval2_
private

◆ dval3_

template<class Real>
Real ROL::CoherentEntropicRisk< Real >::dval3_
private

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