package aima.core.probability.temporal;
import java.util.List;
import aima.core.probability.CategoricalDistribution;
import aima.core.probability.proposition.AssignmentProposition;
/**
* The BACKWARD operator
*
*
* bk+1:t = P(ek+1:t | Xk) ** * is defined by Equation (15.9).
* P(ek+1:t | Xk) * = ∑xk+1P(ek+1:t | Xk, xk+1)P(xk+1 | Xk) (conditioning on Xk+1) * = ∑xk+1P(ek+1:t | xk+1)P(xk+1 | Xk) (by conditional independence) * = ∑xk+1P(ek+1, ek+2:t | xk+1)P(xk+1 | Xk) * = ∑xk+1P(ek+1 | xk+1)P(ek+2:t | xk+1)P(xk+1 | Xk) ** * @author Ciaran O'Reilly * */ public interface BackwardStepInference { /** * The BACKWARD operator
* bk+1:t = P(ek+1:t | Xk) ** * is defined by Equation (15.9).
* P(ek+1:t | Xk) * = ∑xk+1P(ek+1:t | Xk, xk+1)P(xk+1 | Xk) (conditioning on Xk+1) * = ∑xk+1P(ek+1:t | xk+1)P(xk+1 | Xk) (by conditional independence) * = ∑xk+1P(ek+1, ek+2:t | xk+1)P(xk+1 | Xk) * = ∑xk+1P(ek+1 | xk+1)P(ek+2:t | xk+1)P(xk+1 | Xk) ** * @param b_kp2t * bk+2:t * @param e_kp1t * ek+1:t * @return bk+1:t */ CategoricalDistribution backward(CategoricalDistribution b_kp2t, List