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.

- 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. - Follow the advice of the blackbox page and, after downloading the
Examples directory, try (from the command line):
- cd Examples/logistics-strips

./blackbox -o domain.pddl -f prob004-log-a.pddl