Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
WinningRegion.h
Go to the documentation of this file.
1#pragma once
2
3#include <cassert>
4#include <vector>
7
8namespace storm {
9namespace expressions {
10class Expression;
11}
12namespace pomdp {
14 public:
15 WinningRegion(std::vector<uint64_t> const& observationSizes = {});
16
17 bool update(uint64_t observation, storm::storage::BitVector const& winning);
18 bool query(uint64_t observation, storm::storage::BitVector const& currently) const;
19 bool isWinning(uint64_t observation, uint64_t offset) const {
20 assert(observation < observationSizes.size());
21 assert(offset < observationSizes[observation]);
22 storm::storage::BitVector currently(observationSizes[observation]);
23 currently.set(offset);
24 return query(observation, currently);
25 }
26
27 std::vector<storm::storage::BitVector> const& getWinningSetsPerObservation(uint64_t observation) const;
28
29 void addTargetStates(uint64_t observation, storm::storage::BitVector const& offsets);
30 void setObservationIsWinning(uint64_t observation);
31
32 bool observationIsWinning(uint64_t observation) const;
33 storm::expressions::Expression extensionExpression(uint64_t observation, std::vector<storm::expressions::Expression>& varsForStates) const;
34
35 uint64_t getStorageSize() const;
36 storm::RationalNumber beliefSupportStates() const;
37 std::pair<storm::RationalNumber, storm::RationalNumber> computeNrWinningBeliefs() const;
38
39 uint64_t getNumberOfObservations() const;
40 bool empty() const;
41 void print() const;
42
43 void storeToFile(std::string const& path, std::string const& preamble = "", bool append = false) const;
44 static std::pair<WinningRegion, std::string> loadFromFile(std::string const& path);
45
46 private:
47 std::vector<std::vector<storm::storage::BitVector>> winningRegion;
48 std::vector<uint64_t> observationSizes;
49};
50} // namespace pomdp
51} // namespace storm
static std::pair< WinningRegion, std::string > loadFromFile(std::string const &path)
std::pair< storm::RationalNumber, storm::RationalNumber > computeNrWinningBeliefs() const
bool update(uint64_t observation, storm::storage::BitVector const &winning)
void addTargetStates(uint64_t observation, storm::storage::BitVector const &offsets)
std::vector< storm::storage::BitVector > const & getWinningSetsPerObservation(uint64_t observation) const
uint64_t getNumberOfObservations() const
How many different observations are there?
storm::RationalNumber beliefSupportStates() const
bool isWinning(uint64_t observation, uint64_t offset) const
storm::expressions::Expression extensionExpression(uint64_t observation, std::vector< storm::expressions::Expression > &varsForStates) const
bool query(uint64_t observation, storm::storage::BitVector const &currently) const
bool observationIsWinning(uint64_t observation) const
If we observe this observation, do we surely win?
void setObservationIsWinning(uint64_t observation)
void storeToFile(std::string const &path, std::string const &preamble="", bool append=false) const
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
void set(uint_fast64_t index, bool value=true)
Sets the given truth value at the given index.
LabParser.cpp.
Definition cli.cpp:18