# CS2710 / ISSP 2160: Homework 6

## Planning (Chapter 10)

Assigned: November 3, 2010

Due: November 17, 2010

### I. Classical Planning (40 pts)

Consider the following simple domain:

• Initial State: A, B, C
• Goal: C, D, E
• Operator O1 Preconditions: A; Add Effects: F; Delete Effects: C
• Operator O2 Preconditions: A; Add Effects: D; Delete Effects: B
• Operator O3 Preconditions: B; Add Effects: C
• Operator O4 Preconditions: F; Add Effects: D, E, G

(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.

### II. Shakey the Robot and Blackbox: Planning with graphs and SAT (60 pts)

Russell and Norvig 10.4 (p. 397-398), but actually run using the Blackbox planner. The Blackbox planner is available from here. Video clip: the real Shakey the robot from the SRI AI Center in 1969.

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.

### Blackbox 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.
• 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.
• After you compile the code, you need to copy the binary code "blackbox" to the same directory of the problem that you want to solve.
• 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.