6template<
typename ValueType>
8 : pomdp(pomdp), currentBeliefSupport(pomdp.getInitialStates()) {}
10template<
typename ValueType>
12 return currentBeliefSupport;
15template<
typename ValueType>
18 for (uint64_t oldState : currentBeliefSupport) {
19 uint64_t row = pomdp.getTransitionMatrix().getRowGroupIndices()[oldState] + action;
20 for (
auto const& successor : pomdp.getTransitionMatrix().getRow(row)) {
22 if (pomdp.getObservation(successor.getColumn()) == observation) {
23 newBeliefSupport.
set(successor.getColumn(),
true);
27 currentBeliefSupport = newBeliefSupport;
30template<
typename ValueType>
32 currentBeliefSupport = pomdp.getInitialStates();
BeliefSupportTracker(storm::models::sparse::Pomdp< ValueType > const &pomdp)
Tracks the current belief support.
storm::storage::BitVector const & getCurrentBeliefSupport() const
The current belief support according to the tracker.
void track(uint64_t action, uint64_t observation)
Update current belief support state.
void reset()
Reset to initial state.
This class represents a partially observable Markov decision process.
A bit vector that is internally represented as a vector of 64-bit values.
void set(uint_fast64_t index, bool value=true)
Sets the given truth value at the given index.
bool isZero(ValueType const &a)