Storm 1.13.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ObservationTraceUnfolder.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace storm {
6namespace pomdp {
7
9 public:
11};
12
18template<typename ValueType>
20 public:
27 ObservationTraceUnfolder(storm::models::sparse::Pomdp<ValueType> const& model, std::vector<ValueType> const& risk,
28 std::shared_ptr<storm::expressions::ExpressionManager>& exprManager, ObservationTraceUnfolderOptions const& options);
34 std::shared_ptr<storm::models::sparse::Mdp<ValueType>> transform(std::vector<uint32_t> const& observations);
40 std::shared_ptr<storm::models::sparse::Mdp<ValueType>> extend(std::vector<uint32_t> const& observations);
45 void reset(uint32_t observation);
46
47 bool isRestartSemanticsSet() const;
48
49 private:
51 std::vector<ValueType> risk; // TODO reconsider holding this as a reference, but there were some strange bugs
52 std::shared_ptr<storm::expressions::ExpressionManager>& exprManager;
53 std::vector<uint32_t> traceSoFar;
54 storm::expressions::Variable svvar; // Maps to the old state (explicit encoding)
55 storm::expressions::Variable tsvar; // Maps to the time step
57};
58
59} // namespace pomdp
60} // namespace storm
This class represents a partially observable Markov decision process.
Definition Pomdp.h:13
std::shared_ptr< storm::models::sparse::Mdp< ValueType > > extend(std::vector< uint32_t > const &observations)
Transform incrementaly.
void reset(uint32_t observation)
When using the incremental approach, reset the observations made so far.
std::shared_ptr< storm::models::sparse::Mdp< ValueType > > transform(std::vector< uint32_t > const &observations)
Transform in one shot.
ObservationTraceUnfolder(storm::models::sparse::Pomdp< ValueType > const &model, std::vector< ValueType > const &risk, std::shared_ptr< storm::expressions::ExpressionManager > &exprManager, ObservationTraceUnfolderOptions const &options)
Initialize.