16.412J/6.834 Intelligent Embedded Systems


UCPOP Planning Software

Course Software

UCPOP is a backward-search, POP (partial-order planning) algorithm. Such algorithms are described in Ch. 11 of the Russell and Norvig course text.

Source code, along with instructions for running are provided here. The source code is in Common Lisp. It should be possible to run this source code on any Common Lisp system, including, the Franz Allegro Common Lisp available on LCS machines and on Athena. Example problems (fact and operator files) are included as well.

More details on UCPOP can be found at the UCPOP home web site .



Downloading and Running

First, download the source .
This is a .tar file.

Now do:

tar -xvf ucpop41.tar

(this extracts the sources and puts them into the dist sub-directory). Go to this subdirectory and open the file loader.lisp in an editor. Modify the parameter *ucpop-dir* so that it refers to the directory that the source is in (the dist directory). If you run Lisp from this directory, you can set this parameter to "".

Start Lisp. From an LCS Linux machine, do


(this starts Franz Allegro Common Lisp). Now do

(load "loader.lisp")

Then do





(in-package "UCPOP")
(bf-control 'sussman-anomaly)

This runs a simple test case. Loading loader.lisp automatically loads domains/domains.lisp. This defines a number of simple problems (like sussman-anomaly). More complex problems are also included in the domains sub-directory. The tire changing problem is in domains/tire-ctlr.lisp. To try this, just do:

(load "domains/tire-ctlr")
(bf-control 'fixit)

The tire-ctlr file also contains a number of easier problems that are easier than fixit (these are fix1, fix2, etc.). You may want to try these also.


Home | Announcements | Class-Readings | Final Project