|
ROL
|
Provides an interface for the mean plus a sum of arbitrary order variances. More...
#include <ROL_MeanVariance.hpp>
Public Member Functions | |
| MeanVariance (const Real order, const Real coeff, const Ptr< PositiveFunction< Real > > &pf) | |
| Constructor. | |
| MeanVariance (const std::vector< Real > &order, const std::vector< Real > &coeff, const Ptr< PositiveFunction< Real > > &pf) | |
| Constructor. | |
| MeanVariance (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 | 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 Types | |
| typedef std::vector< Real >::size_type | uint |
Private Member Functions | |
| void | initializeMV (void) |
| void | checkInputs (void) |
Private Attributes | |
| Ptr< PositiveFunction< Real > > | positiveFunction_ |
| std::vector< Real > | order_ |
| std::vector< Real > | coeff_ |
| uint | NumMoments_ |
| 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 variances.
The mean plus variances risk measure is
\[ \mathcal{R}(X) = \mathbb{E}[X] + \sum_{k=1}^n c_k \mathbb{E}[\wp(X-\mathbb{E}[X])^{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}\). \(\mathcal{R}\) is law-invariant, but not coherent since it violates positive homogeneity. When \(\wp(x) = |x|\), \(\mathcal{R}\) also violates monotonicity.
When using derivative-based optimization, the user can provide a smooth approximation of \((\cdot)_+\) using the ROL::PositiveFunction class.
Definition at line 44 of file ROL_MeanVariance.hpp.
|
private |
Definition at line 45 of file ROL_MeanVariance.hpp.
|
inline |
Constructor.
| [in] | order | is the variance order |
| [in] | coeff | is the weight for variance term |
| [in] | pf | is the plus function or an approximation |
This constructor produces a mean plus variance risk measure with a single variance.
Definition at line 107 of file ROL_MeanVariance.hpp.
References checkInputs(), coeff_, NumMoments_, order_, and positiveFunction_.
|
inline |
Constructor.
| [in] | order | is a vector of variance orders |
| [in] | coeff | is a vector of weights for the variance terms |
| [in] | pf | is the plus function or an approximation |
This constructor produces a mean plus variance risk measure with an arbitrary number of variances.
Definition at line 125 of file ROL_MeanVariance.hpp.
References checkInputs(), coeff_, NumMoments_, order_, and positiveFunction_.
|
inline |
Constructor.
| [in] | parlist | is a parameter list specifying inputs |
parlist should contain sublists "SOL"->"Risk Measure"->"Mean Plus Variance" and within the "Mean Plus Variance" sublist should have the following parameters
Definition at line 151 of file ROL_MeanVariance.hpp.
References checkInputs(), coeff_, NumMoments_, order_, and positiveFunction_.
|
inlineprivate |
Definition at line 71 of file ROL_MeanVariance.hpp.
References gradients_, gradvecs_, hessvecs_, and values_.
Referenced by checkInputs().
|
inlineprivate |
Definition at line 81 of file ROL_MeanVariance.hpp.
References coeff_, initializeMV(), order_, positiveFunction_, and zero.
Referenced by MeanVariance(), MeanVariance(), and MeanVariance().
|
inline |
Definition at line 175 of file ROL_MeanVariance.hpp.
References gradients_, and values_.
|
inline |
Definition at line 182 of file ROL_MeanVariance.hpp.
|
inline |
Definition at line 189 of file ROL_MeanVariance.hpp.
|
inline |
Definition at line 197 of file ROL_MeanVariance.hpp.
References coeff_, 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 219 of file ROL_MeanVariance.hpp.
|
inline |
Definition at line 229 of file ROL_MeanVariance.hpp.
References coeff_, ROL::SampleGenerator< Real >::getMyPoint(), ROL::SampleGenerator< Real >::getMyWeight(), gradients_, NumMoments_, ROL::SampleGenerator< Real >::numMySamples(), order_, ROL::Vector< Real >::plus(), positiveFunction_, ROL::Vector< Real >::scale(), ROL::SampleGenerator< Real >::start(), ROL::SampleGenerator< Real >::sumAll(), values_, and zero.
|
inline |
Definition at line 262 of file ROL_MeanVariance.hpp.
|
inline |
Definition at line 277 of file ROL_MeanVariance.hpp.
References ROL::Vector< Real >::axpy(), coeff_, ROL::SampleGenerator< Real >::getMyPoint(), ROL::SampleGenerator< Real >::getMyWeight(), gradients_, gradvecs_, hessvecs_, NumMoments_, ROL::SampleGenerator< Real >::numMySamples(), order_, ROL::Vector< Real >::plus(), positiveFunction_, ROL::Vector< Real >::scale(), ROL::SampleGenerator< Real >::start(), ROL::SampleGenerator< Real >::sumAll(), values_, and zero.
|
private |
Definition at line 47 of file ROL_MeanVariance.hpp.
Referenced by checkInputs(), getGradient(), getHessVec(), getValue(), MeanVariance(), MeanVariance(), and MeanVariance().
|
private |
Definition at line 48 of file ROL_MeanVariance.hpp.
Referenced by checkInputs(), getGradient(), getHessVec(), getValue(), MeanVariance(), MeanVariance(), and MeanVariance().
|
private |
Definition at line 49 of file ROL_MeanVariance.hpp.
Referenced by checkInputs(), getGradient(), getHessVec(), getValue(), MeanVariance(), MeanVariance(), and MeanVariance().
|
private |
Definition at line 50 of file ROL_MeanVariance.hpp.
Referenced by getGradient(), getHessVec(), getValue(), MeanVariance(), MeanVariance(), and MeanVariance().
|
private |
Definition at line 52 of file ROL_MeanVariance.hpp.
Referenced by getGradient(), getHessVec(), getValue(), initializeMV(), and setStorage().
|
private |
Definition at line 53 of file ROL_MeanVariance.hpp.
Referenced by getHessVec(), initializeMV(), and setHessVecStorage().
|
private |
Definition at line 54 of file ROL_MeanVariance.hpp.
Referenced by getGradient(), getHessVec(), initializeMV(), and setStorage().
|
private |
Definition at line 55 of file ROL_MeanVariance.hpp.
Referenced by getHessVec(), initializeMV(), and setHessVecStorage().