RedOp

RedOp is (sort of) a domain analysis tool for planning. It finds and removes redundant operator instances, as described in the paper "Planning with Reduced Operator Sets" (Haslum & Jonsson, AIPS 2000). In the process, it also derives some static facts and uses these to simplify the domain and operators.

Note: RedOp is now (re-)implemented in the pddlcat tool, included in the HSP* planner package. The information below refers to the old implementation.

A Brief Manual

After compiling the program redop, it is used as follows:

redop [options] <domain file> <problem file>

The input domain and problem files should be PDDL. This produces as output the two files reduced.domain.pddl and reduced.problem.pddl, which contain the instantiated and reduced domain and problem description, again in PDDL. Interesting options are

-bound <n>
Sets the bound on the length of implementing sequences to <n>.
-nobound
Sets the bound on the length of implementing sequences to infinity.
-noreduce
Reduction is not done (only instantiation and simplification). When this option is used, the output files are named not_reduced.domain.pddl and not_reduced.problem.pddl.
-nodelete
The number of redundant operators found is reported, but no reduced domain written to file.
-nouseless
Useless operators (operators that have no effect) are normally removed from the domain: the -nouseless option prevents this.
-graphplan
The reduced domain and problem files are written in Graphplan syntax (named reduced.ops and reduced.fac, respectively).
-nomin
Disables the simplification part of instantiation. The implementation of this part contains many implicit assumptions about domain and operator structure, and is likely not to work if they are violated. If redop produces inexplicable error messages (or segmentation faults), this is the first thing to try.
-dkel
The problem definition is echoed to standard out, with DKEL annotations: Note: redop does not understand any form of DKEL input. Note also that although reduction is made on a ground instance of the problem, the echoed problem definition will appear as in the input (i.e. with objects, etc.)

QP: A Reduction-Based Planner

QP is an optimal planner based on a combination of the ideas of operator set reduction and the ideas behind the HSP* planner. It works as follows:
  1. The domain and problem are reduced, if possible.
  2. The reduced problem is solved, using essentially the HSP* Parastar planner. The solution (if one is found) is an upper bound on the optimal solution.
  3. The solution is optimized in the non-reduced domain, using branch and bound search and the derived upper bound.
The QP planner implementation no longer exists :(

Downloading

RedOp is available for download (gzip/tar, 57K).

It requires a C compiler (preferably gcc) and bison/flex. The software is messy and unstable, and no warranty of any kind is given for anything. Use it at your own risk.

Please send questions, comments, bug reports, etc. to one of my email addresses

Publications

Haslum, P, & Jonsson, P. Planning with Reduced Operator Sets. In Proc. 5th International Conference on Artificial Intelligence Planning and Scheduling, 2000. (c) AAAI Press.

/P@trik Haslum, July 2002