STAMINA/STORM 0.1
Infinite state-space truncator which generates a probability within a window
StaminaPriorityModelBuilder.h
1#ifndef STAMINA_BUILDER_PRIORITYMODELBUILDER_H
2#define STAMINA_BUILDER_PRIORITYMODELBUILDER_H
3
11#include "StaminaModelBuilder.h"
12
13namespace stamina {
14 namespace builder {
15 template<typename ValueType, typename RewardModelType = storm::models::sparse::StandardRewardModel<ValueType>, typename StateType = uint32_t>
16 class StaminaPriorityModelBuilder : public StaminaModelBuilder<ValueType, RewardModelType, StateType> {
17 public:
18// typedef typename StaminaModelBuilder<ValueType, RewardModelType, StateType>::ProbabilityState ProbabilityState;
25 std::shared_ptr<storm::generator::PrismNextStateGenerator<ValueType, StateType>> const& generator
26 , storm::prism::Program const& modulesFile
27 , storm::generator::NextStateGeneratorOptions const & options
28 );
36 storm::prism::Program const& program
37 , storm::generator::NextStateGeneratorOptions const& generatorOptions = storm::generator::NextStateGeneratorOptions()
38 );
46 StateType getOrAddStateIndex(CompressedState const& state) override;
52 storm::storage::sparse::ModelComponents<ValueType, RewardModelType> buildModelComponents() override;
62 void buildMatrices(
63 storm::storage::SparseMatrixBuilder<ValueType>& transitionMatrixBuilder
64 , std::vector<RewardModelBuilder<typename RewardModelType::ValueType>>& rewardModelBuilders
65 , StateAndChoiceInformationBuilder& choiceInformationBuilder
66 , boost::optional<storm::storage::BitVector>& markovianChoices
67 , boost::optional<storm::storage::sparse::StateValuationsBuilder>& stateValuationsBuilder
68 ) override;
69 private:
70 /*
71 * Access to data members of parent class
72 * */
81 // Options for next state generators
83 // The model builder must have access to this to create a fresh next state generator each iteration
103 void connectAllTerminalStatesToAbsorbing(storm::storage::SparseMatrixBuilder<ValueType>& transitionMatrixBuilder);
104 /* Data members */
105 std::priority_queue<
107 , std::vector<ProbabilityStatePair<StateType>>
109 > statePriorityQueue;
110 uint64_t numberOfExploredStates;
111 uint64_t numberOfExploredStatesSinceLastMessage;
112 double piHat;
113 };
114 }
115}
116#endif // STAMINA_BUILDER_PRIORITYMODELBUILDER_H
Definition: ProbabilityState.h:91
Definition: StaminaModelBuilder.h:61
Definition: StaminaPriorityModelBuilder.h:16
storm::storage::sparse::ModelComponents< ValueType, RewardModelType > buildModelComponents() override
Definition: StaminaPriorityModelBuilder.cpp:129
StateType getOrAddStateIndex(CompressedState const &state) override
Definition: StaminaPriorityModelBuilder.cpp:40
void buildMatrices(storm::storage::SparseMatrixBuilder< ValueType > &transitionMatrixBuilder, std::vector< RewardModelBuilder< typename RewardModelType::ValueType > > &rewardModelBuilders, StateAndChoiceInformationBuilder &choiceInformationBuilder, boost::optional< storm::storage::BitVector > &markovianChoices, boost::optional< storm::storage::sparse::StateValuationsBuilder > &stateValuationsBuilder) override
Definition: StaminaPriorityModelBuilder.cpp:221
StaminaPriorityModelBuilder(std::shared_ptr< storm::generator::PrismNextStateGenerator< ValueType, StateType > > const &generator, storm::prism::Program const &modulesFile, storm::generator::NextStateGeneratorOptions const &options)
Definition: StaminaPriorityModelBuilder.cpp:11
Definition: ExplicitTruncatedModelBuilder.cpp:40
Definition: ProbabilityState.h:98