Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
LocalMonotonicityResult.h
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4
7
8namespace storm {
9namespace analysis {
10template<typename VariableType>
12 public:
14
21 LocalMonotonicityResult(uint_fast64_t numberOfStates);
22
23 LocalMonotonicityResult(std::shared_ptr<MonotonicityResult<VariableType>> globalResult, uint_fast64_t numberOfStates);
24
32 Monotonicity getMonotonicity(uint_fast64_t state, VariableType var) const;
33 std::shared_ptr<MonotonicityResult<VariableType>> getMonotonicity(uint_fast64_t state) const;
34
42 void setMonotonicity(uint_fast64_t state, VariableType var, Monotonicity mon);
43
49 std::shared_ptr<MonotonicityResult<VariableType>> getGlobalMonotonicityResult() const;
50
56 std::shared_ptr<LocalMonotonicityResult<VariableType>> copy();
57
63 bool isDone() const;
64 void setDone(bool done = true);
65
66 bool isNoMonotonicity() const;
67
68 void setConstant(uint_fast64_t state);
69
70 void setIndexMinimize(int index);
71 void setIndexMaximize(int index);
72 int getIndexMinimize() const;
73 int getIndexMaximize() const;
74
79 std::string toString() const;
80
81 void setMonotoneIncreasing(VariableType var);
82 void setMonotoneDecreasing(VariableType var);
83
84 bool isFixedParametersSet() const;
85
86 private:
87 std::vector<std::shared_ptr<MonotonicityResult<VariableType>>> stateMonRes;
88
89 std::shared_ptr<MonotonicityResult<VariableType>> globalMonotonicityResult;
90
91 void setMonotonicityResult(uint_fast64_t state, std::shared_ptr<MonotonicityResult<VariableType>> monRes);
92
93 void setGlobalMonotonicityResult(std::shared_ptr<MonotonicityResult<VariableType>> monRes);
94
95 void setStatesMonotone(storm::storage::BitVector statesMonotone);
96
97 storm::storage::BitVector statesMonotone;
98 bool done;
99
100 int indexMinimize = -1;
101 int indexMaximize = -1;
102 std::shared_ptr<MonotonicityResult<VariableType>> dummyPointer;
103
104 bool setFixedParameters = false;
105};
106} // namespace analysis
107} // namespace storm
void setMonotonicity(uint_fast64_t state, VariableType var, Monotonicity mon)
Sets the local Monotonicity of a parameter at a given state.
MonotonicityResult< VariableType >::Monotonicity Monotonicity
std::shared_ptr< LocalMonotonicityResult< VariableType > > copy()
Constructs a new LocalMonotonicityResult object that is a copy of the current one.
bool isDone() const
Checks if the LocalMonotonicity is done yet.
std::shared_ptr< MonotonicityResult< VariableType > > getGlobalMonotonicityResult() const
Returns the Global MonotonicityResult object that corresponds to this object.
std::string toString() const
Constructs a string output of all variables and their corresponding Monotonicity.
Monotonicity getMonotonicity(uint_fast64_t state, VariableType var) const
Returns the local Monotonicity of a parameter at a given state.
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:16
MonotonicityKind
The results of monotonicity checking for a single Parameter Region.