Homework Five

out Thursday 11/09, due Tuesday 11/21

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. There are binaries for Linux, Mac, and Windows, but the Windows binary require Cygwin.

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.

  1. Define this planning domain in Blackbox.
  2. 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.
  3. Turn in a print out of your domain, initial state, goal state, and trace of a successful run.
  4. 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?
  5. 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?
  6. 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.
  • 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

What to turn in:

Submit a single file to your Homework 5 repository (either ASCII text or PDF) with all of the output requested above.