This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: CSCI 460 Introduction to Artificial Intelligence Fall 2007 Project 2: A* Search Due: October 24, 2007 1 Introduction In this project, you are required to use C/C++ as the programming language to solve a navigation problem of a game character in a gridworld. You will be implementing the A* algorithm from scratch, and analyzing the behavior of the algorithm. 2 Project Description Consider gridworlds with square cells. Cells are either blocked or unblocked. The start cell of the game character is unblocked. The game character does not know which ones of the other cells are blocked. However, it always senses which of its four adjacent cells is blocked and remembers this information for later use. The game character can only move from its current cell to one of the four adjacent cells at each step, as long as that cell is unblocked. Its objective is to move from its start cell to a given goal cell. It does this by always moving on a shortest presumed unblocked path (measured in steps) from its current cell to the goal cell. A presumed unblocked path is a path that does not contain cells that the game character has observed as being blocked. It stops when it reaches the goal cell or there are no presumed unblocked paths from its current cell to the goal cell, in which case the game character cannot reach the goal cell. Note that the game character should 1 re-plan only immediately after it has observed its current path to be blocked. (See the paper referenced in Section 3.5 for a longer description of a similar navigation task.) Assume that the game character uses a version of A* to find the presumed unblocked paths. This version of A* uses a standard binary heap to imple- ment its priority queue (in case you need a refresher on binary heaps, please consult any undergraduate textbook on algorithms and data structures such...
View Full Document
This note was uploaded on 09/10/2008 for the course CS 460 taught by Professor Svenkoenig during the Fall '08 term at Urbana.
- Fall '08