1#ifndef STAMINA_BUILDER_EXPLICITTRUNCATEDMODELBUILDER_H
2#define STAMINA_BUILDER_EXPLICITTRUNCATEDMODELBUILDER_H
9#include <boost/container/flat_map.hpp>
10#include <boost/functional/hash.hpp>
11#include <boost/variant.hpp>
17#include "storm/models/sparse/StandardRewardModel.h"
19#include "storm/builder/ExplicitModelBuilder.h"
21#include "storm/logic/Formulas.h"
22#include "storm/models/sparse/ChoiceLabeling.h"
23#include "storm/models/sparse/Model.h"
24#include "storm/models/sparse/StateLabeling.h"
25#include "storm/settings/SettingsManager.h"
26#include "storm/storage/BitVectorHashMap.h"
27#include "storm/storage/SparseMatrix.h"
28#include "storm/storage/expressions/ExpressionEvaluator.h"
29#include "storm/storage/prism/Program.h"
30#include "storm/storage/sparse/ModelComponents.h"
31#include "storm/storage/sparse/StateStorage.h"
33#include "storm/utility/prism.h"
35#include "storm/builder/ExplorationOrder.h"
37#include "storm/generator/CompressedState.h"
38#include "storm/generator/NextStateGenerator.h"
39#include "storm/generator/VariableInformation.h"
45using namespace storm::utility::prism;
46using namespace storm::generator;
47using namespace storm::builder;
50template<
typename ValueType,
typename RewardModelType = storm::models::sparse::StandardRewardModel<ValueType>,
typename StateType = u
int32_t>
60 ExplorationOrder explorationOrder;
76 storm::generator::NextStateGeneratorOptions
const& generatorOptions = storm::generator::NextStateGeneratorOptions(),
85 storm::generator::NextStateGeneratorOptions
const& generatorOptions = storm::generator::NextStateGeneratorOptions(),
95 std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>>
build();
114 StateType getOrAddStateIndex(CompressedState
const& state);
123 void buildMatrices(storm::storage::SparseMatrixBuilder<ValueType>& transitionMatrixBuilder,
124 std::vector<RewardModelBuilder<typename RewardModelType::ValueType>>& rewardModelBuilders,
125 StateAndChoiceInformationBuilder& stateAndChoiceInformationBuilder);
132 storm::storage::sparse::ModelComponents<ValueType, RewardModelType> buildModelComponents();
139 storm::models::sparse::StateLabeling buildStateLabeling();
142 std::shared_ptr<storm::generator::NextStateGenerator<ValueType, StateType>> generator;
148 storm::storage::sparse::StateStorage<StateType> stateStorage;
151 std::deque<std::pair<CompressedState, StateType>> statesToExplore;
155 boost::optional<std::vector<uint_fast64_t>> stateRemapping;
156 uint64_t numberOfExploredStates;
Definition: ExplicitTruncatedModelBuilder.h:51
ExplicitStateLookup< StateType > exportExplicitStateLookup() const
Definition: ExplicitTruncatedModelBuilder.cpp:123
std::shared_ptr< storm::models::sparse::Model< ValueType, RewardModelType > > build()
Definition: ExplicitTruncatedModelBuilder.cpp:74
ExplicitTruncatedModelBuilder(std::shared_ptr< storm::generator::NextStateGenerator< ValueType, StateType > > const &generator, Options const &options=Options())
Definition: ExplicitTruncatedModelBuilder.cpp:51
Definition: ExplicitTruncatedModelBuilder.cpp:40
Definition: ExplicitTruncatedModelBuilder.h:53
Options()
Definition: ExplicitTruncatedModelBuilder.cpp:45