Algoritmo de avance-retroceso

El objetivo es por tanto calcular eficientemente

Probabilidad de una secuencia

de estados Supongamos una secuencia de estados

La probabilidad de esta secuencia es:

dada una secuencia de estados

La probabilidad de observar

cuando se da precisamente esta secuencia de estados

Por tanto, para obtener la probabilidad de una secuencia

de observables dado un modelo

, deberíamos calcular la probabilidad de

para cada una de las secuencias posibles

tal y como se muestra es impracticable; sólo para

observaciones sería necesario realizar del orden de

Para reducir esta complejidad se emplean estrategias de programación dinámica como los algoritmos forward y backward.

Se recomienda revisar la formalización habitual de un Modelo Oculto de Márkov para comprender cada uno de los elementos en la formulación de estos dos procedimientos.

es la probabilidad de observar

y estar en el instante de tiempo

{\displaystyle \alpha _{t+1}(j)={\biggl [}\displaystyle \sum _{i=1}^{N}{\alpha _{t}(i)a_{ij}}{\biggr ]}b_{j}(o_{t+1})}

{\displaystyle P(O|\mu )=\displaystyle \sum _{i=1}^{N}{\alpha _{T}(i)}}

El esquema muestra los estados y probabilidades necesarias para el cálculo de

hasta el final, cuando el estado en el instante de tiempo

{\displaystyle \beta _{t}(i)=\displaystyle \sum _{j=1}^{N}{a_{ij}\beta _{t+1}(j)b_{j}(o_{t+1})}}

El esquema muestra los estados y probabilidades necesarios para el cálculo de

Tanto el procedimiento hacia adelante como el algoritmo backward, requieren del orden de

operaciones; muy inferior a

es el número de estados y

es la longitud de la secuencia de observaciones) que son necesarias si se calcula

para todas las posibles secuencias

servirán - junto a los

- para contestar las otras dos preguntas fundamentales de los Modelos Ocultos de Márkov: