This is the base class for nodes in a belief network that are sampled using the Metropolis algorithm.
|
| GBNMetropolisNode () |
| General-purpose constructor. More...
|
|
virtual | ~GBNMetropolisNode () |
|
virtual double | currentValue () |
| Returns the most recent value sampled from this node. More...
|
|
virtual double | initMean ()=0 |
| This should return a value suitable to initialize the mean of the sampling distribution. It need only return any value with non-negligible probability. More...
|
|
virtual bool | isDiscrete ()=0 |
| This should return true iff this node supports only discrete values. More...
|
|
void | sample (GRand *pRand) |
| Draws a new Gibbs sample for this node given the current values of all other nodes it its Markov blanket. Uses the Metropolis algorithm to do so. More...
|
|
| GBNVariable () |
|
virtual | ~GBNVariable () |
|
virtual void | addCatParent (GBNCategorical *pNode, GBNNode *pDefaultVal)=0 |
| Adds a categorical node as a parent of this node. Calling this method will cause This node to resize its table of distribution parameters, so a default value is required to fill in new elements. Typically, you will set these new elements to something more meaningful after you call this method. More...
|
|
size_t | catCount () |
| Returns the total number of combinations of categorical values supported by the categorical parents of this node. This node is expected to specify a distribution for each of these categorical combinations. More...
|
|
const std::vector< GBNVariable * > & | children () |
| Returns all nodes that are known to depend on this one. More...
|
|
size_t | currentCatIndex () |
| Queries the categorical parent nodes to determine their current values, and combines them to produce a single index value that is unique for this combination of categorical values. The value this returns will be from 0 to catCount()-1. The values are organized in little-endian manner. That is, it cycles through all values supported by the first categorical parent before moving on to the next value of the next parent. More...
|
|
virtual double | likelihood (double x)=0 |
| Compute the likelihood of drawing the value "x" from the distribution represented in this node given the current values in all of the parent nodes. If "x" is not a supported value, then this should return 0.0;. More...
|
|
virtual void | onNewChild (GBNVariable *pChild) |
| This method links back to the child node that just added this node as a parent. More...
|
|
void | setObserved (double value) |
| Set this node to an observed value. After calling this, subsequent calls to sample will not change its value. More...
|
|
void | setUnobserved () |
| Set this node to an unobserved value. After calling this, subsequent calls to sample will draw new values for this node. More...
|
|
| GBNNode () |
|
virtual | ~GBNNode () |
|