Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
PomdpMemoryUnfolder.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace storm {
8namespace transformer {
9
10template<typename ValueType>
12 public:
13 PomdpMemoryUnfolder(storm::models::sparse::Pomdp<ValueType> const& pomdp, storm::storage::PomdpMemory const& memory, bool addMemoryLabels = false,
14 bool keepStateValuations = false);
15
16 std::shared_ptr<storm::models::sparse::Pomdp<ValueType>> transform(bool dropUnreachableStates = true) const;
17
18 private:
19 storm::storage::SparseMatrix<ValueType> transformTransitions() const;
20 storm::models::sparse::StateLabeling transformStateLabeling() const;
21 std::vector<uint32_t> transformObservabilityClasses(storm::storage::BitVector const& reachableStates) const;
23 storm::storage::BitVector const& reachableStates) const;
24
25 uint64_t getUnfoldingState(uint64_t modelState, uint64_t memoryState) const;
26 uint64_t getModelState(uint64_t unfoldingState) const;
27 uint64_t getMemoryState(uint64_t unfoldingState) const;
28
29 uint32_t getUnfoldingObersvation(uint32_t modelObservation, uint64_t memoryState) const;
30 uint32_t getModelObersvation(uint32_t unfoldingObservation) const;
31 uint64_t getMemoryStateFromObservation(uint32_t unfoldingObservation) const;
32
34 storm::storage::PomdpMemory const& memory;
35
36 bool addMemoryLabels;
37 bool keepStateValuations;
38};
39} // namespace transformer
40} // namespace storm
This class represents a partially observable Markov decision process.
Definition Pomdp.h:15
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
A class that holds a possibly non-square matrix in the compressed row storage format.
std::shared_ptr< storm::models::sparse::Pomdp< ValueType > > transform(bool dropUnreachableStates=true) const
LabParser.cpp.
Definition cli.cpp:18