Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ModelComponents.h
Go to the documentation of this file.
1#pragma once
2
3#include <boost/optional.hpp>
4#include <memory>
5#include <unordered_map>
6#include <vector>
7
18
21
22namespace storm {
23namespace storage {
24namespace sparse {
25
26template<typename ValueType, typename RewardModelType = storm::models::sparse::StandardRewardModel<ValueType>>
30 std::unordered_map<std::string, RewardModelType> const& rewardModels = std::unordered_map<std::string, RewardModelType>(),
31 bool rateTransitions = false, boost::optional<storm::storage::BitVector> const& markovianStates = boost::none,
39 // Intentionally left empty
40 }
41
44 std::unordered_map<std::string, RewardModelType>&& rewardModels = std::unordered_map<std::string, RewardModelType>(),
45 bool rateTransitions = false, boost::optional<storm::storage::BitVector>&& markovianStates = boost::none,
53 // Intentionally left empty
54 }
55
56 // General components (applicable for all model types):
57
58 // The transition matrix.
60 // The state labeling.
62 // The reward models associated with the model.
63 std::unordered_map<std::string, RewardModelType> rewardModels;
64 // A vector that stores a labeling for each choice.
65 std::optional<storm::models::sparse::ChoiceLabeling> choiceLabeling;
66 // stores for each state to which variable valuation it belongs
67 std::optional<storm::storage::sparse::StateValuations> stateValuations;
68 // stores for each choice from which parts of the input model description it originates
69 std::optional<std::shared_ptr<storm::storage::sparse::ChoiceOrigins>> choiceOrigins;
70
71 // POMDP specific components
72 // The POMDP observations
73 std::optional<std::vector<uint32_t>> observabilityClasses;
74 std::optional<storm::storage::sparse::StateValuations> observationValuations;
75
76 // Continuous time specific components (CTMCs, Markov Automata):
77 // True iff the transition values (for Markovian choices) are interpreted as rates.
79 // The exit rate for each state. Must be given for CTMCs and MAs, if rateTransitions is false. Otherwise, it is optional.
80 boost::optional<std::vector<ValueType>> exitRates;
81 // A vector that stores which states are markovian (only for Markov Automata).
82 boost::optional<storm::storage::BitVector> markovianStates;
83
84 // Stochastic two player game specific components:
85 // The matrix of player 1 choices (needed for stochastic two player games
86 boost::optional<storm::storage::SparseMatrix<storm::storage::sparse::state_type>> player1Matrix;
87
88 // Stochastic multiplayer game specific components:
89 // The vector mapping states to player indices.
90 boost::optional<std::vector<storm::storage::PlayerIndex>> statePlayerIndications;
91 // A mapping of player names to player indices.
92 boost::optional<std::map<std::string, storm::storage::PlayerIndex>> playerNameToIndexMap;
93};
94} // namespace sparse
95} // namespace storage
96} // namespace storm
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.
LabParser.cpp.
Definition cli.cpp:18
std::optional< storm::storage::sparse::StateValuations > stateValuations
std::unordered_map< std::string, RewardModelType > rewardModels
storm::storage::SparseMatrix< ValueType > transitionMatrix
ModelComponents(storm::storage::SparseMatrix< ValueType > &&transitionMatrix=storm::storage::SparseMatrix< ValueType >(), storm::models::sparse::StateLabeling &&stateLabeling=storm::models::sparse::StateLabeling(), std::unordered_map< std::string, RewardModelType > &&rewardModels=std::unordered_map< std::string, RewardModelType >(), bool rateTransitions=false, boost::optional< storm::storage::BitVector > &&markovianStates=boost::none, boost::optional< storm::storage::SparseMatrix< storm::storage::sparse::state_type > > &&player1Matrix=boost::none)
boost::optional< storm::storage::BitVector > markovianStates
boost::optional< std::vector< storm::storage::PlayerIndex > > statePlayerIndications
boost::optional< storm::storage::SparseMatrix< storm::storage::sparse::state_type > > player1Matrix
std::optional< storm::storage::sparse::StateValuations > observationValuations
std::optional< std::shared_ptr< storm::storage::sparse::ChoiceOrigins > > choiceOrigins
std::optional< storm::models::sparse::ChoiceLabeling > choiceLabeling
boost::optional< std::map< std::string, storm::storage::PlayerIndex > > playerNameToIndexMap
ModelComponents(storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::models::sparse::StateLabeling const &stateLabeling=storm::models::sparse::StateLabeling(), std::unordered_map< std::string, RewardModelType > const &rewardModels=std::unordered_map< std::string, RewardModelType >(), bool rateTransitions=false, boost::optional< storm::storage::BitVector > const &markovianStates=boost::none, boost::optional< storm::storage::SparseMatrix< storm::storage::sparse::state_type > > const &player1Matrix=boost::none)
storm::models::sparse::StateLabeling stateLabeling
std::optional< std::vector< uint32_t > > observabilityClasses
boost::optional< std::vector< ValueType > > exitRates