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 e_kp1t); }