Artificial Intelligence II
CSE 5361 Section 001 Spring 2005
Proposal Due: April 12, 2005 (midnight).
Project Due: May 10, 2005 (midnight)
No late submissions accepted.
For the class project, you will design and implement the best-performing
wumpus-world agent possible. As part of this task, you must design and
implement an object-oriented class library in Java for one or more of the
AI techniques listed below and use them within your agent. Although the
primary goal is an awesome agent, a secondary goal is good object-oriented
design. In regards to changes in the wumpus simulator, there will still be
only one wumpus, but it can move. You may also want to include vision
and/or natural language capabilities to take advantage of the bitmap image
and natural language hint percepts.
There are many resources on the web for Java AI software, but a good
starting point is the website for the textbook at http://aima.cs.berkeley.edu. You are
welcome to use web resources as long as you clearly cite the source and
what contribution you made to them for your project work.
- Planning: This project would involve the implementation of a
class library for a planner (partial or total order). The planner class
would be instantiated with a set of operators, initial state and goal
state, and then called (with a search limit) to look for a plan, which can
then be used to achieve the goal state in the wumpus world.
- Uncertainty: This project would involve the implementation of a
class library for a decision-theoretic agent as described in Chapter 17 of
Russell and Norvig. First, you will need to implement a belief-network
inference mechanism. The decision-theory class would be instantiated with
an action model and a sensor model (i.e., belief network) and possible
actions. The decision-theory class would utilize a state class that
defines the state and its utility. Given evidence from the percepts, the
decision-theory class would compute the action maximizing expected utility.
- Learning: This project would involve the implementation of a
class library of one or more learning methods as described in Chapters
18-21 of Russell and Norvig. The details of the instantiations depend on
the learning method used, but typically, some initial examples are given,
and the learning method would return a rule to be used to guide the
wumpus-world agent. For example, you could learn to improve your
performance based on past experiences (action-percept examples), learn the
utilities of states from rewards, or learn to predict the movement of the
- Natural Language: This project would involve the implementation
of a class library for a natural language parser as described in Chapters
22 and 23 of Russell and Norvig. The parser class would be instantiated
with an augmented grammar and would be used to translate English sentences
into logical statements. The parser class can be used to translate the
natural language hints that are part of the wumpus-world simulator's
- Vision: This project would involve the implementation of a
class library containing methods for object recognition in binary images as
described in Chapter 24 of Russell and Norvig. The vision class would be
instantiated with a description of objects to look for and would be used to
determine which objects were present in a given image. The vision class
can be used to identify a wumpus, pit or gold in an adjacent room by
processing and image percept available from the wumpus-world simulator.
Project Details and Grading
On or before the above proposal due date, you should email to me
(email@example.com) a proposal of your class project. The project
proposal should indicate which of the above areas you plan to work on and a
more-detailed description of the functionality of your class library and
agent. I encourage you to submit your proposal as soon as possible to get
my okay and begin work.
In addition to the well-documented Java code of your class library and
agent implementations, you should also provide an electronic document
(MSWord, PDF, PostScript) describing the interface to your class library,
how it works, how you use it in your agent, and how well the agent performs
on a variety of worlds in the wumpus-world simulator. Your code should
compile and execute on the gamma2 machine. Also, your code should
generate output demonstrating the functionality of your project. Projects
will be graded based on their level of difficulty, correctness,
readability, efficiency, and performance in the wumpus world.