5#include <unordered_map>
24template<
typename ValueType,
typename RewardModelType = storm::models::sparse::StandardRewardModel<ValueType>>
43 bool isStateReachable(uint64_t
const& modelState, uint64_t
const& memoryState);
47 uint64_t
const&
getResultState(uint64_t
const& modelState, uint64_t
const& memoryState);
50 std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>>
build();
61 void computeMemorySuccessors();
81 std::unordered_map<std::string, RewardModelType>&& rewardModels);
87 std::vector<uint64_t> memorySuccessors;
90 std::vector<uint64_t> toResultStateMapping;
95 uint64_t
const memoryStateCount;
98 boost::optional<storm::storage::MemoryStructure> localMemory;
100 boost::optional<storm::storage::Scheduler<ValueType>
const&> scheduler;
Base class for all sparse models.
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.
This class represents a (deterministic) memory structure that can be used to encode certain events (s...
This class defines which action is chosen in a particular state of a non-deterministic model.
A class that holds a possibly non-square matrix in the compressed row storage format.
This class builds the product of the given sparse model and the given memory structure.
storm::storage::MemoryStructure const & getMemory() const
std::shared_ptr< storm::models::sparse::Model< ValueType, RewardModelType > > build()
void addReachableState(uint64_t const &modelState, uint64_t const &memoryState)
void setBuildFullProduct()
storm::models::sparse::Model< ValueType, RewardModelType > const & getOriginalModel() const
bool isStateReachable(uint64_t const &modelState, uint64_t const &memoryState)
uint64_t const & getResultState(uint64_t const &modelState, uint64_t const &memoryState)