Course:COGS300/Utilities and Decisions

From UBC Wiki

Decision Networks

One important concept in COGS is decision networks. Understanding them and being able to build them is a necessary skill in order to model various real-life situations in which we want to optimize our choices to get the best outcome possible. In the following sections I will give a tutorial for making a simple decision network.

Our Basic Tools

6NmQP1d.gif We have our 3 basic nodes from top to bottom: Random Variable, Decision Variable and Utility. Arrows connect the nodes together to form our decision network.

A Real-World Application

Say you want to get yourself a cup of coffee. Your class has just ended and a Tim Hortons just so happens to be nearby. However, you've always been more of a Starbucks enthusiast, so you consider walking there. Unfortunately the nearest Starbucks is halfway across campus. You're very tired, and you really need your caffeine fix, but because you're so tired, you also feel you should treat yourself to your favourite Starbucks drink. What should you do?

We'll need the following variables:

  • Distance to Tim Hortons (HowFarTimHortons)
  • Distance to Starbucks (HowFarStarbucks)
  • Whether or not you want the treat (WantTreat?)
  • How tired you are (HowTired)
  • Whether you go to Tim Hortons (GoTimHortons)
  • Whether you go to Starbucks (GoStarbucks)
  • Utility

After carefully considering which variable affect which other variables, you could draw out something like the following:

ufmWPYD.png

Using the Belief and Decision Network app, you can create this network and have the app calculate your expected utility after you assign values to each node.

  • Does this work? Why or why not?
  • Does the decision depend on the distances, whether you want a treat or how tired you are?
  • What should be the parents of the utility?
  • Should there be two separate decisions?
  • Are there other variables that could be added to make the model simper?