foundations of computational agents
Any standard belief-network algorithms, such as variable elimination, can be used to carry out monitoring or smoothing. However, it is possible to take advantage of the fact that time moves forward and that the agent is getting observations in time and is interested in its state at the current time.
In belief monitoring or filtering, an agent computes the probability of the current state given the history of observations. In terms of the HMM of Figure 8.12, for each , the agent wants to compute , which is the distribution over the state at time given the particular observation of . This is done using variable elimination:
Suppose the agent has computed the previous belief based on the observations received up until time . That is, it has a factor representing . This is just a factor on . To compute the next belief, it multiplies this by , sums out , multiplies this by the factor , and normalizes.
Multiplying a factor on by the factor and summing out is an instance of matrix multiplication. Multiplying the result by is called the dot product. Matrix multiplication and dot product are simple instances of variable elimination.
Consider the domain of Example 8.31. An observation of a door involves multiplying the probability of each location by and renormalizing. A move right involves, for each state, doing a forward simulation of the move-right action in that state weighted by the probability of being in that state.
Smoothing is the problem of computing the probability distribution of a state variable in an HMM given past and future observations. The use of future observations can make for more accurate predictions. Given a new observation, it is possible to update all previous state estimates with one sweep through the states using variable elimination; see Exercise 17.