package aima.core.probability.bayes; import java.util.List; import java.util.Map; import java.util.Set; import aima.core.probability.RandomVariable; /** * Artificial Intelligence A Modern Approach (3rd Edition): page 590.
*
* A dynamic Bayesian network, or DBN, is a Bayesian network that * represents a temporal probability model. In general, each slice of a DBN can * have any number of state variables XtEt. For simplicity, we assume that the variables * and their links are exactly replicated from slice to slice and that the DBN * represents a first-order Markov process, so that each variable can have * parents only in its own slice or the immediately preceding slice. * * @author Ciaran O'Reilly * */ public interface DynamicBayesianNetwork extends BayesianNetwork { /** * * @return a Bayesian Network containing just the nodes representing the * prior distribution (layer 0) of the dynamic bayesian network. */ BayesianNetwork getPriorNetwork(); /** * * @return the set of state variables representing the prior distribution. */ Set getX_0(); /** * * @return the set of state variables representing the first posterior slice * of the DBN. This along with X0 should represent * the transition model P(X1 | * X0). */ Set getX_1(); /** * * @return the X_1 variables in topological order. */ List getX_1_VariablesInTopologicalOrder(); /** * * @return a Map indicating equivalent variables between X0 and * X1. */ Map getX_0_to_X_1(); /** * * @return a Map indicating equivalent variables between X1 and * X0. */ Map getX_1_to_X_0(); /** * * @return the set of state variables representing the evidence variables * for the DBN. This along with X1 should * represent the sensor model P(E1 | * X1). */ Set getE_1(); }