13template<storm::dd::DdType Type,
typename ValueType>
16 std::set<storm::expressions::Variable>
const& rowVariables,
18 std::set<storm::expressions::Variable>
const& columnVariables,
19 std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>>
const& rowColumnMetaVariablePairs,
20 std::map<std::string, storm::expressions::Expression> labelToExpressionMap,
21 std::unordered_map<std::string, RewardModelType>
const& rewardModels)
23 rowVariables, rowExpressionAdapter, columnVariables, rowColumnMetaVariablePairs, labelToExpressionMap, rewardModels) {
27template<storm::dd::DdType Type,
typename ValueType>
32 std::set<storm::expressions::Variable>
const& columnVariables,
33 std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>>
const& rowColumnMetaVariablePairs,
34 std::map<std::string, storm::expressions::Expression> labelToExpressionMap,
35 std::unordered_map<std::string, RewardModelType>
const& rewardModels)
37 rowVariables, rowExpressionAdapter, columnVariables, rowColumnMetaVariablePairs, labelToExpressionMap, rewardModels),
38 exitRates(exitRateVector) {
42template<storm::dd::DdType Type,
typename ValueType>
45 std::set<storm::expressions::Variable>
const& rowVariables, std::set<storm::expressions::Variable>
const& columnVariables,
46 std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>>
const& rowColumnMetaVariablePairs,
47 std::map<std::string,
storm::dd::Bdd<Type>> labelToBddMap, std::unordered_map<std::string, RewardModelType>
const& rewardModels)
49 rowVariables, columnVariables, rowColumnMetaVariablePairs, labelToBddMap, rewardModels) {
53template<storm::dd::DdType Type,
typename ValueType>
57 std::set<storm::expressions::Variable>
const& columnVariables,
58 std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>>
const& rowColumnMetaVariablePairs,
59 std::map<std::string,
storm::dd::Bdd<Type>> labelToBddMap, std::unordered_map<std::string, RewardModelType>
const& rewardModels)
61 rowVariables, columnVariables, rowColumnMetaVariablePairs, labelToBddMap, rewardModels),
62 exitRates(exitRateVector) {
66template<storm::dd::DdType Type,
typename ValueType>
71 return exitRates.get();
74template<storm::dd::DdType Type,
typename ValueType>
77 if (rewardModel.second.hasStateActionRewards()) {
84template<storm::dd::DdType Type,
typename ValueType>
89template<storm::dd::DdType Type,
typename ValueType>
90template<
typename NewValueType>
93 std::unordered_map<std::string, NewRewardModelType> newRewardModels;
100 newLabelToBddMap.erase(
"init");
101 newLabelToBddMap.erase(
"deadlock");
This class represents a continuous-time Markov chain.
storm::dd::Add< Type, ValueType > const & getExitRateVector() const
Retrieves the exit rate vector of the CTMC.
std::shared_ptr< Ctmc< Type, NewValueType > > toValueType() const
storm::dd::Add< Type, ValueType > computeProbabilityMatrix() const
virtual void reduceToStateBasedRewards() override
Converts the transition rewards of all reward models to state-based rewards.
Ctmc(Ctmc< Type, ValueType > const &other)=default
Model< Type, ValueType >::RewardModelType RewardModelType
DeterministicModel(DeterministicModel< Type, double > const &other)=default
storm::dd::Add< Type, ValueType > const & getTransitionMatrix() const
storm::dd::Bdd< Type > const & getDeadlockStates() const
std::set< storm::expressions::Variable > const & getColumnVariables() const
std::shared_ptr< storm::dd::DdManager< Type > > const & getManagerAsSharedPointer() const
std::map< std::string, storm::dd::Bdd< Type > > const & getLabelToBddMap() const
storm::dd::Bdd< Type > const & getInitialStates() const
storm::dd::Add< Type, ValueType > transitionMatrix
std::vector< std::pair< storm::expressions::Variable, storm::expressions::Variable > > const & getRowColumnMetaVariablePairs() const
std::set< storm::expressions::Variable > const & getRowVariables() const
std::unordered_map< std::string, RewardModelType > & getRewardModels()
storm::dd::Bdd< Type > const & getReachableStates() const