Table of Contents
Lab 7: Bayesian Networks
In this session we will look at some basic Bayesian Networks and you will solve two problems using a Bayesian Network simulator.
Material
The following is a Java applet for Bayesian Network simulations:
Problem 1: Smelly Doors
You are writing a program to control a non-player character (NPC) in a game. The NPC is in a building full of doors. Behind each door, there is either a reward (e.g. health-points) or a monster which the NPC must fight with (losing health-points). Once the NPC opens a door, he must fight the monster behind it if any. However, before opening a door the NPC can stick its nose in the keyhole (it cannot look through it) and smell the air inside the room. The air will smell either bad or not. In summary:
- The NPC should seek reward but avoid monsters;
- The NPC doesn't know what's behind a door in advance, but…
- it can check whether the room smells bad or not and use that information as an indicator.
- Design a very simple Bayesian network usable by the NPC to decide when in front of a door, whether he should open it or not. Start by inventing reasonable probabilities for the relation between the contents of the room and its smell.
- Argue how, instead of using made-up probabilities, the NPC can learn as he opens doors and dynamically update the Bayesian network becoming smarter.
Problem 2: The Pirate Treasure
You are a seasoned tomb raider and have spent the last week rummaging through an old pirate cove full of treasure. So far you have opened 100 chests and of those, 50 have in fact contained treasure! Out of these 50, 40 were trapped and you sustained some painful damage from opening them. Out of these 40 trapped chests, 28 were also locked. Now, of the 10 untrapped chests, three were locked. One would think that only chests with treasure would be trapped, but these pirates were truly nasty, they also put traps on chests with no treasure. Of the 50 chests containing no treasure, 20 were trapped!
You have now discovered a new chest that you haven't seen before. When you take a careful look, you notice that it is locked. What is the chance that this chest will contain treasure? What is the chance that it will be trapped? You are not feeling so good after all the previous traps, so will it be worth opening this chest if your life is on the line?
Construct a Baysian Network to answer these questions and discuss what you would do.