Temporal evidence

<< Click to Display Table of Contents >>

Navigation:  Using SMILE > Dynamic Bayesian networks >

Temporal evidence

To specify evidence for the plate nodes in the DBN, use DSL_nodeVal::SetTemporalEvidence. The code snippet below sets the temporal evidence in slices 5 and 7. The latter is virtual evidence.

int evidenceNodeHandle = …
DSL_nodeVal *val = net.GetNode(evidenceNodeHandle)->Val();

val.SetTemporalEvidence(5, 1); 1 is the 0-based outcome index

std::vector<double> virtEv(nodeOutcomeCount);

// fill in virtEv here

val.SetTemporalEvidence(7, virtEv);

To retrieve the temporal evidence, use DSL_nodeVal::GetTemporalEvidence. The method has two overloads, one for normal and another for virtual evidence.

Other useful methods are DSL_nodeVal::HasTemporalEvidence and IsTemporalEvidence, which check whether a node has any temporal evidence or temporal evidence in specified temporal order, respectively.