public void InfluencedBy(BayesNetNode parent1, BayesNetNode parent2) { this.InfluencedBy(parent1); this.InfluencedBy(parent2); distribution = new ProbabilityDistribution(parent1.Variable, parent2.Variable); }
public BayesNetNode(string variable) { this.Variable = variable; this.Parents = new List <BayesNetNode>(); this.Children = new List <BayesNetNode>(); distribution = new ProbabilityDistribution(variable); }
public static double[] ask(Query q, ProbabilityDistribution pd) { double[] probDist = new double[2]; Dictionary <string, bool?> h = q.EvidenceVariables; // true probability h[q.QueryVariable] = true; probDist[0] = pd.ProbabilityOf(h); // false probability h[q.QueryVariable] = false; probDist[1] = pd.ProbabilityOf(h); return(Util.Util.Normalize(probDist)); }
public void InfluencedBy(BayesNetNode parent1) { this.AddParent(parent1); parent1.AddChild(this); distribution = new ProbabilityDistribution(parent1.Variable); }