Hide menu

Running VHPOP (SunOS)

How VHPOP Works

VHPOP is a partial-order planner. Partial-order planning is explained in section 10.4.4 of the course book. A point to note is that VHPOP can plan with fully instantiated (i.e. propositional) actions, or with partially instantiated actions (see the section Partial-order planning with unbound variables in the book).

Search in the partial-plan space is guided by two different heuristics, a plan ranking/evaluation function and a flaw selection strategy. The plan evaluation function guides the choice of which partial plan to elaborate, while the flaw selection strategy guides the order in which flaws in the partial plan are repaired. The two heuristics are in a sense complimentary: the plan evaluation function should select "promising" candiates, i.e. partial plans close to being finished or with an estimated high quality, while the flaw selection strategy should select the "hardest" plan flaw, or one whose repair will constrain choices of repairs for other flaws.

VHPOP implements several search algorithms and a lot of different heuristics. If plans found are guaranteed to be optimal or not depends on the particular heuristic used.

Input

VHPOP accepts PDDL/STRIPS input, some subset of ADL (including certain kinds of conditional effects) and actions with duration (but only fixed durations, as in e.g. the simple timed satellite domain.

Installation

The easiest way of accessing the VHPOP planner is to use the command module add /home/TDDC17/www-pub/info/labs/planning/planners.mod, which will include the correct directory in your path. After that, you can run it by just typing the planner's name.

Running VHPOP

VHPOP is started with the command
vhpop [-g] [-h <heuristic>] [-f <flaw selection>] [-s <search alg>] [-v] <domain file> <problem file>
More options are available, run vhpop --help for a summary.

The choices for heuristic and flaw selection strategy are legio. Examples of reasonable heuristics are "ADDR/BUC/LIFO" and "MAX_COST/FIFO" (the FOO/BAR notation means that FOO is the primary heuristic, and BAR is used to order plans that have the same score according to FOO).

Examples of flaw selection strategies are LCFR, ZLIFO and {n,s}LR/{o}MW_add. The first two favor flaws for which there are fewer possible repairs (this keeps the branching factor down), while the last combines this strategy with a preference for chosing actions with a low heuristic cost.

See the README file for a complete description.

There is also a script called ipc3-vhpop which runs vhpop with the settings used when it participated in the 2002 planning competition. The script takes only the domain and problem file as arguments.

Output

VHPOP produces very little output: by default, it will only print a comment with the problem name and then the plan (when found). If run with the option -v it provides a progres indicator as it searches.

Known Problems

It seems that VHPOP uses the same "namespace" for types, predicates and actions: thus, it's not possible to have e.g. a type and a predicate with the same name, which is the case in some of the example ADL domains.

Page responsible: Fredrik Heintz
Last updated: 2014-09-17