Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
Ctmc.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace storm {
9namespace models {
10namespace sparse {
11
15template<class ValueType, typename RewardModelType = StandardRewardModel<ValueType>>
16class Ctmc : public DeterministicModel<ValueType, RewardModelType> {
17 public:
26 std::unordered_map<std::string, RewardModelType> const& rewardModels = std::unordered_map<std::string, RewardModelType>());
27
36 std::unordered_map<std::string, RewardModelType>&& rewardModels = std::unordered_map<std::string, RewardModelType>());
37
45
46 Ctmc(Ctmc<ValueType, RewardModelType> const& ctmc) = default;
50
56 std::vector<ValueType> const& getExitRateVector() const;
57
63 std::vector<ValueType>& getExitRateVector();
64
65 virtual void reduceToStateBasedRewards() override;
66
72
73 private:
80 static std::vector<ValueType> createExitRateVector(storm::storage::SparseMatrix<ValueType> const& rateMatrix);
81
82 // A vector containing the exit rates of all states.
83 std::vector<ValueType> exitRates;
84};
85
86// Instantiated in Ctmc.cpp; prevents hidden consumers from duplicating the vtable/RTTI.
87extern template class Ctmc<double>;
88extern template class Ctmc<storm::RationalNumber>;
91extern template class Ctmc<storm::RationalFunction>;
92extern template class Ctmc<storm::Interval>;
93extern template class Ctmc<storm::RationalInterval>;
94
95} // namespace sparse
96} // namespace models
97} // namespace storm
This class represents a continuous-time Markov chain.
Definition Ctmc.h:16
Ctmc & operator=(Ctmc< ValueType, RewardModelType > const &ctmc)=default
storm::storage::SparseMatrix< ValueType > computeProbabilityMatrix() const
Definition Ctmc.cpp:87
Ctmc & operator=(Ctmc< ValueType, RewardModelType > &&ctmc)=default
virtual void reduceToStateBasedRewards() override
Converts the transition rewards of all reward models to state-based rewards.
Definition Ctmc.cpp:80
Ctmc(Ctmc< ValueType, RewardModelType > const &ctmc)=default
Ctmc(Ctmc< ValueType, RewardModelType > &&ctmc)=default
Ctmc(storm::storage::SparseMatrix< ValueType > const &rateMatrix, storm::models::sparse::StateLabeling const &stateLabeling, std::unordered_map< std::string, RewardModelType > const &rewardModels=std::unordered_map< std::string, RewardModelType >())
Constructs a model from the given data.
Definition Ctmc.cpp:14
std::vector< ValueType > const & getExitRateVector() const
Retrieves the vector of exit rates of the model.
Definition Ctmc.cpp:61
DeterministicModel(ModelType modelType, storm::storage::sparse::ModelComponents< ValueType, RewardModelType > const &components)
Constructs a model from the given data.
This class manages the labeling of the state space with a number of (atomic) labels.
A class that holds a possibly non-square matrix in the compressed row storage format.