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