CS 472/572, Spring 1997

PROGRAMMING PROJECT #2

SOLVING 8-PUZZLES BY SEARCH

NEW Revised: 14 February 1997

  1. Write a Lisp program that can use a variety of search methods to solve 8-puzzles. The program should take as input an initial state, a goal state (or goal-state test), a search method, and (if appropriate) a heuristic function. You should use at least the following search methods:

    For best-first and for A*, you should use the three different hs that we discussed in lecture, namely:

    NEW For more information on this heuristic, see:

  2. For output, your program should be able to do at least the following 2 things:

    Note that the output can be character-based; i.e., it need not use any fancy graphics.

  3. For each search method and each heuristic function, analyze how efficiently it solves the problem.

  4. You should (preferably) write your entire program from scratch. However, you may instead decide to use (or modify) off-the-shelf algorithms. If you do, then, first, you must acknowledge and cite the source of these algorithms, and, second, you must do one of the following variations:

  5. As usual, your report should be in the form of a paper (e.g., a conference paper), with the annotated code and documented sample runs as an appendix, or embedded in the body of the paper, whichever seems more appropriate (a sample paper that you can use as a style guide is Shapiro, Stuart C. (1996), ``NimLearn: A Learning Nim Player''). For stylistic suggestions, see ``Instructions for Word-Processed or Typed Papers''.

NEW DUE AT START OF LECTURE, TUESDAY, MARCH 4


William J. Rapaport (rapaport@cs.buffalo.edu)
file: proj2.14fb97.html