CSE 5361 Spring 1999
Due: April 13, 1999, 7:00pm (April 14, 1999, 7:00pm for -10%)
For this homework you will be implementing the DT-AGENT in Figure
14.1 of Russell & Norvig for a scaled-down version of the wumpus world.
Specifically, you will be interfacing your wumpus world agent with a
decision network built using the API for the Netica decision network
programmer's library. Code for Netica is in the directory Netica in
the class directory on gamma2. See the README file for a
description of the files and subdirectories.
- Read the manual for the Netica API (NeticaAPIMan.ps) and try
out the sample code. You will probably also want to read the Netica
application manual (NeticaMan105.ps) and use the Windows 95/98/NT
version available in Netica_Win.exe. There are also a number of
sample decision networks in the Examples directory. The API you will
be using works on gamma2 and is in NeticaAPI_Sun.tar.gz and the
NeticaAPI directory. However, there are other versions there if you
- To reduce the amount of information you need to store in the decision
network, we will assume this agent works only in 4x4 worlds with no pits.
The decision network will represent state information about wumpus, gold,
stench, and glitter locations, as well as the agent's location, orientation
and gold count. These will all be chance nodes in your decision
network. You will also need a decision node, which can take on one of the
five actions: goforward, turnleft, turnright, grab and climb. You do not have to consider shoot. Finally,
you will need a utility node that collects information from the rest of the
network and assigns a utility value to each state. All of the above can be
defined through the Netica API.
- Your agent's process() function will use the percept to fix
stench and glitter nodes in your network. You can then ask the network for
the action maximizing expected utility. You should then adjust the agent
location and orientation nodes based on this action and return it. Your
agent's reset() function should reset the proper nodes in the network
back to their starting conditions (e.g., agent location and orientation,
known gold locations). Finally, if your agent is killed by the wumpus,
the done() function should fix the location of the wumpus.
- Your agent will be run against several 4x4 pit-free
multiple-gold-piece testworlds using at least 10 trials. You are welcome
to add more information into your decision network, but all actions should
be determined by the network and by no other means. This agent will not be
as good as your HW3 agent, but the issue here is to gain experience using a
decision network to drive the agent. If you are interested in building a
better, more complete decision-theoretic agent, this would be a good
- Email to me (email@example.com) all of your .hh and .cc
files. If your code requires any special compilation instructions, let me
know or send me your Makefile. Be sure your code is well-documented and
compiles using g++ on gamma2.