package aima.core.probability; import aima.core.probability.proposition.Proposition; /** * Artificial Intelligence A Modern Approach (3rd Edition): page 484.
*
* A probability model on a discrete, countable set of worlds. The proper * treatment of the continuous case brings in certain complications that are * less relevant for most purposes in AI. * * @author Ciaran O'Reilly */ public interface FiniteProbabilityModel extends ProbabilityModel { /** * P(X,...)
* * @param phi * the propositions of interest. * @return all the possible values of the propositions φ. This is a * Vector of numbers, where we assume a predefined ordering of the * domain of the relevant random variables. */ CategoricalDistribution priorDistribution(Proposition... phi); /** * Get a conditional distribution. Example:
*
* P(X | Y) gives the values of P(X = xi | Y = * yj) for each possible i, j pair. * * @param phi * the proposition for which a probability distribution is to be * returned. * @param evidence * information we already have. * @return the conditional distribution for P(φ | evidence). */ CategoricalDistribution posteriorDistribution(Proposition phi, Proposition... evidence); /** * Get a distribution on multiple variables. Example, the product rule:
*
* P(X, Y) gives the values of P(X = xi | Y = * yj)P(Y = yj) for each possible i, j pair. * * @param propositions * the propositions for which a joint probability distribution is * to be returned. * @return the joint distribution for P(X, Y, ...). */ CategoricalDistribution jointDistribution(Proposition... propositions); }