16 for (
auto const& rewardModel : inputModel.getRewardModels()) {
17 newComponents.
rewardModels.emplace(rewardModel.first, rewardModel.second.restrictActions(enabledActions));
19 if (inputModel.hasChoiceLabeling()) {
20 newComponents.
choiceLabeling = inputModel.getChoiceLabeling().getSubLabeling(enabledActions);
22 newComponents.
stateValuations = inputModel.getOptionalStateValuations();
23 if (inputModel.hasChoiceOrigins()) {
24 newComponents.
choiceOrigins = inputModel.getChoiceOrigins()->selectChoices(enabledActions);
28 auto const& ma = *inputModel.template as<storm::models::sparse::MarkovAutomaton<ValueType, RewardModelType>>();
30 newComponents.
exitRates = ma.getExitRates();
31 return std::make_shared<storm::models::sparse::MarkovAutomaton<ValueType, RewardModelType>>(std::move(newComponents));
34 return std::make_shared<storm::models::sparse::Pomdp<ValueType, RewardModelType>>(std::move(newComponents));
37 "Unexpected model type for choice selector.");
38 return std::make_shared<storm::models::sparse::Mdp<ValueType, RewardModelType>>(std::move(newComponents));