Mini Project 1: Hands-On Planning You may work with one partner if you choose to. --------------------------------------------------------------- In this project you will experiment with a planner of your choice. The first step of this project is to pick a planner to experiment with. Picking a Planner: ------------------ There are a number of publicly available classical planners, and you are free to pick any one (or more) of them to experiment with. A good choice would be the BlackBox planner as it has a reasonably well maintained distribution. You can find BlackBox at, http://www.cs.rochester.edu/u/kautz/satplan/blackbox/index.html There you can download BlackBox in pre-compiled form (a number of platforms) or the source. You can also download a number of example problem domains and problems. The language that Blackbox accepts is PDDL (a fancy way of specifying STRIPS schemas). The best way to understand the language is to look at the provided examples. However, for a formal description of the STRIPS subset of PDDL you can consult the following document: http://eecs.oregonstate.edu/ipc-learn/strips-pddl-subset.pdf Note that there have been many extensions to PDDL that handle more advanced features than simple STRIPS (e.g. durative actions, concurrency, numbers, etc), but those features are not necessary for this assignment. Note that BlackBox typically takes two PDDL files as input. One specifies the domain operators, and the other specifies the initial state and goal. Some other good choices of planners with available implementations are, SATPlan http://www.cs.rochester.edu/u/kautz/satplan/index.htm HSP (or HSPr) http://www.ldc.usb.ve/~bonet/#software GraphPlan, http://www-2.cs.cmu.edu/~avrim/graphplan.html I don't have much experience with these distributions, but generally they are quite straightforward to get running. PART I: Playing with Blocks --------------------------- Here you get to experience the blocks world first hand. 1) There are many ways to define the blocks world. Create two versions of the blocks world, by writing two different sets of action schemas (the two sets may involve different types of facts). Try to design one set of operators such that they will be more difficult to plan with than the other. You should provide me with the operator descriptions and a SHORT explanation about why you expect one set to be more difficult than the other. 2) Create three blocks world problems involving 10 blocks each. Try to design a "very easy" problem, a "very hard" problem, and an intermediate problem. You will probably want to consider the way your planner works when judging the hardness of a problem instance. You should provide me with a description of these three problems. Explain your intuition about the difficult of each. 3) Use your planner with each set of operators to solve each of the problems (a total of 6 experiments) and record the basic statistics such as planning time, plan length, and whatever else may be of interest. You should provide me with the statistics and an assessment of how "good" the plans looked for each case. Were your predictions about hardness correct? We will set a planning threshold of 5 minutes. So if your planner hasn't found a plan by that time it is considered a failure. If you find that the planner is failing on more than half of your problems, then you should decrease the number of blocks. PART II: -------- Create your own planning domain. Be creative. The only constraints are that it should easily incorporate parameters that control the hardness of the planning problem (for example in the blocks world the number of blocks is a hardness parameter). You should then evaluate your selected planner on your planning domain by varying the problem difficulty. The details of the evaluation are up to you. You should provide me with: 1) A concise description of your problem domain. 2) The action schemas for your problem domain. 3) Some sample from your domain. 4) A short evaluation of the planner's performance in your problem domain. Some questions that you might address are: The limits of the planner? Do the plans look "intelligent"? Why is the planner failing when it does fail? How does the planner scale with the problem difficulty? etc. All of the material should be submitted in in electronic format by email (afern@eecs.orst.edu). One project submission per team.