CS470/570
Artificial Intelligence
Spring 2008
Project #3
Due: Friday, April 18th
For this project you need to write a Prolog agent to assist with playing Wumpus World. Based on
information you supply the agent should be able to tell you which squares are safe, contain neither a pit nor the
Wumpus, which squares are unsafe, may contain a pit or Wumpus, etc. Note that the agent does not have to pick
your next move, it simply says how safe a move is. Similarly, you do not have to write a program (Prolog or
otherwise) to play Wumpus World.
Rules: The Wumpus World rules are detailed in the text, page 197. Note that for this project the
Wumpus
World can be up to 50x50. We will not use the rule allowing you to fire an arrow and, hopefully, kill
the
Wumpus.
Requirements:
- You can tell the agent (probably using the assert predicate) where breezes, stenches, and glitters (from the gold)
have been detected.
- You can ask the agent whether a specific square is safe, contains neither a pit nor the Wumpus.
- You can ask the agent whether a specific square is unsafe, it may contain a pit or the Wumpus.
- You can ask the agent whether a specific square is deadly, it definitely contains a pit or the Wumpus.
- You can ask the agent whether a specific square is useless, it definitely doesn't contain the gold.
- You can ask the agent whether a specific square is promising, it may contain the gold.
- You can ask the agent whether a specific square is golden, it definitely contains the gold.
- The Wumpus World can be up to 50x50.
Hand-In:
You need to hand in a typed write-up containing the following:
- An abstract summarizing what you did and what the results were.
- An introduction explaining the basics of Wumpus world and logical programming.
- An algorithm section explaining your Prolog program. Including,
- How many of the tests are successfully implemented and any limitations of the program. Examples of
limitations might
include having trouble with edges or corners, knowing safe and deadly, but not unsafe, not having any predicates
for gold.
- A description of how rooms are represented, e.g by integer pairs, lists with two elements, each room is uniquely
named, etc.
- A description of the major predicates, what they test, and how they are used. E.g. explain how to use the
program to ask if a room is safe.
- An explanation of how information is added to the K.B. E.g. how do you tell the program that a breeze has been
detected?
- A results section. Including,
- Samples of the program's output. Show information being added to the K.B. and queries being asked. You should
illustrate the Wumpus world 'board' that goes with the queries so the reader can easily see that the program is reponding
correctly.
- A discussion of how the program behaved. Did it have any strengths or weaknesses?
- A conclusion section.