CSE630 Homework 4 Makeup: Partial-order Planning

Due: Must be submitted by Monday, November 27 at 11:59
1 point late penalty for each minute late

You may choose to hand it in manually by putting it in my mailbox by 5 pm Monday, November 27 (or when the mailboxes close, which may be sooner).

Your score will be added to the previous score; maximum credit for the combined sum will be 115.

Submit instructions:

Write up all of your answers in a text editor so that it can be submitted electronically. Put all of the files you want to submit in a directory on STDSUN, and submit it using the command:

> submit c630aa lab4_makeup (lab4_dir)

Where lab4_dir is the directory containing the files you want to submit.

  1. (30 points) You need to assemble a bicycle; currently the frame (including the pedals), the handlebars, the brakes, the wheels, and the chain are all separate; they need to be assembled. Here are the STRIPS operators;

    Action: PutOnWheel(wheel,frame)
    Precond: OffFrame(wheel,frame) ^ Wheel(wheel) ^ Frame(frame) ^ SprocketClear(wheel)
    Effects: ~OffFrame(wheel,frame) ^ OnFrame(wheel,frame)

    Action: PutOnChain(wheel,frame,chain)
    Precond: OnFrame(wheel,frame) ^ RearWheel(wheel) ^ Frame(frame) ^ Chain(chain) ^ SprocketClear(wheel) ^ OffFrame(chain,frame)
    Effects: ~OffFrame(chain,frame) ^ OnFrame(chain,frame) ^ ~SprocketClear(wheel)

    Action: PutOnHandlebars(hbar,frame)
    Precond: OffFrame(hbar,frame) ^ Handlebar(hbar) ^ Frame(frame)
    Effects: ~OffFrame(hbar,frame) ^ OnFrame(hbar,frame)

    Action: PutOnBrakes(wheel1,wheel2,hbar,frame,brakes)
    Precond: OnFrame(wheel1,frame) ^ OnFrame(wheel2,frame) ^ OnFrame(hbar,frame) ^ OffFrame(brakes,frame) ^ FrontWheel(wheel1) ^ BackWheel(wheel2) ^ Handlebar(hbar) ^ Frame(frame) ^ Brakes(brakes)
    Effects: ~OffFrame(brakes,frame) ^ OnFrame(brakes,frame)

    Note: I am leaving off a few things on purpose, like the fact that there shouldn't already be a rear wheel on the frame when you put the rear wheel on. I did that on purpose: encoding that would just make more busy work for you. Treat the STRIPS operators as given (but note any potential typos to me!).

    The start state is:
    Wheel(W1) ^ FrontWheel(W1) ^ Wheel(W2) ^ BackWheel(W2) ^ Handlebar(H1) ^ Brakes(B1) ^ Frame(F1) ^ SprocketClear(W1) ^ Chain(C1) ^ SprocketClear(W2) ^ OffFrame(W1,F1) ^ OffFrame(W2,F1) ^ OffFrame(H1,F1) ^ OffFrame(B1,F1) ^ OffFrame(C1,F1)

    a) What is the goal state?
    b) Draw a partial-order plan, showing all causal links (including predicates). You may abbreviate actions PutOnWheel as POW, etc, but keep predicates unabbreviated for clarity.
    c) Give a linearization for the plan in (b).