Assigned: November 3, 2010
Due: November 17, 2010
Consider the following simple domain:
(a) State-Space Search: Draw the full search tree with a depth limit=2 in a forward progression state-space search (assume no repeated states). For full credit, be sure to show the list of predicates (or the equivalent graphical representation of the blocks) for each state, and explicitly label the actions that get you from one state to another (as in Figure 10.5). State whether your search finds a plan which achieves the goal, and why?
(b) Planning Graphs: Trace in detail how Graphplan starts finding a plan for this problem. You only need to show S0, A0, and S1 together with the arcs and mutexes (as in Figure 10.8). State whether or not EXTRACT-SOLUTION succeeds for this planning graph, and explain why.
(c) Partially Ordered Planning: Show the final plan that would be output by a partial-order regression planner for this problem (as in Figure 10.13c). Give an example of one linearization of the partial-order plan.
(d) Satisfiability: Convert a simplification of the domain described above - namely the same initial state, goal, but assuming only Operator O1 - into a SAT instance for finding a plan of length 1.
The aim of this question is (a) to practice modelling a problem using a formal language that can be understood by an automatic problem solver, in this case a planner, and (b) to give a feel for the capabilities and limitations of today's domain-independent planning technology.
(a) Problem Formulation (10 pts). Write PDDL sentences for Shakey's six actions and the inital state from Figure 10.14
(b) Implementation (20 pts). Construct a plan for Shakey to get Box2 into Room2. Turn in a printout of your domain, initial state, goal state, and trace of a successful run.
(c) Scaling (30 pts) First, identify two "parameters" in your domain that you can use to create a scale of increasingly difficult problems: Such parameters can be the number of objects of different sorts, the number of atoms specified in the problem goal, etc. For example, in the Logistics domain, one can vary the number of cities, the number of locations within each city, the number of packages that have to be moved, the number of packages that don't have to be moved (i.e. aren't mentioned in the goal), and so on.
Next, create a suite of at least 5 new problems (or more if you are having fun) in your domain by scaling up your chosen parameters. You should try different combinations, i.e. scaling up one parameter while keeping the other constant, increasing the other alone, and increasing both at the same time.
Run Blackbox on your problem suite and measure the time it takes to solve each problem. Note that as problems grow larger, it's often the case that planners don't find solutions in any reasonable amount of time, so use a cut-off time:of 5-10 minutes. Your experiments should result in a sort of graph, showing how the difficulty of solving the problems changes with the changes in problem parameters. Try to find the performance limit of the Blackbox planner: how big or complicated problems is it able to solve?
You should hand in a written description of your experimental setup (the problem parameters you chose, how you varied them etc.) and the results of the experiment, in the form of your graph.