|
ROL
|
Provides an interface for the mean plus a sum of arbitrary order deviations. More...
#include <ROL_MeanDeviation.hpp>
Public Member Functions | |
| MeanDeviation (const Real order, const Real coeff, const Ptr< PositiveFunction< Real > > &pf) | |
| Constructor. | |
| MeanDeviation (const std::vector< Real > &order, const std::vector< Real > &coeff, const Ptr< PositiveFunction< Real > > &pf) | |
| Constructor. | |
| MeanDeviation (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) |
| void | updateGradient (Objective< Real > &obj, const Vector< Real > &x, const std::vector< Real > &xstat, Real &tol) |
| 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) |
| Real | getValue (const Vector< Real > &x, const std::vector< Real > &xstat, SampleGenerator< Real > &sampler) |
| void | getGradient (Vector< Real > &g, std::vector< Real > &gstat, const Vector< Real > &x, const std::vector< Real > &xstat, SampleGenerator< Real > &sampler) |
| 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 Types | |
| typedef std::vector< Real >::size_type | uint |
Private Member Functions | |
| void | initializeStorage (void) |
| void | clear (void) |
| void | checkInputs (void) |
Private Attributes | |
| Ptr< PositiveFunction< Real > > | positiveFunction_ |
| std::vector< Real > | order_ |
| std::vector< Real > | coeff_ |
| uint | NumMoments_ |
| std::vector< Real > | dev0_ |
| std::vector< Real > | dev1_ |
| std::vector< Real > | dev2_ |
| std::vector< Real > | dev3_ |
| std::vector< Real > | des0_ |
| std::vector< Real > | des1_ |
| std::vector< Real > | des2_ |
| std::vector< Real > | des3_ |
| std::vector< Real > | devp_ |
| std::vector< Real > | gvp1_ |
| std::vector< Real > | gvp2_ |
| std::vector< Real > | gvp3_ |
| std::vector< Real > | gvs1_ |
| std::vector< Real > | gvs2_ |
| std::vector< Real > | gvs3_ |
| Ptr< ScalarController< Real > > | values_ |
| Ptr< ScalarController< Real > > | gradvecs_ |
| Ptr< VectorController< Real > > | gradients_ |
| Ptr< VectorController< Real > > | hessvecs_ |
Provides an interface for the mean plus a sum of arbitrary order deviations.
The mean plus deviations risk measure is
\[ \mathcal{R}(X) = \mathbb{E}[X] + \sum_{k=1}^n c_k \mathbb{E}[\wp(X-\mathbb{E}[X])^{p_k}]^{1/p_k} \]
where \(\wp:\mathbb{R}\to[0,\infty)\) is either the absolute value or \((x)_+ = \max\{0,x\}\), \(c_k > 0\) and \(p_k\in\mathbb{N}\). In general, \(\mathcal{R}\) is law-invariant, but not coherent. In the specific case that \(\wp(x) = (x)_+\) and \(c_k\in[0,1]\), \(\mathcal{R}\) is coherent. On the other hand, the common mean-plus-standard-deviation risk measure (i.e., \(\wp(x) = |x|\), \(n=1\) and \(p_1 = 2\)) is not coherent since it violates monotonicity.
When using derivative-based optimization, the user can provide a smooth approximation of \((\cdot)_+\) using the ROL::PositiveFunction class.
Definition at line 46 of file ROL_MeanDeviation.hpp.
|
private |
Definition at line 47 of file ROL_MeanDeviation.hpp.
|
inline |
Constructor.
| [in] | order | is the deviation order |
| [in] | coeff | is the weight for deviation term |
| [in] | pf | is the plus function or an approximation |
This constructor produces a mean plus deviation risk measure with a single deviation.
Definition at line 159 of file ROL_MeanDeviation.hpp.
References checkInputs(), coeff_, order_, and positiveFunction_.
|
inline |
Constructor.
| [in] | order | is a vector of deviation orders |
| [in] | coeff | is a vector of weights for the deviation terms |
| [in] | pf | is the plus function or an approximation |
This constructor produces a mean plus deviation risk measure with an arbitrary number of deviations.
Definition at line 176 of file ROL_MeanDeviation.hpp.
References checkInputs(), coeff_, order_, and positiveFunction_.
|
inline |
Constructor.
| [in] | parlist | is a parameter list specifying inputs |
parlist should contain sublists "SOL"->"Risk Measure"->"Mean Plus Deviation" and within the "Mean Plus Deviation" sublist should have the following parameters
Definition at line 201 of file ROL_MeanDeviation.hpp.
References checkInputs(), coeff_, order_, and positiveFunction_.
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
Definition at line 133 of file ROL_MeanDeviation.hpp.
References coeff_, initializeStorage(), order_, positiveFunction_, and zero.
Referenced by MeanDeviation(), MeanDeviation(), and MeanDeviation().
|
inline |
Definition at line 227 of file ROL_MeanDeviation.hpp.
References gradients_, and values_.
|
inline |
Definition at line 234 of file ROL_MeanDeviation.hpp.
|
inline |
Definition at line 241 of file ROL_MeanDeviation.hpp.
References clear().
|
inline |
Definition at line 246 of file ROL_MeanDeviation.hpp.
|
inline |
Definition at line 254 of file ROL_MeanDeviation.hpp.
|
inline |
Definition at line 264 of file ROL_MeanDeviation.hpp.
|
inline |
Definition at line 279 of file ROL_MeanDeviation.hpp.
References coeff_, des0_, dev0_, ROL::SampleGenerator< Real >::getMyPoint(), ROL::SampleGenerator< Real >::getMyWeight(), NumMoments_, ROL::SampleGenerator< Real >::numMySamples(), order_, positiveFunction_, ROL::SampleGenerator< Real >::start(), ROL::SampleGenerator< Real >::sumAll(), and values_.
|
inline |
Definition at line 304 of file ROL_MeanDeviation.hpp.
References coeff_, des0_, des1_, dev0_, dev1_, ROL::SampleGenerator< Real >::getMyPoint(), ROL::SampleGenerator< Real >::getMyWeight(), gradients_, NumMoments_, ROL::SampleGenerator< Real >::numMySamples(), order_, positiveFunction_, ROL::SampleGenerator< Real >::start(), ROL::SampleGenerator< Real >::sumAll(), values_, and zero.
|
inline |
Definition at line 350 of file ROL_MeanDeviation.hpp.
References coeff_, des0_, des1_, des2_, des3_, dev0_, dev1_, dev2_, dev3_, devp_, ROL::SampleGenerator< Real >::getMyPoint(), ROL::SampleGenerator< Real >::getMyWeight(), gradients_, gradvecs_, gvp1_, gvp2_, gvp3_, gvs1_, gvs2_, gvs3_, hessvecs_, NumMoments_, ROL::SampleGenerator< Real >::numMySamples(), order_, positiveFunction_, ROL::SampleGenerator< Real >::start(), ROL::SampleGenerator< Real >::sumAll(), values_, and zero.
|
private |
Definition at line 49 of file ROL_MeanDeviation.hpp.
Referenced by checkInputs(), getGradient(), getHessVec(), getValue(), MeanDeviation(), MeanDeviation(), and MeanDeviation().
|
private |
Definition at line 50 of file ROL_MeanDeviation.hpp.
Referenced by checkInputs(), getGradient(), getHessVec(), getValue(), initializeStorage(), MeanDeviation(), MeanDeviation(), and MeanDeviation().
|
private |
Definition at line 51 of file ROL_MeanDeviation.hpp.
Referenced by checkInputs(), getGradient(), getHessVec(), getValue(), MeanDeviation(), MeanDeviation(), and MeanDeviation().
|
private |
Definition at line 52 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getGradient(), getHessVec(), getValue(), and initializeStorage().
|
private |
Definition at line 54 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getGradient(), getHessVec(), getValue(), and initializeStorage().
|
private |
Definition at line 55 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getGradient(), getHessVec(), and initializeStorage().
|
private |
Definition at line 56 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getHessVec(), and initializeStorage().
|
private |
Definition at line 57 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getHessVec(), and initializeStorage().
|
private |
Definition at line 58 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getGradient(), getHessVec(), getValue(), and initializeStorage().
|
private |
Definition at line 59 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getGradient(), getHessVec(), and initializeStorage().
|
private |
Definition at line 60 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getHessVec(), and initializeStorage().
|
private |
Definition at line 61 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getHessVec(), and initializeStorage().
|
private |
Definition at line 62 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getHessVec(), and initializeStorage().
|
private |
Definition at line 63 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getHessVec(), and initializeStorage().
|
private |
Definition at line 64 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getHessVec(), and initializeStorage().
|
private |
Definition at line 65 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getHessVec(), and initializeStorage().
|
private |
Definition at line 66 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getHessVec(), and initializeStorage().
|
private |
Definition at line 67 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getHessVec(), and initializeStorage().
|
private |
Definition at line 68 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getHessVec(), and initializeStorage().
|
private |
Definition at line 70 of file ROL_MeanDeviation.hpp.
Referenced by getGradient(), getHessVec(), getValue(), initializeStorage(), and setStorage().
|
private |
Definition at line 71 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getHessVec(), initializeStorage(), and setHessVecStorage().
|
private |
Definition at line 72 of file ROL_MeanDeviation.hpp.
Referenced by getGradient(), getHessVec(), initializeStorage(), and setStorage().
|
private |
Definition at line 73 of file ROL_MeanDeviation.hpp.
Referenced by clear(), getHessVec(), initializeStorage(), and setHessVecStorage().