Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
MarkovAutomaton.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace storm {
6namespace models {
7namespace symbolic {
8
12template<storm::dd::DdType Type, typename ValueType = double>
13class MarkovAutomaton : public NondeterministicModel<Type, ValueType> {
14 public:
16
21
40 MarkovAutomaton(std::shared_ptr<storm::dd::DdManager<Type>> manager, storm::dd::Bdd<Type> markovianMarker, storm::dd::Bdd<Type> reachableStates,
42 std::set<storm::expressions::Variable> const& rowVariables,
43 std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
44 std::set<storm::expressions::Variable> const& columnVariables,
45 std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& rowColumnMetaVariablePairs,
46 std::set<storm::expressions::Variable> const& nondeterminismVariables,
47 std::map<std::string, storm::expressions::Expression> labelToExpressionMap = std::map<std::string, storm::expressions::Expression>(),
48 std::unordered_map<std::string, RewardModelType> const& rewardModels = std::unordered_map<std::string, RewardModelType>());
49
66 MarkovAutomaton(std::shared_ptr<storm::dd::DdManager<Type>> manager, storm::dd::Bdd<Type> markovianMarker, storm::dd::Bdd<Type> reachableStates,
68 std::set<storm::expressions::Variable> const& rowVariables, std::set<storm::expressions::Variable> const& columnVariables,
69 std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& rowColumnMetaVariablePairs,
70 std::set<storm::expressions::Variable> const& nondeterminismVariables,
71 std::map<std::string, storm::dd::Bdd<Type>> labelToBddMap = std::map<std::string, storm::dd::Bdd<Type>>(),
72 std::unordered_map<std::string, RewardModelType> const& rewardModels = std::unordered_map<std::string, RewardModelType>());
73
78
79 bool hasHybridStates() const;
80 bool isClosed();
81
83
85
86 template<typename NewValueType>
87 std::shared_ptr<MarkovAutomaton<Type, NewValueType>> toValueType() const;
88
89 private:
93 void computeMarkovianInfo();
94
95 storm::dd::Bdd<Type> markovianMarker;
96 storm::dd::Bdd<Type> markovianStates;
97 storm::dd::Bdd<Type> markovianChoices;
98 storm::dd::Bdd<Type> probabilisticStates;
100};
101
102} // namespace symbolic
103} // namespace models
104} // namespace storm
This class represents a discrete-time Markov decision process.
storm::dd::Bdd< Type > const & getProbabilisticStates() const
MarkovAutomaton & operator=(MarkovAutomaton< Type, ValueType > const &other)=default
MarkovAutomaton< Type, ValueType > close()
storm::dd::Bdd< Type > const & getMarkovianStates() const
NondeterministicModel< Type, ValueType >::RewardModelType RewardModelType
MarkovAutomaton & operator=(MarkovAutomaton< Type, ValueType > &&other)=default
MarkovAutomaton(MarkovAutomaton< Type, ValueType > const &other)=default
storm::dd::Bdd< Type > const & getMarkovianMarker() const
std::shared_ptr< MarkovAutomaton< Type, NewValueType > > toValueType() const
storm::dd::Add< Type, ValueType > const & getExitRateVector() const
storm::dd::Bdd< Type > const & getMarkovianChoices() const
MarkovAutomaton(MarkovAutomaton< Type, ValueType > &&other)=default
storm::dd::Add< Type, ValueType > transitionMatrix
Definition Model.h:409
Base class for all nondeterministic symbolic models.
LabParser.cpp.
Definition cli.cpp:18