

                               R W M
                               =====

What is RWM?
------------
RWM (Rwefinement With Macros) is an interactive system for learning
problem solving strategies. RWM incorporates two techniques, namely
Refinement and Macro Generation. The input to the RWM is the definition
of a problem, the output is a strategy for solving the given problem.
A strategy is a sequence of subproblems which are easier then the original
problem, and when solved in the the given order it yields a solution
for the original problem.


Where does it run?
------------------
This version of RWM has been implemented in Common Lisp, and tested in
Lucid Common Lisp 4.0. It should run without any difficulty in any
Common Lisp environment.


What files are included?
-----------------------
You must have the following files under the directory you have created
for RWM:

DDKB/
INPUTS/
OUTPUTS/
PROBLEMS/
README
print-stage-all.lisp
rwm.lisp

DDKB:            ; Some Domain Dependent Knowledge Bases
GENERIC.lisp
INC-3.lisp

INPUTS:          ; Example input commands for some problems
DOMINO
EIGHT
INS
MB-mc
MB-mx
MB-sg
MOD-3
PYRAMINX
RC-2
RM
THP-3

OUTPUTS:           ; Output strategies corresponding to inputs in INPUTS
DOMINO
EIGHT
INS
MB-mc
MB-mx
MB-sg
MOD-3
PYRAMINX
RC-2
RM
THP-3

PROBLEMS:             ; Example problem definitions
DOMINO.lisp
EIGHT.lisp
INS.lisp
MB.lisp
MOD-3.lisp
PYRAMINX.lisp
RC-2.lisp
RM.lisp
THP-3.lisp


How to start
------------

First start your lisp environment. Then compile 3 files (only once) as follows:
>(compile-file "rwm")
....
>(compile-file "DDKB/GENERIC")
....
>(compile-file "DDKB/INC-3")
....
Then load rwm as follows:
>(load "rwm")
....
To test the input sequences provided (e.g., RC-2: 2x2x2 Rubik's Cube) type:
>(load "INPUTS/RC-2")
.... trace of the learning proces ....
Then to quit type
>(quit)

Now, you will find a file called "output" in the RWM directory which is a log
of the learning process. This file must be the same as the file "OUTPUTS/RC-2".


How can I run rwm interactively?
-------------------------------
RWM commands are single letter function names. They are:
(i "problem-definition-file") : initialize rwm to the problem in the file.
(p n) : show the nth problem. The original problem is the 0th problem.
        if you create subproblems for operator preconditions they will be
        numbered 1, 2,  and so on.
(s n m) : show the mth stage of the nth problem.
(r n m) : refine the mth stage of the nth problem.
(m n m) : generate new macros for the mth stage of the nth problem.
(c n m '(o)) : create a new problem for the operator o to be used in solving
               the mth stage of the nth problem.
(x) : show the complete strategy and exit.


How can I learn more about RWM?
------------------------------
Some references:

H. A. Guvenir and G. W. Ernst, "Learning Problem Solving Strategies Using
Refinement and Macro Generation", Artificial Intelligence, Vol. 44, No. 1-2,
July, 1990. pp. 209-243.

H. A. Guvenir and V. Akman, "Problem Representation for Refinement", Mind and 
Machines, Vol. 2, No. 3, August 1992. pp 267-282.

H. A. Guvenir and G. W. Ernst, "A Method for Learning Problem Solving
Strategies", Proceedings of the AAAI Spring Symposium Series, Stanford
University, March 1988. pp 31-35.



