
          Hybrid Algorithms for the Constraint Satisfaction Problem
                              Patrick Prosser

You will receive the files below. All files are in SCLisp 4.0, and were
developed using the Symbolic Programming Environment (SPE) - SPE 1.2
Development vehicle was a SPARCstation IPC. The algorithms that you are about
to receive are also described in the following papers:

 [1] P. Prosser "Hybrid algorithms for the constraint satisfaction
     problem", to appear in Computational Intelligence 9(3), 
     Autumn 1993 (previously technical report AISL-46-91)

 [2] P. Prosser "BM+BJ=BMJ" Proc CAIA-93, 257-262

 [3] P. Prosser "Domain filtering can degrade intelligent
     backjumping search" to appear in Proc IJCAI-93

 [4] P. Prosser "Forward checking with backmarking" Technical
     Report AISL-48-93, Dept CS, Univ Strathclyde, Scotland
 

readme
------
You are reading it right now!

demo.trace
----------
A "dribble" of a session. This shows you how to load up, create problems,
run tests, capture results, and retrieve results for analysis.

rep.lisp
--------
The representations, of variables, constraints, domains. All global
variables, and utility functions.

search.lisp
-----------
Search algorithms for the binary constraint satisfaction problem. All
algorithms find the first solution to a csp. Search algorithms are
bt (chronological backtracking), bm (backmarking), bj (backjumping),
fc (forward checking), gbj (graph-based backjumping), cbj
(conflict-directed backjumping), bmj (bm with bj), bm-cbj (bm with cbj), 
fc-cbj (fc with cbj), bj-d2c (bj with directed 2-consistency), fc-d2c
(forward checking with directed 2-consistency), cbj-dkc (conflict
directed backjumping with directed k-consistency), fc-cbj-dkc (forward
checking with conflict-directed backjumping, with directed k-consistency),
and a few others that have not been reported (such as bm-gbj).


fc-bm.lisp
----------
The latest algorithms, fc-bm and fc-bm-cbj, described in [4]

random.lisp
-----------
Code for generating, saving, and loading randomly generated problems

zebra.lisp
----------
The zebra problem, as described by Rina Dechter. By studying this file
you will see how to define your own csp's.

tests.lisp
----------
Functions for creating csp's, executing tests, capturing results onto
disc, retrieving results for later analysis.

width-nn.data
-------------
50 instantiation orders for the ZEBRA at bandwidth nn, for 16<=nn<=24.
These files may be used by functions in tests.lisp



There are no guarantees on this s/w, however if you have any
queries contact pat@cs.strath.ac.uk (Patrick Prosser)
