public bool isTrueFor(double probability, Dictionary <String, bool> modelBuiltUpSoFar) { Dictionary <String, bool> conditions = new Dictionary <String, bool>(); if (isRoot()) { conditions.Add(getVariable(), true); } else { for (int i = 0; i < parents.Count; i++) { BayesNetNode parent = parents[i]; conditions.Add(parent.getVariable(), modelBuiltUpSoFar[parent.getVariable()]); } } double trueProbability = probabilityOf(conditions); if (probability <= trueProbability) { return(true); } else { return(false); } }
public void influencedBy(BayesNetNode parent1, BayesNetNode parent2) { influencedBy(parent1); influencedBy(parent2); distribution = new ProbabilityDistribution(parent1.getVariable(), parent2.getVariable()); }
public void influencedBy(BayesNetNode parent1) { addParent(parent1); parent1.addChild(this); distribution = new ProbabilityDistribution(parent1.getVariable()); }