aima.core.probability.bayes.Node Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aima-core Show documentation
Show all versions of aima-core Show documentation
AIMA-Java Core Algorithms from the book Artificial Intelligence a Modern Approach 3rd Ed.
package aima.core.probability.bayes;
import java.util.Set;
import aima.core.probability.RandomVariable;
/**
* Artificial Intelligence A Modern Approach (3rd Edition): page 511.
*
* A node is annotated with quantitative probability information. Each node
* corresponds to a random variable, which may be discrete or continuous. If
* there is an arrow from node X to node Y in a Bayesian Network, X is said to
* be a parent of Y and Y is a child of X. Each node Xi has a
* conditional probability distribution P(Xi |
* Parents(Xi)) that quantifies the effect of the parents on the
* node.
*
* @author Ciaran O'Reilly
*/
public interface Node {
/**
*
* @return the Random Variable this Node is for/on.
*/
RandomVariable getRandomVariable();
/**
*
* @return true if this Node has no parents.
*
* @see Node#getParents()
*/
boolean isRoot();
/**
*
* @return the parent Nodes for this Node.
*/
Set getParents();
/**
*
* @return the children Nodes for this Node.
*/
Set getChildren();
/**
* Get this Node's Markov Blanket:
* 'A node is conditionally independent of all other nodes in the network,
* given its parents, children, and children's parents - that is, given its
* MARKOV BLANKET (AIMA3e pg, 517).
*
* @return this Node's Markov Blanket.
*/
Set getMarkovBlanket();
/**
*
* @return the Conditional Probability Distribution associated with this
* Node.
*/
ConditionalProbabilityDistribution getCPD();
}