Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
NondeterministicModel.h
Go to the documentation of this file.
1#ifndef STORM_MODELS_SYMBOLIC_NONDETERMINISTICMODEL_H_
2#define STORM_MODELS_SYMBOLIC_NONDETERMINISTICMODEL_H_
3
6
7namespace storm {
8namespace models {
9namespace symbolic {
10
14template<storm::dd::DdType Type, typename ValueType = double>
15class NondeterministicModel : public Model<Type, ValueType> {
16 public:
18
21
22#ifndef WINDOWS
25#endif
26
45 NondeterministicModel(storm::models::ModelType const& modelType, std::shared_ptr<storm::dd::DdManager<Type>> manager, storm::dd::Bdd<Type> reachableStates,
47 std::set<storm::expressions::Variable> const& rowVariables,
48 std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
49 std::set<storm::expressions::Variable> const& columnVariables,
50 std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& rowColumnMetaVariablePairs,
51 std::set<storm::expressions::Variable> const& nondeterminismVariables,
52 std::map<std::string, storm::expressions::Expression> labelToExpressionMap = std::map<std::string, storm::expressions::Expression>(),
53 std::unordered_map<std::string, RewardModelType> const& rewardModels = std::unordered_map<std::string, RewardModelType>());
54
71 NondeterministicModel(storm::models::ModelType const& modelType, std::shared_ptr<storm::dd::DdManager<Type>> manager, storm::dd::Bdd<Type> reachableStates,
73 std::set<storm::expressions::Variable> const& rowVariables, std::set<storm::expressions::Variable> const& columnVariables,
74 std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& rowColumnMetaVariablePairs,
75 std::set<storm::expressions::Variable> const& nondeterminismVariables,
76 std::map<std::string, storm::dd::Bdd<Type>> labelToBddMap = std::map<std::string, storm::dd::Bdd<Type>>(),
77 std::unordered_map<std::string, RewardModelType> const& rewardModels = std::unordered_map<std::string, RewardModelType>());
78
84 virtual uint_fast64_t getNumberOfChoices() const override;
85
91 virtual std::set<storm::expressions::Variable> const& getNondeterminismVariables() const override;
92
99
106
114 virtual storm::dd::Bdd<Type> getQualitativeTransitionMatrix(bool keepNondeterminism = true) const override;
115
116 virtual void printModelInformationToStream(std::ostream& out) const override;
117
118 virtual void reduceToStateBasedRewards() override;
119
120 protected:
121 virtual void printDdVariableInformationToStream(std::ostream& out) const override;
122
123 // A mask that characterizes all illegal nondeterministic choices.
125
126 private:
127 void createIllegalMask();
128
129 // The meta variables encoding the nondeterminism in the model.
130 std::set<storm::expressions::Variable> nondeterminismVariables;
131};
132
133} // namespace symbolic
134} // namespace models
135} // namespace storm
136
137#endif /* STORM_MODELS_SYMBOLIC_NONDETERMINISTICMODEL_H_ */
Base class for all symbolic models.
Definition Model.h:46
storm::dd::Add< Type, ValueType > transitionMatrix
Definition Model.h:409
Base class for all nondeterministic symbolic models.
NondeterministicModel(NondeterministicModel< Type, ValueType > &&other)=default
virtual uint_fast64_t getNumberOfChoices() const override
Retrieves the number of nondeterministic choices in the model.
virtual std::set< storm::expressions::Variable > const & getNondeterminismVariables() const override
Retrieves the meta variables used to encode the nondeterminism in the model.
virtual void printModelInformationToStream(std::ostream &out) const override
Prints information about the model to the specified stream.
Model< Type, ValueType >::RewardModelType RewardModelType
storm::dd::Bdd< Type > const & getIllegalMask() const
Retrieves a BDD characterizing all illegal nondeterminism encodings in the model.
storm::dd::Bdd< Type > getIllegalSuccessorMask() const
Retrieves a BDD characterizing the illegal successors for each choice.
NondeterministicModel & operator=(NondeterministicModel< Type, ValueType > const &other)=default
NondeterministicModel & operator=(NondeterministicModel< Type, ValueType > &&other)=default
virtual void reduceToStateBasedRewards() override
Converts the transition rewards of all reward models to state-based rewards.
virtual void printDdVariableInformationToStream(std::ostream &out) const override
Prints information about the DD variables to the specified stream.
NondeterministicModel(NondeterministicModel< Type, ValueType > const &other)=default
virtual storm::dd::Bdd< Type > getQualitativeTransitionMatrix(bool keepNondeterminism=true) const override
Retrieves the matrix qualitatively (i.e.
LabParser.cpp.
Definition cli.cpp:18