Homework Seven
out 11/16, due 11/25
Introduction
This exercise asks you to extend a simple blocks world model to add the ability to paint blocks using wither a sprayer or a paint brush and paint. After defining the domain in PDDL, you will use the blackbox planner to solve a set of problems expressed in PDDL.
PDDL
The Planning Domain Definition Language (PDDL) is a language for defining planning domains and problems. It was initiall developed to support the 1998 and 2000 International Planning Competitions (IPC). It was first developed by a group of researchers lead by Drew McDermott and has evolved with each IPC. read the description of PDDL 1.2 and a subsequent paper by Mcdermott on the 1998 IPC.
You can read more about PDDL here and find examples for various domains in thie directory.
The Blackbox Planner
Blackbox is a planning system that works by converting problems specified in PDDL into Boolean satisfiability problems, and then solving the problems with a variety of satisfiability engines. The front-end employs the graphplan system.
You can download a version of Blackbox here for windows, linux or mac os x.
An example of running blackbox on a simple air cargo domain and problem produced this output.
Extending the domain
This directory contains PDDL files for an extension to the classic blocks world domain in which objects can have a color and there are new action for painting objects using using paint sprayers, paint brushes and cans of paint. domain.pddl is a stub for the domain file and the p?.pddl files are stubs for problems.
Here's a description of the domain and constraints.
You should include a standard, simple representation for the blocks world (on, ontable, clear, etc) and its actions (pickup, putdown, stack and unstack). Additional types of objects include the following:
- Paint sprayers. Each sprayer can only paint in one color (e.g., red, green, blue).
- Paint cans. A paint can holds only only color of paint.
- Brushes. A brush can either be clean or loaded with paint of a particular color.
- Water bucket. A water bucket is used to wash brushes.
These three objects are like blocks in that they can be picked up, put down, stacked and unstacked. They can also be painted, although painting them only alters their surface (e.g., a red sprayer will continue to spray red paint even after the sprayer is painted blue).
Additional actions include:
- painting an object with a sprayer
- painting an object with a brush and can
- loading a paint with paint of a given color
- washing a brush, making it clean
Here are some constants that your actions should enforce.
- all of the usual actions and constraints of the blocks world (e.g., from here)
- there is a fixed set of colors: red, green, blue, yellow, ...
- in order to paint an object, that object must be on the table and clear
- Painting with a sprayer is easy -- just pick it up and spray.
- To paint something a color with a brush, it has to be loaded with paint of that color.
- To load a paint bush with a particular color, you have to be holding the brush, the brush must be initially clean and there has to be a paint can holding that color of paint which is clear. When a brush is loaded with a color it is not clean.
- To wash a brush, making it clean, you have to have a water bucket that has nothing on it (i.e., is clear) and you have to be holding the brush.
What to hand in
Submit a tar or zip file containing your PDDL files and the output showing the solution found by blackbox for each of the problem files, p1 through p6. submit the file by email, sending it to 671-homework@cs.umbc.edu. |