Assignment 4: Implementing AI Software
(Additional details forthcoming)
CSE 415: Introduction to Artificial Intelligence
The University of Washington, Seattle, Winter 2009
This assignment is intended to give each student some experience working within the context of a larger program or with existing Python code. There are three options.
Option 1: Using the experimental package T-Star to implement an interactive problem-solving system. Create a T-Star "application" for solving the "Eight" puzzle interactively. This requires that you (a) download, install and study the T-Star package and the example applications of it (Missionaries and Cannibals; Blocks World), (b) create a node display method particular to the Eight puzzle, (c) create an appropriate set of operators for the Eight puzzle, and (d) integrate these into a T-Star application. Here is the T-Star download page and its documentation page. Optional for 10 percent extra credit: add an automatic search algorithm that uses A* search to solve the puzzle.
Option 2: Using an experimental package for Bayes Nets to implement a dynamic inference system. Design and implement a Bayes Net of 5 to 7 nodes that analyzes emergency data such as fire alarm reports, flooding (water level) data, or crime data. It should update the probabilities that various events occur, given the input data. Here is the link for version 0.1 of the Bayes Net Toolkit.
Option 3: Finding and analyzing a classic AI program, and building a GUI and simulator for it. Research one of the classical AI program mentioned below, using books or the Internet. Some classical AI programs: Newell and Simon's Logic Theory Machine, Lenat's AM (automated mathematician), Bobrow's STUDENT algebra word-problem solver, William Woods' LUNAR, and Winograd's SHRDLU. Also: Waltz labelling of line drawing using constraint satisfaction. Design a GUI for this program that would allow a user to get a clear view of what the program does. Implement it in Python and Tkinter. Without necessarily implementing any of the real logic of the program you choose, design and implement a "simulator" that will allow the GUI to be functional.
Turn in this assignment electronically using Catalyst CollectIt. The deadline is Friday (Feb. 27) at noon.