next up previous

CSE 5361 Spring 1999

Homework 5

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 ( and try out the sample code. You will probably also want to read the Netica application manual ( 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 need them.

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 project.

Email to me ( 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.

next up previous