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

Provides an interface for a smoothed version of the worst-case scenario risk measure using the expectation risk quadrangle. More...

#include <ROL_SmoothedWorstCaseQuadrangle.hpp>

+ Inheritance diagram for ROL::SmoothedWorstCaseQuadrangle< Real >:

Public Member Functions

 SmoothedWorstCaseQuadrangle (const Real eps)
 Constructor. More...
 
 SmoothedWorstCaseQuadrangle (Teuchos::ParameterList &parlist)
 Constructor. More...
 
Real error (Real x, int deriv=0)
 
Real regret (Real x, int deriv=0)
 Evaluate the scalar regret function at x. More...
 
void checkRegret (void)
 Run default derivative tests for the scalar regret function. More...
 
- Public Member Functions inherited from ROL::ExpectationQuad< Real >
 ExpectationQuad (void)
 
void reset (Teuchos::RCP< Vector< Real > > &x0, const Vector< Real > &x)
 Reset internal risk measure storage. Called for value and gradient computation. More...
 
void reset (Teuchos::RCP< Vector< Real > > &x0, const Vector< Real > &x, Teuchos::RCP< Vector< Real > > &v0, const Vector< Real > &v)
 Reset internal risk measure storage. Called for Hessian-times-a-vector computation. More...
 
void update (const Real val, const Real weight)
 Update internal risk measure storage for value computation. More...
 
void update (const Real val, const Vector< Real > &g, const Real weight)
 Update internal risk measure storage for gradient computation. More...
 
void update (const Real val, const Vector< Real > &g, const Real gv, const Vector< Real > &hv, const Real weight)
 Update internal risk measure storage for Hessian-time-a-vector computation. More...
 
Real getValue (SampleGenerator< Real > &sampler)
 Return risk measure value. More...
 
void getGradient (Vector< Real > &g, SampleGenerator< Real > &sampler)
 Return risk measure (sub)gradient. More...
 
void getHessVec (Vector< Real > &hv, SampleGenerator< Real > &sampler)
 Return risk measure Hessian-times-a-vector. More...
 
- Public Member Functions inherited from ROL::RiskMeasure< Real >
virtual ~RiskMeasure ()
 
 RiskMeasure (void)
 

Private Member Functions

void checkInputs (void) const
 

Private Attributes

Real eps_
 

Additional Inherited Members

- Protected Attributes inherited from ROL::RiskMeasure< Real >
Real val_
 
Real gv_
 
Teuchos::RCP< Vector< Real > > g_
 
Teuchos::RCP< Vector< Real > > hv_
 
Teuchos::RCP< Vector< Real > > dualVector_
 
bool firstReset_
 

Detailed Description

template<class Real>
class ROL::SmoothedWorstCaseQuadrangle< Real >

Provides an interface for a smoothed version of the worst-case scenario risk measure using the expectation risk quadrangle.

The worst-case scenario risk measure is

\[ \mathcal{R}(X) = \sup_{\omega\in\Omega} X(\omega). \]

\(\mathcal{R}\) is a law-invariant coherent risk measure. Clearly, \(\mathcal{R}\) is not differentiable. As such, this class defines a smoothed version of \(\mathcal{R}\) the expectation risk quadrangle. In the nonsmooth case, the scalar regret function is \(v(x) = 0\) if \(x \le 0\) and \(v(x) = \infty\) if \(x > 0\). Similarly, the scalar error function is \(e(x) = -x\) if \(x \le 0 \) and \(e(x) = \infty\) if \(x > 0\). To smooth \(\mathcal{R}\), we perform Moreau-Yosida regularization on the scalar error function, i.e.,

\[ e_\epsilon(x) = \inf_{y\in\mathbb{R}} \left\{ e(y) + \frac{1}{2\epsilon} (x-y)^2\right\} % = \left\{\begin{array}{l l} % -\left(x+\frac{\epsilon}{2}\right) & % \text{if \f$x \le -\epsilon\f$}\\ % \frac{1}{2\epsilon}x^2 & \text{if \f$x > -\epsilon\f$}. % \end{array}\right. \]

for \(\epsilon > 0\). The corresponding scalar regret function is \(v_\epsilon(x) = e_\epsilon(x) + x\). \(\mathcal{R}\) is then implemented as

\[ \mathcal{R}(X) = \inf_{t\in\mathbb{R}}\left\{ t + \mathbb{E}[v_\epsilon(X-t)] \right\}. \]

ROL implements this by augmenting the optimization vector \(x_0\) with the parameter \(t\), then minimizes jointly for \((x_0,t)\).

Definition at line 89 of file ROL_SmoothedWorstCaseQuadrangle.hpp.

Constructor & Destructor Documentation

◆ SmoothedWorstCaseQuadrangle() [1/2]

template<class Real >
ROL::SmoothedWorstCaseQuadrangle< Real >::SmoothedWorstCaseQuadrangle ( const Real  eps)
inline

Constructor.

Parameters
[in]epsis the regularization parameter

Definition at line 105 of file ROL_SmoothedWorstCaseQuadrangle.hpp.

References ROL::SmoothedWorstCaseQuadrangle< Real >::checkInputs().

◆ SmoothedWorstCaseQuadrangle() [2/2]

template<class Real >
ROL::SmoothedWorstCaseQuadrangle< Real >::SmoothedWorstCaseQuadrangle ( Teuchos::ParameterList &  parlist)
inline

Constructor.

Parameters
[in]parlistis a parameter list specifying inputs

parlist should contain sublists "SOL"->"Risk Measure"->"Smoothed Worst-Case Quadrangle" and within the "Smoothed Worst-Case Quadrangle" sublist should have the following parameters

  • "Smoothing Parameter" (must be positive).

Definition at line 118 of file ROL_SmoothedWorstCaseQuadrangle.hpp.

References ROL::SmoothedWorstCaseQuadrangle< Real >::checkInputs(), and ROL::SmoothedWorstCaseQuadrangle< Real >::eps_.

Member Function Documentation

◆ checkInputs()

template<class Real >
void ROL::SmoothedWorstCaseQuadrangle< Real >::checkInputs ( void  ) const
inlineprivate

◆ error()

template<class Real >
Real ROL::SmoothedWorstCaseQuadrangle< Real >::error ( Real  x,
int  deriv = 0 
)
inline

◆ regret()

template<class Real >
Real ROL::SmoothedWorstCaseQuadrangle< Real >::regret ( Real  x,
int  deriv = 0 
)
inlinevirtual

Evaluate the scalar regret function at x.

Parameters
[in]xis the scalar input
[in]derivis the derivative order

This function returns \(v(x)\) or a derivative of \(v(x)\).

Implements ROL::ExpectationQuad< Real >.

Definition at line 139 of file ROL_SmoothedWorstCaseQuadrangle.hpp.

References ROL::SmoothedWorstCaseQuadrangle< Real >::error().

Referenced by ROL::SmoothedWorstCaseQuadrangle< Real >::checkRegret().

◆ checkRegret()

template<class Real >
void ROL::SmoothedWorstCaseQuadrangle< Real >::checkRegret ( void  )
inlinevirtual

Member Data Documentation

◆ eps_

template<class Real >
Real ROL::SmoothedWorstCaseQuadrangle< Real >::eps_
private

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