119
правок
Изменения
Нет описания правки
Нам требуется найти <tex>P(X_t = i | O) = P(X_t = i | O_{1,t-1} \cap O_{t,T})</tex>. Поскольку будущее Марковской цепи не зависит от прошлого, мы можем утверждать, что вероятность того, что мы будем наблюдать события <tex>O_{t,T}</tex> не зависит от того, что в прошлом мы наблюдали последовательность <tex>O_{1,t-1}</tex>, и, следовательно:
<tex>P(X_t = i | O_{1,t-1} \cap O_{t,T}) = </tex> <tex dpi="180">\frac{P(X_t = i | O_{1,t-1}) \cdot P(X_t = i | O_{t,T})}{P(O)} </tex> <tex>=</tex> <tex dpi= "180">\frac{\alpha_{i}(t) \cdot \beta_{i}(t)}{P(O)}</tex>
=== Проход вперед ===
Теперь найдем вероятность того, что в момент <tex>t</tex> цепь будет в состоянии <tex>s</tex>:
<tex dpi="180">P(X_t = s | O) = P(X_t = s | O_{1,t-1} \cap O_{t,T}) = </tex> <tex dpi="180">\frac{P(X_t = s | O_{1,t-1}) \cdot P(X_t = s | O_{t,T})}{P(O)} </tex> <tex>= </tex> <tex dpi="180">\frac{\alpha_{s}(t) \cdot \beta_{s}(t)}{P(O)} </tex> <tex>= \\</tex> <tex>=</tex> <tex dpi= "180">\frac{\alpha_s(t)\cdot \beta_s(t)}{\sum_{i \in S}\alpha_s(t)\cdot \beta_s(t)}</tex>
== Псевдокод ==
alpha(s, t):
if (s, t) in fwd: return fwd[s, t]
return fwd[s, t]
beta(s, t):
if (s, t) in bkw: return bkw[s, t]
return bkw[s, t]
forward_backward(s, t):