|
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] \]
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] \]
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 37 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 92 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 106 of file ROL_MeanSemiDeviation.hpp.
References checkInputs(), coeff_, and plusFunction_.
|
inlineprivate |
Definition at line 61 of file ROL_MeanSemiDeviation.hpp.
References gradients_, gradvecs_, hessvecs_, and values_.
Referenced by checkInputs().
|
inlineprivate |
Definition at line 71 of file ROL_MeanSemiDeviation.hpp.
References gradvecs_, and hessvecs_.
Referenced by initialize().
|
inlineprivate |
Definition at line 76 of file ROL_MeanSemiDeviation.hpp.
References coeff_, initializeStorage(), plusFunction_, and zero.
Referenced by MeanSemiDeviation(), and MeanSemiDeviation().
|
inline |
Definition at line 118 of file ROL_MeanSemiDeviation.hpp.
References gradients_, and values_.
|
inline |
Definition at line 125 of file ROL_MeanSemiDeviation.hpp.
|
inline |
Definition at line 132 of file ROL_MeanSemiDeviation.hpp.
References clear().
|
inline |
Definition at line 137 of file ROL_MeanSemiDeviation.hpp.
|
inline |
Definition at line 145 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 164 of file ROL_MeanSemiDeviation.hpp.
|
inline |
Definition at line 173 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 204 of file ROL_MeanSemiDeviation.hpp.
|
inline |
Definition at line 217 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 39 of file ROL_MeanSemiDeviation.hpp.
Referenced by checkInputs(), getGradient(), getHessVec(), getValue(), MeanSemiDeviation(), and MeanSemiDeviation().
|
private |
Definition at line 40 of file ROL_MeanSemiDeviation.hpp.
Referenced by checkInputs(), getGradient(), getHessVec(), getValue(), MeanSemiDeviation(), and MeanSemiDeviation().
|
private |
Definition at line 42 of file ROL_MeanSemiDeviation.hpp.
Referenced by getGradient(), getHessVec(), getValue(), initializeStorage(), and setStorage().
|
private |
Definition at line 43 of file ROL_MeanSemiDeviation.hpp.
Referenced by clear(), getHessVec(), initializeStorage(), and setHessVecStorage().
|
private |
Definition at line 44 of file ROL_MeanSemiDeviation.hpp.
Referenced by getGradient(), getHessVec(), initializeStorage(), and setStorage().
|
private |
Definition at line 45 of file ROL_MeanSemiDeviation.hpp.
Referenced by clear(), getHessVec(), initializeStorage(), and setHessVecStorage().