Plannning with Blackbox
This homework assignment was taken from Jim Blythe of ISI at the University of Southern California. Here's the original assignment.
You will define a simple planning domain and run the Blackbox
planner. The Blackbox planner is available from here.
The domain we will define is a simple trucking domain, which has
three types of objects: trucks, cities and packages. Trucks are used
to transport packages from one city to another. Define a Blackbox
domain with three operators: "drive", "load" and "unload". A truck can
go directly from any city to any other city with a "drive"
operator. Each truck can transport just one package at a time from one
city to another. To load a package in a truck, the truck must be empty
and the truck and package must both be at the same city. When you
unload a package from a truck, it becomes empty again.
- Define this planning domain in Blackbox.
- Test your domain on a simple problem that requires moving a
package from one location to another. Make sure that the package is
not in two cities at the same time.
- Turn in a print out of your domain, initial state, goal state,
and trace of a successful run.
- Test your domain on problems that require moving 1, 5 and 10
packages from one location to another. Use the statistics reported
by Blackbox to see how long the planner takes for each of these
problems. What if you also increase the number of cities?
- Remove the restriction that a truck can only transport one
package at a time. How does it affect Blackbox's performance for the
different numbers of packages?
- Turn in a description of the behavior of Blackbox when you
increase the number of packages, cities, and trucks (assume no more
than 5 trucks).
Hints:
- The language that Blackbox accepts is PDDL. The best way to
understand the language is look at the Examples directory in the
Blackbox distribution. There are several versions of PDDL with
increasing expresive power:
PDDL 1.2,
PDDL 2.1 (the
latest version). You probably don't need to look at those specs for
this homework. You can consult a couple of tutorial pages:
PDDL
examples (from Manuela Veloso), and
writing PDDL (from Patrick Doherty).
- To get the Examples directory, you may have to download the source code (i.e., not the binary) distribution of BlackBox. When you unzip the file, you'll see a directory named Examples.
- To run blackbox use a command such as: blackbox -o myDomain.pddl -f myProblemDescriptor.pddl, where myDomain.pddl contains the description of the problem domain (names and argument lists of predicates, as well as constants). The myProblemDescriptor.pddl file defines the particular planning problem that should be solved within the specified domain.
- Follow the advice of the blackbox page and, after downloading the Examples directory, try (from the command line):
cd Examples/logistics-strips
blackbox -o domain.pddl -f prob004-log-a.pddl
Submit the results in electronic form to http://caddis.acad.emich.edu/~hwmatt/student.