CSCI 335 - Artificial Intelligence

Fall 2011

Programming Assignment #1: Solving Mazes with A*

Overview

You will develop a series of search heuristics for solving a maze. You will be provided with the code for representing mazes and generating random mazes. You will develop a best-first search implementation, along with several heuristics. Mazes can be of different levels of "perfection", and they can also contain treasures that must be obtained. Here are the provided source files:

Programming Assignment

Implement the following heuristics: Here are some hints and tips to help you with your implementation:

Proofs

Experiments

For each heuristic, determine experimentally the "hardest" mazes that it can solve in two minutes or less using the Linux machines in the lab. If you would rather use your own computer, be sure to specify its clock speed. You will need to determine the "hardness" of mazes in the following categories:

For each experiment you run, record the values for each of the above parameters, as well as the number of nodes expanded, maximum depth reached, and effective branching factor for each heuristic. If the heuristic takes longer than two minutes, feel free to terminate it and record that, for that experiment, the heuristic took too long.

Paper

When you are finished with your experiments, you will write a short paper summarizing your findings. Include the following details in your paper:

Submit your code as well as your paper using Sauron.

Grading criteria

GradeContent
AProgram is working with all heuristics
Paper is complete
Analysis properly characterizes the basis of each claim
BOne or two heuristics have small bugs
The analysis is somewhat flawed
CProblematic bugs and/or somewhat incomplete or moderately flawed paper
DSevere bugs and/or multiple parts missing from paper
FProgram does not work at all and/or paper is not seriously attempted