Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ExplicitModelCheckerHint.h
Go to the documentation of this file.
1#ifndef STORM_MODELCHECKER_HINTS_EXPLICITMODELCHECKERHINT_H
2#define STORM_MODELCHECKER_HINTS_EXPLICITMODELCHECKERHINT_H
3
4#include <boost/optional.hpp>
5#include <vector>
6
9
10namespace storm {
11namespace modelchecker {
12
17template<typename ValueType>
19 public:
23
24 // Returns true iff this hint does not contain any information
25 virtual bool isEmpty() const override;
26
27 // Returns true iff this is an explicit model checker hint
28 virtual bool isExplicitModelCheckerHint() const override;
29
30 bool hasResultHint() const;
31 std::vector<ValueType> const& getResultHint() const;
32 std::vector<ValueType>& getResultHint();
33 void setResultHint(boost::optional<std::vector<ValueType>> const& resultHint);
34 void setResultHint(boost::optional<std::vector<ValueType>>&& resultHint);
35
36 // Set whether only the maybestates need to be computed, i.e., skips the qualitative check.
37 // The result for non-maybe states is taken from the result hint.
38 // Hence, this option may only be enabled iff a resultHint and a set of maybestates are given.
39 bool getComputeOnlyMaybeStates() const;
40 void setComputeOnlyMaybeStates(bool value);
41 bool hasMaybeStates() const;
44 void setMaybeStates(storm::storage::BitVector const& maybeStates);
45 void setMaybeStates(storm::storage::BitVector&& maybeStates);
46
47 bool hasSchedulerHint() const;
50 void setSchedulerHint(boost::optional<storage::Scheduler<ValueType>> const& schedulerHint);
51 void setSchedulerHint(boost::optional<storage::Scheduler<ValueType>>&& schedulerHint);
52
53 // If set, it is assumed that there are no end components that consist only of maybestates.
54 // May only be enabled iff maybestates are given.
56 void setNoEndComponentsInMaybeStates(bool value);
57
58 private:
59 boost::optional<std::vector<ValueType>> resultHint;
60 boost::optional<storm::storage::Scheduler<ValueType>> schedulerHint;
61
62 bool computeOnlyMaybeStates;
63 boost::optional<storm::storage::BitVector> maybeStates;
64 bool noEndComponentsInMaybeStates;
65};
66
67} // namespace modelchecker
68} // namespace storm
69
70#endif /* STORM_MODELCHECKER_HINTS_EXPLICITMODELCHECKERHINT_H */
This class contains information that might accelerate the model checking process.
ExplicitModelCheckerHint(ExplicitModelCheckerHint< ValueType > &&other)=default
void setSchedulerHint(boost::optional< storage::Scheduler< ValueType > > const &schedulerHint)
void setResultHint(boost::optional< std::vector< ValueType > > const &resultHint)
storm::storage::Scheduler< ValueType > const & getSchedulerHint() const
storm::storage::BitVector const & getMaybeStates() const
ExplicitModelCheckerHint(ExplicitModelCheckerHint< ValueType > const &other)=default
void setMaybeStates(storm::storage::BitVector const &maybeStates)
std::vector< ValueType > const & getResultHint() const
void setSchedulerHint(boost::optional< storage::Scheduler< ValueType > > &&schedulerHint)
This class contains information that might accelerate the model checking process.
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
This class defines which action is chosen in a particular state of a non-deterministic model.
Definition Scheduler.h:18
LabParser.cpp.
Definition cli.cpp:18