Splot splitting has previously been proposed for splitting based on the type of action being acted upon, but this could be extended even further. A possible problem found in Ms. Pac-Man is lumping together the toGhost rules with edible toGhost rules, so if the agent chooses a bad toGhost rule, it ends up commiting suicide. This is fine for removing toGhost rules, but it also negatively affects the slot probability, which has an impact on edible toGhost rules.
An alternative is to split the slots in the first initial specialisation from the covering rule. So each specialisation (of a condition) of the rule becomes its own slot, which are again specialised. Technically this could go on and on, but then the policy becomes a task of finding the best rules in general. (Would that be so bad…? Yes. Because then it’s a brute force search). Granted there will be a larger number of slots, but the slot removal mechanic should deal with that.
Each of these specialised slots have a base condition to each of the rules in there (and the obvious base condition for the action in general). So for example, the toGhost rule will have a slot for rules where X is edible, blinking, not edible, not blinking. On a more general level, (moveTo X) can have a number of types associated with it (X can be dot, fruit, ghost…) and conditions (edible, blinking – each of which implicitly also imply X is a ghost). Note that conditions can also be negated, but types cannot (they COULD, but it seems a bit silly. Maybe best to talk over with Bernhard).
A problem with this system is that there WILL be double ups (if not more). And it is technically limited to splitting only once. However, type hierarchies can be taken advantage of and identical rules between slots could be linked as well. Or perhaps restrict rules to particular slots, using a placement heuristic (conditionalised rules go to condition slots? Or type slots? Gah. Who knows…).
I don’t think the double ups will be too damaging to the system, so they could probably be left alone.