Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ContinuousToDiscreteTimeModelTransformer.h
Go to the documentation of this file.
1#pragma once
2
3#include <boost/optional.hpp>
4
11
12namespace storm {
13namespace transformer {
14
15template<typename ValueType, typename RewardModelType = storm::models::sparse::StandardRewardModel<ValueType>>
17 public:
18 // If this method returns true, the given formula is preserved by the transformation
19 static bool preservesFormula(storm::logic::Formula const& formula);
20
21 // Checks whether the given formulas are preserved.
22 // Expected time formulas are translated to expected reward formulas.
23 // The returned vector only contains formulas that are preserved by the transformation.
24 static std::vector<std::shared_ptr<storm::logic::Formula const>> checkAndTransformFormulas(
25 std::vector<std::shared_ptr<storm::logic::Formula const>> const& formulas, std::string const& timeRewardName);
26
27 // Transforms the given CTMC to its underlying (aka embedded) DTMC.
28 // A reward model for time is added if a corresponding reward model name is given
29 static std::shared_ptr<storm::models::sparse::Dtmc<ValueType, RewardModelType>> transform(
30 storm::models::sparse::Ctmc<ValueType, RewardModelType> const& ctmc, boost::optional<std::string> const& timeRewardModelName = boost::none);
31 static std::shared_ptr<storm::models::sparse::Dtmc<ValueType, RewardModelType>> transform(
32 storm::models::sparse::Ctmc<ValueType, RewardModelType>&& ctmc, boost::optional<std::string> const& timeRewardModelName = boost::none);
33
34 // Transforms the given MA to its underlying (aka embedded) MDP.
35 // A reward model for time is added if a corresponding reward model name is given
36 static std::shared_ptr<storm::models::sparse::Mdp<ValueType, RewardModelType>> transform(
37 storm::models::sparse::MarkovAutomaton<ValueType, RewardModelType> const& ma, boost::optional<std::string> const& timeRewardModelName = boost::none);
38 static std::shared_ptr<storm::models::sparse::Mdp<ValueType, RewardModelType>> transform(
39 storm::models::sparse::MarkovAutomaton<ValueType, RewardModelType>&& ma, boost::optional<std::string> const& timeRewardModelName = boost::none);
40};
41} // namespace transformer
42} // namespace storm
This class represents a continuous-time Markov chain.
Definition Ctmc.h:15
This class represents a Markov automaton.
static std::vector< std::shared_ptr< storm::logic::Formula const > > checkAndTransformFormulas(std::vector< std::shared_ptr< storm::logic::Formula const > > const &formulas, std::string const &timeRewardName)
static std::shared_ptr< storm::models::sparse::Dtmc< ValueType, RewardModelType > > transform(storm::models::sparse::Ctmc< ValueType, RewardModelType > const &ctmc, boost::optional< std::string > const &timeRewardModelName=boost::none)
LabParser.cpp.
Definition cli.cpp:18