18 for (
auto const& rewardModel : inputModel.getRewardModels()) {
19 newComponents.
rewardModels.emplace(rewardModel.first, rewardModel.second.restrictActions(enabledActions));
21 if (inputModel.hasChoiceLabeling()) {
22 newComponents.
choiceLabeling = inputModel.getChoiceLabeling().getSubLabeling(enabledActions);
24 newComponents.
stateValuations = inputModel.getOptionalStateValuations();
25 if (inputModel.hasChoiceOrigins()) {
26 newComponents.
choiceOrigins = inputModel.getChoiceOrigins()->selectChoices(enabledActions);
30 auto const& ma = *inputModel.template as<storm::models::sparse::MarkovAutomaton<ValueType, RewardModelType>>();
32 newComponents.
exitRates = ma.getExitRates();
33 return std::make_shared<storm::models::sparse::MarkovAutomaton<ValueType, RewardModelType>>(std::move(newComponents));
36 return std::make_shared<storm::models::sparse::Pomdp<ValueType, RewardModelType>>(std::move(newComponents));
39 "Unexpected model type for choice selector.");
40 return std::make_shared<storm::models::sparse::Mdp<ValueType, RewardModelType>>(std::move(newComponents));