61 std::vector<StateType>
const& initialStateIndices = {},
62 std::vector<StateType>
const& deadlockStateIndices = {},
63 std::vector<StateType>
const& unexploredStateIndices = {})
override;
65 virtual std::shared_ptr<storm::storage::sparse::ChoiceOrigins>
generateChoiceOrigins(std::vector<boost::any>& dataForChoiceOrigins)
const override;
82 uint64_t getLocation(
CompressedState const&
state, LocationVariableInformation
const& locationVariable)
const;
87 void setLocation(
CompressedState&
state, LocationVariableInformation
const& locationVariable, uint64_t locationIndex)
const;
141 TransientVariableValuation<ValueType> getTransientVariableValuationAtLocations(std::vector<uint64_t>
const& locations,
158 Choice<ValueType> expandNonSynchronizingEdge(
storm::jani::Edge const& edge, uint64_t outputActionIndex, uint64_t automatonIndex,
161 typedef std::vector<std::pair<uint64_t, storm::jani::Edge const*>> EdgeSetWithIndices;
162 typedef std::unordered_map<uint64_t, EdgeSetWithIndices> LocationsAndEdges;
163 typedef std::vector<std::pair<uint64_t, LocationsAndEdges>> AutomataAndEdges;
164 typedef std::pair<boost::optional<uint64_t>, AutomataAndEdges> OutputAndEdges;
166 typedef std::pair<uint64_t, EdgeSetWithIndices> AutomatonAndEdgeSet;
167 typedef std::vector<AutomatonAndEdgeSet> AutomataEdgeSets;
169 void expandSynchronizingEdgeCombination(AutomataEdgeSets
const& edgeCombination, uint64_t outputActionIndex,
CompressedState const&
state,
170 StateToIdCallback stateToIdCallback, std::vector<Choice<ValueType>>& newChoices);
172 std::vector<EdgeSetWithIndices::const_iterator>
const& iteratorList,
179 void checkGlobalVariableWritesValid(AutomataEdgeSets
const& enabledEdges)
const;
184 std::vector<ValueType> evaluateRewardExpressions()
const;
189 void addEvaluatedRewardExpressions(std::vector<ValueType>& rewards, ValueType
const& factor)
const;
194 void buildRewardModelInformation();
199 void createSynchronizationInformation();
204 void checkValid()
const;
210 std::vector<std::reference_wrapper<storm::jani::Automaton const>> parallelAutomata;
213 std::vector<OutputAndEdges> edges;
216 std::vector<std::pair<std::string, storm::expressions::Expression>> rewardExpressions;
219 std::vector<storm::builder::RewardModelInformation> rewardModelInformation;
222 bool hasStateActionRewards;
225 bool evaluateRewardExpressionsAtEdges;
228 bool evaluateRewardExpressionsAtDestinations;
234 TransientVariableInformation<ValueType> transientVariableInformation;
virtual storm::models::sparse::StateLabeling label(storm::storage::sparse::StateStorage< StateType > const &stateStorage, std::vector< StateType > const &initialStateIndices={}, std::vector< StateType > const &deadlockStateIndices={}, std::vector< StateType > const &unexploredStateIndices={}) override
boost::container::flat_set< Key, std::less< Key >, boost::container::new_allocator< Key > > FlatSet
Redefinition of flat_set was needed, because from Boost 1.70 on the default allocator is set to void.