aima.core.probability.temporal.BackwardStepInference Maven / Gradle / Ivy
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);
}