Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
MemoryStructure.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <vector>
5
10
11namespace storm {
12namespace storage {
13
14template<typename ValueType, typename RewardModelType>
15class SparseModelMemoryProduct;
16
22 public:
23 typedef std::vector<std::vector<boost::optional<storm::storage::BitVector>>> TransitionMatrix;
24
39 MemoryStructure(TransitionMatrix const& transitionMatrix, storm::models::sparse::StateLabeling const& memoryStateLabeling,
40 std::vector<uint_fast64_t> const& initialMemoryStates, bool onlyInitialStatesRelevant = true);
41 MemoryStructure(TransitionMatrix&& transitionMatrix, storm::models::sparse::StateLabeling&& memoryStateLabeling,
42 std::vector<uint_fast64_t>&& initialMemoryStates, bool onlyInitialStatesRelevant = true);
43
47 std::vector<uint_fast64_t> const& getInitialMemoryStates() const;
48 uint_fast64_t getNumberOfStates() const;
49
50 uint_fast64_t getSuccessorMemoryState(uint_fast64_t const& currentMemoryState, uint_fast64_t const& modelTransitionIndex) const;
51
57 MemoryStructure product(MemoryStructure const& rhs) const;
58
63 template<typename ValueType, typename RewardModelType = storm::models::sparse::StandardRewardModel<ValueType>>
65
66 std::string toString() const;
67
68 private:
69 TransitionMatrix transitions;
71 std::vector<uint_fast64_t> initialMemoryStates;
72 bool onlyInitialStatesRelevant; // Whether initial memory states are only defined for initial model states or for all model states
73};
74
75} // namespace storage
76} // namespace storm
Base class for all sparse models.
Definition Model.h:33
This class manages the labeling of the state space with a number of (atomic) labels.
This class represents a (deterministic) memory structure that can be used to encode certain events (s...
TransitionMatrix const & getTransitionMatrix() const
MemoryStructure product(MemoryStructure const &rhs) const
Builds the product of this memory structure and the given memory structure.
std::vector< std::vector< boost::optional< storm::storage::BitVector > > > TransitionMatrix
std::vector< uint_fast64_t > const & getInitialMemoryStates() const
uint_fast64_t getSuccessorMemoryState(uint_fast64_t const &currentMemoryState, uint_fast64_t const &modelTransitionIndex) const
storm::models::sparse::StateLabeling const & getStateLabeling() const
uint_fast64_t getNumberOfStates() const
This class builds the product of the given sparse model and the given memory structure.
LabParser.cpp.
Definition cli.cpp:18