Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
MemoryStructureBuilder.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <vector>
5
9
10namespace storm {
11namespace storage {
12
13template<typename ValueType, typename RewardModelType = storm::models::sparse::StandardRewardModel<ValueType>>
15 public:
22 MemoryStructureBuilder(uint_fast64_t numberOfMemoryStates, storm::models::sparse::Model<ValueType, RewardModelType> const& model,
23 bool onlyInitialStatesRelevant = true);
24
29
38 void setInitialMemoryState(uint_fast64_t initialModelState, uint_fast64_t initialMemoryState);
39
52 void setTransition(uint_fast64_t const& startState, uint_fast64_t const& goalState, storm::storage::BitVector const& modelStates,
53 boost::optional<storm::storage::BitVector> const& modelChoices = boost::none);
54
58 void setLabel(uint_fast64_t const& state, std::string const& label);
59
67
72
73 private:
77 std::vector<uint_fast64_t> initialMemoryStates;
78 bool onlyInitialStatesRelevant;
79};
80
81} // namespace storage
82} // 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.
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
void setInitialMemoryState(uint_fast64_t initialModelState, uint_fast64_t initialMemoryState)
Specifies for the given state of the model the corresponding initial memory state.
MemoryStructure build()
Builds the memory structure.
static MemoryStructure buildTrivialMemoryStructure(storm::models::sparse::Model< ValueType, RewardModelType > const &model)
Builds a trivial memory structure for the given model (consisting of a single memory state)
void setTransition(uint_fast64_t const &startState, uint_fast64_t const &goalState, storm::storage::BitVector const &modelStates, boost::optional< storm::storage::BitVector > const &modelChoices=boost::none)
Specifies a transition of the memory structure.
void setLabel(uint_fast64_t const &state, std::string const &label)
Sets a label to the given memory state.
This class represents a (deterministic) memory structure that can be used to encode certain events (s...
std::vector< std::vector< boost::optional< storm::storage::BitVector > > > TransitionMatrix
LabParser.cpp.
Definition cli.cpp:18