/// <summary> /// Define the truth table. /// </summary> /// <param name="network">The bayesian network.</param> /// <param name="result">The resulting probability.</param> public void DefineTruthTable(BayesianNetwork network, double result) { ParsedEvent childParsed = ChildEvent; BayesianEvent childEvent = network.RequireEvent(childParsed.Label); // define truth table line int[] args = GetArgs(network); childEvent.Table.AddLine(result, childParsed.ResolveValue(childEvent), args); }
/// <summary> /// Get the arguments to this event. /// </summary> /// <param name="network">The network.</param> /// <returns>The arguments.</returns> public int[] GetArgs(BayesianNetwork network) { int[] result = new int[givenEvents.Count]; for (int i = 0; i < givenEvents.Count; i++) { ParsedEvent givenEvent = this.givenEvents[i]; BayesianEvent actualEvent = network.GetEvent(givenEvent.Label); result[i] = givenEvent.ResolveValue(actualEvent); } return(result); }