RIFO

Removing Irrelevant Operators and Initial Facts from Planning Problems


The RIFO option inside IPP is based on the paper Nebel, Dimopoulos, and Koehler as published at ECP-97 and has been implemented by Michael Brenner extending the original code by Bernhard Nebel.

How RIFO works

To limit search to those facts and operators only, which are indeed necessary to generate a solution plan, most common planning systems start searching from the goals. Graphplan and IPP, however, build a "planning graph" starting from the initial facts. This has been a very successful approach, but can lead to ineffective graph expansion and search processes if the planning task specification contains irrelevant information.

RIFO tries to determine such irrelevant information (ground operators and initial facts) using a "backchaining" process and removes them from the planning task. While trying to reach the goals recursively, sets of possibly relevant objects and initial facts are built. In order to prevent this procedure from becoming a complete planning process a simple heuristics is used: Try to achieve ALL goals (AND nodes) by backchaining and branching on different ground operators (OR nodes), which achieve one of the goals. The process is repeated recursively using operator preconditions and effect conditions as new goals, which generates a so called "fact generation tree", in which potential conflicts between goals and operators are ignored.

Depending on the heuristic and union method chosen, different kinds of "possibility sets" of relevant objects and facts are created. These sets can be used in different ways to decide over relevance or irrelevance of ground operators and initial facts.

Using RIFO

To remove irrelevant information as a planning preprocess, start IPP with option -rr 1. Option -rr 2 stops IPP after RIFO and can be used to trace RIFO processing. As a default, RIFO will not be used (option -rr 0). All other RIFO options are listed when calling IPP with option -rh. A drawback of this RIFO implementation for conditional effects is the insufficient filtering of facts from the initial state. We do not do any filtering in order to guarantee soundness (otherwise interactions between conditional effects could remain undetected during search), but in fact more sophisticated filtering strategies (e.g. removing all facts not occuring in effect conditions) could be implemented.

Finetuning the Discovery of Irrelevants

RIFO provides different heuristics to remove irrelevants. Some are very powerful, reducing planning time by orders of magnitude (as shown below), but do not work in some cases, i.e. too many ground operators and initial facts have been removed such that the planning task becomes unsolvable. But since RIFO provides an efficient preprocessor and IPP usually terminates rather quickly on unsolvable planning problems, one possible way to use RIFO is to iteratively try out heuristics of decreasing degree of strength and to turn off RIFO only if all of them fail.

The higher the number the more powerful the heuristic, but also the more likely the heuristic is to fail. For domains that lead to a huge number of ground operators, it is surely useful to start RIFO with different heuristics before trying IPP alone. A good "meta heuristic" trying RIFO with a decreasing strength of parameters that has been used for testing in our group is the following:

ipp -rr 1 -rm 4 -rl 3
ipp -rr 1 -rm 3 -rl 3
ipp -rr 1 -rm 3 -rl 2
ipp -rr 1 -rm 3 -rl 1
ipp -rr 1 -rm 1 -rl 1
ipp -rr 0

Try those calls one after another until IPP finds a plan - usually this will happen during the first three calls.

A few Results: