Expect Value™
TECHNICAL NOTES

Influencing Event Not in a Known State

In the course of an analysis, even experienced DPL users may encounter the message "Influencing Event Not in a Known State." This error can be roughly restated as "Your decision tree and your influence diagram don't agree." This note explains more about this common error and gives some insight into the relationship between decision trees and influence diagrams in DPL.

Default Trees

Every DPL analysis involves a decision tree. If you create an influence diagram without a corresponding decision tree, DPL will help out by creating one for you. This automatically-generated tree is known as the default tree. Default trees serve two purposes: they allow influence diagram fans to use DPL without learning a new tool and they serve as a starting point for users who want to create their own trees.

There are two points to keep in mind about default trees. First, DPL will never overwrite your tree with a default tree, so once you have changed the decision tree in any way, DPL will leave it alone. Second, you can get the default tree back by deleting the entire decision tree. To do this, Model | Build default tree. DPL will recreate the new default tree.

Get/Pay Expressions

When you run an analysis, DPL checks to make sure it has have enough information to evaluate each get/pay expression. For this to be true, values in a get/pay expression may only depend on events (decisions or chance nodes) that have already appeared in the tree (i.e., to the left of the get/pay expression). Consider the model below:

Figure 1 Figure 2

When this model is compiled, DPL's reasoning will be something like this:

  • I see a get/pay expression: Profit
  • Profit is Sales - Costs
  • Sales has 3 values, one for each state, as does Costs. When I need to calculate Profit, I will be at an endpoint and will know the state of both Sales and Costs.
  • OK

In contrast, consider this model:

Figure 1 Figure 3

Here the reasoning is:

  • I see a get/pay expression: Profit
  • Profit is Sales – Costs
  • Sales and Costs each have 3 values, one for each state
  • When I need to calculate Profit, I will know the state Sales is in, but I don't know which state Costs is in.
  • Error: 'Influencing Event "Costs" Not in a Known State'

This decision tree causes trouble because it doesn't have all the nodes that condition Profit. However, it is also a problem when all events are present in the tree but the get/pay expression comes too early in the tree. The model below also causes the error 'Influencing Event "Costs" Not in a Known State.'

Figure 1 Figure 4

Adding a Node

When you add a decision or chance node to your influence diagram, you need to make sure the node is included in the tree. If you haven't changed the tree yourself, then DPL will update the default tree to include the node. If you make make changes to the default tree that DPL considers structural (such as re-ordering nodes), DPL will not automatically update the default tree. If you haven't made any real changes to the tree, then delete it and let DPL create a new one.

If you have made true structural changes to the tree, then you need add decision/chance instances yourself to place the node in the appropriate place in the tree.

Asymmetric Trees

Making sure all conditioning events are in known states is more difficult when the tree is asymmetric. Once you make a tree asymmetric, DPL can no longer update it for you, so you will need to update it yourself.

Suppose you add an uncertainty about whether regulatory approval will be given to sell the product in the above model. If regulatory approval is denied, costs are the same and sales are zero. The model below shows one way to handle this:

Figure 5Figure 6

The node data for Sales is all zeros if "Approved?" is No. Suppose for efficiency's sake (which may be needed for large models linked to spreadsheets) you want to use asymmetry to decrease the number of paths to run in the tree. It's clear Sales does not need to be considered when regulatory approval is denied. The revised decision tree below reflects this:

Figure 7

While this seems reasonable, DPL will generate the error message 'Influencing Event "Sales" Not in a Known State' when you run it. The influence diagram indicates that calculating Profit requires both Sales and Costs. Of course, Sales are all zero when the product is not approved, but DPL cannot make this assumption.

The problem is the manner in which the "Approved?" event was included. In order to include "Approved?" in such a way that an assymetric tree can be used without generating an 'Influencing event not in a known state' error, a different approach is needed. Make Profit, rather than Sales, be influenced by "Approved?". Consider the new influence diagram below:

Figure 8

A blue arrow from "Approved?" to Profit allows you to enter a separate Profit expression for each state of "Approved?" Taking advantage of this, you may put in "-Costs" for No and "Sales-Costs" (the previous definition) for Yes. Now DPL's line of reasoning for the get/pay expression on the "Approved?" = "No" branch is:

  • I see a get/pay expression: Profit
  • "Approved?" is No, so Profit is -Costs
  • I know Costs
  • OK

DPL understands that Profit depends only on Costs when approval is denied, so it runs the model.

Tree-based Dependency Checking

Sometimes rearranging a model to avoid influencing event issues requires major changes. This is most often the case in models which have asymmetric trees linked to spreadsheets. For these situations, DPL provides an override switch. When you turn on "Tree-based dependency checking" in Tools | Options | Spreadsheet, DPL will assume that your decision tree structure defines the correct dependencies and will ignore any unsatisfied influence arcs. Use this switch with caution: you are turning off a safety feature, and if some paths in your tree omit nodes that matter, you could get incorrect results.

Copyright © 2003-2007 Syncopation Software