Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
DeterministicSchedsObjectiveHelper.h
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4#include <optional>
5
8
9namespace storm {
10
11namespace storage {
12template<typename ValueType>
13class MaximalEndComponentDecomposition;
14}
15
16class Environment;
17
18namespace modelchecker::multiobjective {
19
20template<typename ModelType>
22 public:
23 typedef typename ModelType::ValueType ValueType;
24 DeterministicSchedsObjectiveHelper(ModelType const& model, Objective<ValueType> const& objective);
25
30
35
42
49
54 std::map<uint64_t, ValueType> const& getChoiceRewards() const;
55
61
62 ValueType const& getUpperValueBoundAtState(uint64_t state) const;
63 ValueType const& getLowerValueBoundAtState(uint64_t state) const;
64
66
67 InfinityCase const& getInfinityCase() const;
68
69 bool minimizing() const;
70
71 void computeLowerUpperBounds(Environment const& env) const;
72
76 bool isTotalRewardObjective() const;
77
81 bool hasThreshold() const;
82
86 ValueType getThreshold() const;
87
92 ValueType evaluateScheduler(Environment const& env, storm::storage::BitVector const& selectedChoices) const;
93
94 private:
95 void initialize();
96
97 storm::storage::BitVector maybeStates; // S_?^j
98 storm::storage::BitVector rewMinusInfEStates; // S_{-infty}^j
99 std::optional<ValueType> constantInitialStateValue;
100 storm::storage::BitVector relevantZeroRewardChoices;
101 std::map<uint64_t, ValueType> choiceRewards;
102 InfinityCase infinityCase;
103
104 // Computed on demand:
105 mutable std::optional<std::vector<ValueType>> lowerResultBounds;
106 mutable std::optional<std::vector<ValueType>> upperResultBounds;
107
108 ModelType const& model;
109 Objective<ValueType> const& objective;
110};
111} // namespace modelchecker::multiobjective
112} // namespace storm
storm::storage::BitVector const & getRelevantZeroRewardChoices() const
Returns the choices that (i) originate from a maybestate and (ii) have zero value.
bool hasThreshold() const
Returns true, if this objective specifies a threshold.
storm::storage::BitVector const & getRewMinusInfEStates() const
Returns the set of states for which value -inf is possible.
storm::storage::BitVector const & getMaybeStates() const
Returns those states for which the scheduler potentially influences the value.
ValueType evaluateScheduler(Environment const &env, storm::storage::BitVector const &selectedChoices) const
Computes the value at the initial state under the given scheduler.
ValueType getConstantInitialStateValue() const
If hasConstantInitialStateValue is true, this returns that constant value.
bool isTotalRewardObjective() const
Returns true if this is a total reward objective.
bool hasConstantInitialStateValue() const
Returns true iff the value at the (unique) initial state is a constant (that is independent of the sc...
std::map< uint64_t, ValueType > const & getChoiceRewards() const
Returns the choice rewards if non-zero.
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
LabParser.cpp.
Definition cli.cpp:18