Notes on State Space Search Program
- This program is a generic depth-first state
program, with detection of duplicate states. It can be applied
to a domain by providing the functions goal?, failure?,
applicable? and apply-op, and the list of operators
- The program is recursive in two directions:
- Down: (sss new (cons s prev) *ops*)
This code tries to find a goal from the new state produced by
applying one operator to the input state. The input state is
added to the list of previous states, and all operators are
available to be tried (the global variable *ops* is a
list of all operators.).
- Across: (sss s prev ops)
This code tries search from the current state but using the next
operator, since the operator that was just tried did not work.