Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
Ctmc.h
Go to the documentation of this file.
1#ifndef STORM_MODELS_SYMBOLIC_CTMC_H_
2#define STORM_MODELS_SYMBOLIC_CTMC_H_
3
6
7namespace storm {
8namespace models {
9namespace symbolic {
10
14template<storm::dd::DdType Type, typename ValueType = double>
15class Ctmc : public DeterministicModel<Type, ValueType> {
16 public:
18
19 Ctmc(Ctmc<Type, ValueType> const& other) = default;
20 Ctmc& operator=(Ctmc<Type, ValueType> const& other) = default;
21
22#ifndef WINDOWS
23 Ctmc(Ctmc<Type, ValueType>&& other) = default;
25#endif
26
43 Ctmc(std::shared_ptr<storm::dd::DdManager<Type>> manager, storm::dd::Bdd<Type> reachableStates, storm::dd::Bdd<Type> initialStates,
44 storm::dd::Bdd<Type> deadlockStates, storm::dd::Add<Type, ValueType> transitionMatrix, std::set<storm::expressions::Variable> const& rowVariables,
45 std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
46 std::set<storm::expressions::Variable> const& columnVariables,
47 std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& rowColumnMetaVariablePairs,
48 std::map<std::string, storm::expressions::Expression> labelToExpressionMap = std::map<std::string, storm::expressions::Expression>(),
49 std::unordered_map<std::string, RewardModelType> const& rewardModels = std::unordered_map<std::string, RewardModelType>());
50
68 Ctmc(std::shared_ptr<storm::dd::DdManager<Type>> manager, storm::dd::Bdd<Type> reachableStates, storm::dd::Bdd<Type> initialStates,
70 std::set<storm::expressions::Variable> const& rowVariables,
71 std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
72 std::set<storm::expressions::Variable> const& columnVariables,
73 std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& rowColumnMetaVariablePairs,
74 std::map<std::string, storm::expressions::Expression> labelToExpressionMap = std::map<std::string, storm::expressions::Expression>(),
75 std::unordered_map<std::string, RewardModelType> const& rewardModels = std::unordered_map<std::string, RewardModelType>());
76
91 Ctmc(std::shared_ptr<storm::dd::DdManager<Type>> manager, storm::dd::Bdd<Type> reachableStates, storm::dd::Bdd<Type> initialStates,
92 storm::dd::Bdd<Type> deadlockStates, storm::dd::Add<Type, ValueType> transitionMatrix, std::set<storm::expressions::Variable> const& rowVariables,
93 std::set<storm::expressions::Variable> const& columnVariables,
94 std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& rowColumnMetaVariablePairs,
95 std::map<std::string, storm::dd::Bdd<Type>> labelToBddMap = std::map<std::string, storm::dd::Bdd<Type>>(),
96 std::unordered_map<std::string, RewardModelType> const& rewardModels = std::unordered_map<std::string, RewardModelType>());
97
113 Ctmc(std::shared_ptr<storm::dd::DdManager<Type>> manager, storm::dd::Bdd<Type> reachableStates, storm::dd::Bdd<Type> initialStates,
115 std::set<storm::expressions::Variable> const& rowVariables, std::set<storm::expressions::Variable> const& columnVariables,
116 std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& rowColumnMetaVariablePairs,
117 std::map<std::string, storm::dd::Bdd<Type>> labelToBddMap = std::map<std::string, storm::dd::Bdd<Type>>(),
118 std::unordered_map<std::string, RewardModelType> const& rewardModels = std::unordered_map<std::string, RewardModelType>());
119
126
127 virtual void reduceToStateBasedRewards() override;
128
134
135 template<typename NewValueType>
136 std::shared_ptr<Ctmc<Type, NewValueType>> toValueType() const;
137
138 private:
139 mutable boost::optional<storm::dd::Add<Type, ValueType>> exitRates;
140};
141
142} // namespace symbolic
143} // namespace models
144} // namespace storm
145
146#endif /* STORM_MODELS_SYMBOLIC_CTMC_H_ */
This class represents a continuous-time Markov chain.
Definition Ctmc.h:15
storm::dd::Add< Type, ValueType > const & getExitRateVector() const
Retrieves the exit rate vector of the CTMC.
Definition Ctmc.cpp:69
Ctmc & operator=(Ctmc< Type, ValueType > &&other)=default
Ctmc(Ctmc< Type, ValueType > &&other)=default
Ctmc & operator=(Ctmc< Type, ValueType > const &other)=default
std::shared_ptr< Ctmc< Type, NewValueType > > toValueType() const
Definition Ctmc.cpp:93
storm::dd::Add< Type, ValueType > computeProbabilityMatrix() const
Definition Ctmc.cpp:87
DeterministicModel< Type, ValueType >::RewardModelType RewardModelType
Definition Ctmc.h:17
virtual void reduceToStateBasedRewards() override
Converts the transition rewards of all reward models to state-based rewards.
Definition Ctmc.cpp:77
Ctmc(Ctmc< Type, ValueType > const &other)=default
Base class for all deterministic symbolic models.
Model< Type, ValueType >::RewardModelType RewardModelType
storm::dd::Add< Type, ValueType > transitionMatrix
Definition Model.h:409
LabParser.cpp.
Definition cli.cpp:18