Application Programmers Manual: Node Definition

From DSL

Jump to: navigation, search


The node's definition contains all the information about the nature of the node and describes the relationship with its parents. The definition is user-specified and static, meaning that the user has control over it only during the model building phase and that it does not change during the inference phase. The definition can be viewed as the "nature" of the node. For example, the definition of a discrete decision node will be a list of choices, whereas the definition of a discrete chance node will be a conditional probability table describing the probability of each of its states given each combination of states of its parents. From now on, we will use the terms "node type", "node definition type", and "node definition" interchangeably.

The library currently supports the following types of definitions (nodes):

  • Conditional Probability Table (DSL_CPT)

This node represents a discrete random variable with a set of states representing the possible outcomes of the variable. The definition consist of one list of vectors of numbers, one vector for each combination of outcomes of the parents, each vector containing the conditional probability distribution over the outcomes of the variable. This list of vectors is implemented using a DSL_Dmatrix class object. As an alternative, the probability distribution of the node can be encoded as a NoisyMAX (DSL_NOISY_MAX).

  • Truth Table (DSL_TRUTHTABLE)

This node represents a discrete deterministic variable with a set of states representing the possible outcomes of the variable. The definition consists of one list of vectors of numbers, one vector for each combination of outcomes of the parents, each vector containing the state of the node for the given combination of parents. The outcome of the node is represented in this vector by assigning 1 to the probability of that outcome and 0 to the probability of the rest of the outcomes.

  • Decision (DSL_LIST)

This node represents a discrete decision variable with a set of states representing the possible choices of the variable. The definition consists of a list of strings naming the choices.

  • Utility (DSL_TABLE)

This node represents a continuous utility function with discrete parents. The definition consists of a vector of numbers expressing the utility of each combination of outcomes of the parents. This node can only have discrete nodes as parents.

  • Multi-Attribute Utility (DSL_MAU)

This node represents a continuous linearly additive utility function, i.e. a linear combination of its parents. The definition consists on one vector of numbers, one number for each of the node's parents, each number being the weight associated with the corresponding parent. This node can only have continuous nodes as parents.

Personal tools