|
||||
![]() Homework 5: Planningout Thursday April 19, due Monday April 30IntroductionThis exercise asks you to extend a simple blocks world model to add the ability to paint blocks with 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. Use his link to get your github repository. PDDLThe Planning Domain Definition Language (PDDL) is a language for defining planning domains and problems. It was initially developed to support the International Planning Competitions (IPC) 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 the directory. You might also find this tutorial on writing PDDL helpful, as well as these slides. The Blackbox PlannerBlackbox 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 OS X or use one we've installed on gl at ~finin/pub/blackbox. Extending the domain![]() Your hw5 github repository will contains initial 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 brushes and cans of paint. domain.pddl is a stub for the domain file and the p?.pddl files (e.g., p0.pddl) are stubs for problems. Here's a description of the domain and constraints. We've provided a standard, simple representation for the blocks world (on, on-table, clear, etc.) and its actions (pickup, putdown, stack and unstack). Additional types of objects you need to add include the following:
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 brush can be used to paint an object blue using blue paint from a pant can). Additional actions include:
Here are some constraints that your actions should enforce.
Your job is to complete domain.pddl by editing the new actions for painting to give them appropriate precondition and effect properties and then run the Blackbox planner on the the problems p0.pddl through p10.pddl. Note that the initial domain file as is will support planning problems that do not involve painting, such as the problem test2.pddl. See this session as an example. The Blackbox planner will find a solution if one exists and is also guaranteed to find a shortest possible solution as measured by the number of steps. If you are unable to find a solution to any of the problems, produce a plan that does not accomplish the goal state, or produce a plan that is not optimal, then look for a problem in your domain.pddl file or in the appropriate problem .pddl file. The shell files solveone and solveall will be useful in running blackbox over all of the problem files. In particular, once you have verified that your hw5_domain.pddl file produces good plans for all of the p*.pddl problem files, run the solveall script. This will call Blackbox on each problem file and write the plan found to a file named p*.pddl.out See the files in the sample_output directory for the plans we came up with. Your plans need not be exactly the same, but the probably should not be longer. planning.domainsYou may also find the tools on the planning.domains site useful. It hosts a collection of tools for working with planning domains, including an editor and simple solver. These make editing and debugging a pddl file easier and the solver works well too. The going to the editor page, uploading your domain file and a problem file and running the solver. Note the this is a heuristic solver that, unlike Blackbox, is not guaranteed to find a shortest plan. For the p4.pddl problem, for example, the planning.domains solver generates a plan with 32 steps where Blackbox finds one with just 17 steps. What to hand inCommit and push your modified domain file (hw5_domain.pddl), and p*.pddl.out files on github. |