package aima.core.probability.temporal; import java.util.List; import aima.core.probability.CategoricalDistribution; import aima.core.probability.proposition.AssignmentProposition; /** * Artificial Intelligence A Modern Approach (3rd Edition): page 576.<br> * <br> * * Generic interface for calling different implementations of the * forward-backward algorithm for smoothing: computing posterior probabilities * of a sequence of states given a sequence of observations. * * * @author Ciaran O'Reilly * */ public interface ForwardBackwardInference extends ForwardStepInference, BackwardStepInference { /** * The forward-backward algorithm for smoothing: computing posterior * probabilities of a sequence of states given a sequence of observations. * * @param ev * a vector of evidence values for steps 1,...,t * @param prior * the prior distribution on the initial state, * <b>P</b>(X<sub>0</sub>) * @return a vector of smoothed estimates for steps 1,...,t */ List<CategoricalDistribution> forwardBackward( List<List<AssignmentProposition>> ev, CategoricalDistribution prior); }