UCPOP

To try out UCPOP, follow these instructions:
  1. Download ucpop.tar.Z and uncompress it on your favorite UNIX workstation.

  2. Use an editor to look at interface.lisp and try to locate the following code:
    (define (search bf-control) (prob)
      (plan (problem-inits prob) (problem-goal prob)
            :rank-fun (problem-rank-fun prob)
            :flaw-fun (problem-flaw-fun prob)))
    
    Thus, notice that there appears to be a framework for defining planning approaches. Just like TWEAK, there is a plan function which takes initial and goal steps, along with additional flags. In this case, the flags specify ranking and flaw functions.

  3. Locate Lisp - Allegro Common Lisp would be best, since this is what was used in testing. Try typing "cl" and see what that gets you. Otherwise, you might want to contact the USC lab consultants and see which flavors of Lisp are available.

  4. Launch Lisp

       % cl
       Allegro CL 4.3 [SPARC; R1] (4/21/97 18:41)
       Copyright (C) 1985-1996, Franz Inc., Berkeley, CA
    
  5. Load the UCPOP bootstrapping functions.
    USER(1): :ld loader
    
    Notice that the prior step will reveal a warning about a quotes. Ignore that.

  6. Compile the system:
    USER(2): (compile-ucpop)
    

  7. Switch to the UCPOP package (recall that LISP has a notion of modules which provide organization as well as namespace protection):
    USER(3): :pa ucpop
    UCPOP(4):
    

  8. Now, there is already a domain and associated "problems" loaded (UCPOP refers to different scenarios as "problems" in a given domain). Try out the default briefcase domain problem "uget-paid" by typing:
    UCPOP(4): (bf-control 'uget-paid)
    
    Have a look at the results.

  9. Now, load the main domains file:
    UCPOP(5): :ld domains/domains
    

  10. Try out the Sussman-Anomaly problem, which is from the blocksworld domain we discussed in class.
    UCPOP(6): (bf-control 'sussman-anomaly)
    

Aludra Instructions

  1. Make sure you do this (best to put it in you .cshrc or something):
    % source /usr/usc/lisp/default/setup.csh
    
  2. Start up Lucid Common Lisp:
    % lisp
    
  3. Load the loader file, load UCPOP, and switch to the proper package:
    > (load "loader.lisp")
    (... stuff happens...)
    > (load-ucpop)
    (... lots of stuff happens ...)
    > (in-package 'ucpop)
    
  4. Now, you should be able to do the following and resume the above instructions:
    > (bf-control 'uget-paid)