|
Storm 1.14.0.1
A Modern Probabilistic Model Checker
|
Helper Class that takes a weight vector and ... More...
#include <PcaaWeightVectorChecker.h>
Public Types | |
| typedef ModelType::ValueType | ValueType |
Public Member Functions | |
| PcaaWeightVectorChecker (std::vector< Objective< ValueType > > const &objectives) | |
| virtual | ~PcaaWeightVectorChecker ()=default |
| virtual void | check (Environment const &env, std::vector< ValueType > weightVector)=0 |
| Solves the Weighted Sum Optimization Problem for the given weight vector. | |
| virtual std::vector< ValueType > | getAchievablePoint () const =0 |
| Retrieves the result of the individual objectives at the initial state of the given model. | |
| virtual ValueType | getOptimalWeightedSum () const =0 |
| Retrieves the optimal weighted sum of the objective values (or an upper bound thereof). | |
| virtual storm::storage::Scheduler< ValueType > | computeScheduler () const |
| Retrieves a scheduler that induces the current values (if such a scheduler was generated). | |
| void | setWeightedPrecision (ValueType const &value) |
| Sets the precision of this weight vector checker. | |
| ValueType const & | getWeightedPrecision () const |
| Returns the current precision of this weight vector checker as specified by setWeightedPrecision(). | |
| virtual bool | smallPrecisionsAreChallenging () const |
| Returns whether achieving precise values (i.e. | |
Protected Member Functions | |
| boost::optional< ValueType > | computeWeightedResultBound (bool lower, std::vector< ValueType > const &weightVector, storm::storage::BitVector const &objectiveFilter) const |
| Computes the weighted lower or upper bounds for the provided set of objectives. | |
Protected Attributes | |
| std::vector< Objective< ValueType > > | objectives |
Helper Class that takes a weight vector and ...
Definition at line 25 of file PcaaWeightVectorChecker.h.
| typedef ModelType::ValueType storm::modelchecker::multiobjective::PcaaWeightVectorChecker< ModelType >::ValueType |
Definition at line 27 of file PcaaWeightVectorChecker.h.
| storm::modelchecker::multiobjective::PcaaWeightVectorChecker< ModelType >::PcaaWeightVectorChecker | ( | std::vector< Objective< ValueType > > const & | objectives | ) |
Definition at line 15 of file PcaaWeightVectorChecker.cpp.
|
virtualdefault |
|
pure virtual |
Solves the Weighted Sum Optimization Problem for the given weight vector.
setWeightedPrecision(..) can be used to control the accuracy of the results. After calling this, getAchievablePoint(), getOptimalWeightedSum(), and computeScheduler() can be invoked to retrieve the result of this call.
| env | |
| weightVector | the weight vector of the current check. There must be at least one non-zero entry. |
Implemented in storm::modelchecker::multiobjective::RewardBoundedMdpPcaaWeightVectorChecker< SparseMdpModelType >, storm::modelchecker::multiobjective::StandardPcaaWeightVectorChecker< SparseModelType >, and storm::modelchecker::multiobjective::StandardPcaaWeightVectorChecker< SparseMaModelType >.
|
virtual |
Retrieves a scheduler that induces the current values (if such a scheduler was generated).
Note that check(..) has to be called before retrieving the scheduler. Otherwise, an exception is thrown.
Reimplemented in storm::modelchecker::multiobjective::StandardPcaaWeightVectorChecker< SparseModelType >, storm::modelchecker::multiobjective::StandardPcaaWeightVectorChecker< SparseMaModelType >, and storm::modelchecker::multiobjective::StandardPcaaWeightVectorChecker< SparseMdpModelType >.
Definition at line 36 of file PcaaWeightVectorChecker.cpp.
|
protected |
Computes the weighted lower or upper bounds for the provided set of objectives.
| lower | if true, lower result bounds are computed. otherwise upper result bounds |
| weightVector | the weight vector of the current check |
Definition at line 41 of file PcaaWeightVectorChecker.cpp.
|
pure virtual |
Retrieves the result of the individual objectives at the initial state of the given model.
Implemented in storm::modelchecker::multiobjective::RewardBoundedMdpPcaaWeightVectorChecker< SparseMdpModelType >, storm::modelchecker::multiobjective::StandardPcaaWeightVectorChecker< SparseModelType >, storm::modelchecker::multiobjective::StandardPcaaWeightVectorChecker< SparseMaModelType >, and storm::modelchecker::multiobjective::StandardPcaaWeightVectorChecker< SparseMdpModelType >.
|
pure virtual |
Retrieves the optimal weighted sum of the objective values (or an upper bound thereof).
Implemented in storm::modelchecker::multiobjective::RewardBoundedMdpPcaaWeightVectorChecker< SparseMdpModelType >, storm::modelchecker::multiobjective::StandardPcaaWeightVectorChecker< SparseModelType >, storm::modelchecker::multiobjective::StandardPcaaWeightVectorChecker< SparseMaModelType >, and storm::modelchecker::multiobjective::StandardPcaaWeightVectorChecker< SparseMdpModelType >.
| PcaaWeightVectorChecker< ModelType >::ValueType const & storm::modelchecker::multiobjective::PcaaWeightVectorChecker< ModelType >::getWeightedPrecision | ( | ) | const |
Returns the current precision of this weight vector checker as specified by setWeightedPrecision().
Definition at line 25 of file PcaaWeightVectorChecker.cpp.
| void storm::modelchecker::multiobjective::PcaaWeightVectorChecker< ModelType >::setWeightedPrecision | ( | ValueType const & | value | ) |
Sets the precision of this weight vector checker.
After calling check() (with env.solver() set to sound or exact mode) the Euclidean distance between (*) the found achievable point (with values for minimizing objectives negated) and (*) the hyperplane with the given weightVector as normal vector and the found optimal weighted sum as offset is at most the given weightedPrecision.
Definition at line 20 of file PcaaWeightVectorChecker.cpp.
|
virtual |
Returns whether achieving precise values (i.e.
low weighted precisions) might be challenging due to the type of objectives. Currently, only time-bounded Markov automaton objectives are considered challenging. This information is used to guide approximation heuristics, e.g. the choice of the approximation tradeoff in Pareto curve exploration.
Reimplemented in storm::modelchecker::multiobjective::StandardMaPcaaWeightVectorChecker< SparseMaModelType >.
Definition at line 31 of file PcaaWeightVectorChecker.cpp.
|
protected |
Definition at line 110 of file PcaaWeightVectorChecker.h.