|
ROL
|
Provides an interface for the mean plus upper semideviation of order 1. More...
#include <ROL_MeanSemiDeviation.hpp>
Public Member Functions | |
| MeanSemiDeviation (const Real coeff, const Ptr< PlusFunction< Real > > &pf) | |
| Constructor. | |
| MeanSemiDeviation (ROL::ParameterList &parlist) | |
| Constructor. | |
| void | setStorage (const Ptr< ScalarController< Real > > &value_storage, const Ptr< VectorController< Real > > &gradient_storage) |
| void | setHessVecStorage (const Ptr< ScalarController< Real > > &gradvec_storage, const Ptr< VectorController< Real > > &hessvec_storage) |
| 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 Member Functions | |
| void | initializeStorage (void) |
| void | clear (void) |
| void | checkInputs (void) |
Private Attributes | |
| Ptr< PlusFunction< Real > > | plusFunction_ |
| Real | coeff_ |
| Ptr< ScalarController< Real > > | values_ |
| Ptr< ScalarController< Real > > | gradvecs_ |
| Ptr< VectorController< Real > > | gradients_ |
| Ptr< VectorController< Real > > | hessvecs_ |
Provides an interface for the mean plus upper semideviation of order 1.
Provides an interface for the mean plus upper semideviation from target of order 1.
The mean plus upper semideviation of order 1 with constant \(0 < c < 1\) is
\[ \mathcal{R}(X) = \mathbb{E}[X] + c \mathbb{E}\left[(X-\mathbb{E}[X])_+\right] \right\} \]
where \((x)_+ = \max\{0,x\}\). \(\mathcal{R}\) is a law-invariant coherent risk measure.
When using derivative-based optimization, the user can provide a smooth approximation of \((\cdot)_+\) using the ROL::PlusFunction class.
The mean plus upper semideviation from target of order 1 with constant \(0 < c < 1\) and target \(t\in\mathbb{R}\) is
\[ \mathcal{R}(X) = \mathbb{E}[X] + c \mathbb{E}\left[(X-t)_+\right] \right\} \]
where \((x)_+ = \max\{0,x\}\). \(\mathcal{R}\) is a law-invariant risk measure.
When using derivative-based optimization, the user can provide a smooth approximation of \((\cdot)_+\) using the ROL::PlusFunction class.
Definition at line 72 of file ROL_MeanSemiDeviation.hpp.
|
inline |
Constructor.
| [in] | coeff | is the coefficient scaling the semideviation |
| [in] | pf | is the plus function or an approximation |
Definition at line 127 of file ROL_MeanSemiDeviation.hpp.
References checkInputs(), coeff_, and plusFunction_.
|
inline |
Constructor.
| [in] | parlist | is a parameter list specifying inputs |
parlist should contain sublists "SOL"->"Risk Measure"->"Mean Plus Semi-Deviation" and within the "Mean Plus Semi-Deviation" sublist should have the following parameters
Definition at line 141 of file ROL_MeanSemiDeviation.hpp.
References checkInputs(), coeff_, and plusFunction_.
|
inlineprivate |
Definition at line 96 of file ROL_MeanSemiDeviation.hpp.
References gradients_, gradvecs_, hessvecs_, and values_.
Referenced by checkInputs().
|
inlineprivate |
Definition at line 106 of file ROL_MeanSemiDeviation.hpp.
References gradvecs_, and hessvecs_.
Referenced by initialize().
|
inlineprivate |
Definition at line 111 of file ROL_MeanSemiDeviation.hpp.
References coeff_, initializeStorage(), plusFunction_, and zero.
Referenced by MeanSemiDeviation(), and MeanSemiDeviation().
|
inline |
Definition at line 153 of file ROL_MeanSemiDeviation.hpp.
References gradients_, and values_.
|
inline |
Definition at line 160 of file ROL_MeanSemiDeviation.hpp.
|
inline |
Definition at line 167 of file ROL_MeanSemiDeviation.hpp.
References clear().
|
inline |
Definition at line 172 of file ROL_MeanSemiDeviation.hpp.
|
inline |
Definition at line 180 of file ROL_MeanSemiDeviation.hpp.
References coeff_, ROL::SampleGenerator< Real >::getMyPoint(), ROL::SampleGenerator< Real >::getMyWeight(), ROL::SampleGenerator< Real >::numMySamples(), plusFunction_, ROL::SampleGenerator< Real >::start(), ROL::SampleGenerator< Real >::sumAll(), and values_.
|
inline |
Definition at line 199 of file ROL_MeanSemiDeviation.hpp.
|
inline |
Definition at line 208 of file ROL_MeanSemiDeviation.hpp.
References coeff_, ROL::SampleGenerator< Real >::getMyPoint(), ROL::SampleGenerator< Real >::getMyWeight(), gradients_, ROL::SampleGenerator< Real >::numMySamples(), plusFunction_, ROL::SampleGenerator< Real >::start(), ROL::SampleGenerator< Real >::sumAll(), and values_.
|
inline |
Definition at line 239 of file ROL_MeanSemiDeviation.hpp.
|
inline |
Definition at line 252 of file ROL_MeanSemiDeviation.hpp.
References coeff_, ROL::SampleGenerator< Real >::getMyPoint(), ROL::SampleGenerator< Real >::getMyWeight(), gradients_, gradvecs_, hessvecs_, ROL::SampleGenerator< Real >::numMySamples(), plusFunction_, ROL::SampleGenerator< Real >::start(), ROL::SampleGenerator< Real >::sumAll(), and values_.
|
private |
Definition at line 74 of file ROL_MeanSemiDeviation.hpp.
Referenced by checkInputs(), getGradient(), getHessVec(), getValue(), MeanSemiDeviation(), and MeanSemiDeviation().
|
private |
Definition at line 75 of file ROL_MeanSemiDeviation.hpp.
Referenced by checkInputs(), getGradient(), getHessVec(), getValue(), MeanSemiDeviation(), and MeanSemiDeviation().
|
private |
Definition at line 77 of file ROL_MeanSemiDeviation.hpp.
Referenced by getGradient(), getHessVec(), getValue(), initializeStorage(), and setStorage().
|
private |
Definition at line 78 of file ROL_MeanSemiDeviation.hpp.
Referenced by clear(), getHessVec(), initializeStorage(), and setHessVecStorage().
|
private |
Definition at line 79 of file ROL_MeanSemiDeviation.hpp.
Referenced by getGradient(), getHessVec(), initializeStorage(), and setStorage().
|
private |
Definition at line 80 of file ROL_MeanSemiDeviation.hpp.
Referenced by clear(), getHessVec(), initializeStorage(), and setHessVecStorage().