CS 1571: Homework 10

Planning Algorithms (Chapter 11): Paper (100 pts)

Assigned: November 20, 2008 (by end of day)

Due: December 4, 2008

1. Partial Order (50 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

    Trace in detail how a partial-order regression planner finds a plan for this problem. This means show the various partial-order plans together with their ordering constraints and causal links.

    To get full credit, you should first - in words - describe each step in your plan space search. For example:

  • Step 0 The plan is created with only the start and goal states.
  • Step 1 The planner selects for a subgoal the precondition from the goal state. It then chooses the blah operator to satisfy this subgoal. It places the following ordering constraints and causal links. Etc.

    In addition, you should create a corresponding diagram representing the partial plan for each state.Here's one suggested notation, similar to that used in class. Use a labelled square to represent an operator. Use letters above the squares for preconditions and letters below for effects. Use single width arrow lines for ordering constraints, and double width arrow lines for causal links. (As discussed in class, not all ordering constraints need to be shown in the graph as causal links are assumed to be accompanied by a similar ordering constraint).

    1. STRIPS (50 pts)

    Assume a blocks world where ON(x,y) means that block x is directly on block y and Clear(x) means that the top of the block x is clear. The initial state is

  • ON(B,A), ON(A,C), ON(C,Table), On(D,Table), Clear(B), Clear(D) The goal condition is:
  • ON(C,B),On(B,A),On(A,D)

    Write two STRIPS operators for the following actions:

  • put-on(x,y) for stacking a block x on another block y
  • put-table(x) to put the block on the table

    As we search for the plan using forward (goal-progression) search. Descirbe the state we obtain after the operator put-table(B)