44 void abstract(BeliefType
const& belief, uint64_t localActionIndex, ExpandCallback
const& callback) {
46 std::map<RewardVectorType, BeliefBuilder<BeliefType>> splitBeliefs;
48 auto const globalActionIndex = pomdp.getTransitionMatrix().getRowGroupIndices()[state] + localActionIndex;
49 auto const& rewVector = actionRewardVectors[globalActionIndex];
50 splitBeliefs[rewVector].addValue(state, beliefValue);
53 for (
auto& [rewardVector,
builder] : splitBeliefs) {
58 auto const rewVectorIndex = rewardVectorToIndex.emplace(rewardVector, freshIndex).first->second;
59 builder.setObservation(belief.observation());
60 if (splitBeliefs.size() == 1u) {
65 callback(
builder.build(), std::move(val), rewVectorIndex, rewardVector);