Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SparseMultiObjectiveRewardAnalysis.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <string>
5
10
11namespace storm {
12
13namespace modelchecker {
14namespace multiobjective {
15namespace preprocessing {
16
18 AllFinite, // The expected reward is finite for all objectives and all schedulers
19 ExistsParetoFinite, // There is a Pareto optimal scheduler yielding finite rewards for all objectives
20 Infinite // All Pareto optimal schedulers yield infinite reward for at least one objective
21};
22
23/*
24 * This class performs some analysis task regarding the occurring expected reward objectives
25 */
26template<class SparseModelType>
28 public:
29 typedef typename SparseModelType::ValueType ValueType;
30 typedef typename SparseModelType::RewardModelType RewardModelType;
31
32 struct ReturnType {
34
35 // The states of the preprocessed model for which...
36 storm::storage::BitVector totalReward0EStates; // ... there is a scheduler such that all expected total reward objectives have value zero
37 storm::storage::BitVector reward0AStates; // ... all schedulers induce value 0 for all reward-based objectives
38 boost::optional<storm::storage::BitVector>
39 totalRewardLessInfinityEStates; // ... there is a scheduler yielding finite reward for all expected total reward objectives
40 };
41
46 static ReturnType analyze(
48
52 static void computeUpperResultBound(SparseModelType const& model, storm::modelchecker::multiobjective::Objective<ValueType>& objective,
53 storm::storage::SparseMatrix<ValueType> const& backwardTransitions);
54
55 private:
59 static void setReward0States(
60 ReturnType& result,
62 storm::storage::SparseMatrix<ValueType> const& backwardTransitions);
63
68 static void checkRewardFiniteness(
69 ReturnType& result,
71 storm::storage::SparseMatrix<ValueType> const& backwardTransitions);
72};
73
74} // namespace preprocessing
75} // namespace multiobjective
76} // namespace modelchecker
77} // namespace storm
static ReturnType analyze(storm::modelchecker::multiobjective::preprocessing::SparseMultiObjectivePreprocessorResult< SparseModelType > const &preprocessorResult)
Analyzes the reward objectives of the multi objective query.
static void computeUpperResultBound(SparseModelType const &model, storm::modelchecker::multiobjective::Objective< ValueType > &objective, storm::storage::SparseMatrix< ValueType > const &backwardTransitions)
Tries to finds an upper bound for the expected reward of the objective (assuming it considers an expe...
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
A class that holds a possibly non-square matrix in the compressed row storage format.
LabParser.cpp.
Definition cli.cpp:18