P(o|state) | Rainy | Sunny |
Walk | 0.1 | 0.6 |
Shop | 0.4 | 0.3 |
Clean | 0.5 | 0.1 |
p(state—>next_state) | Rainy | Sunny |
Rainy | 0.7 | 0.3 |
Sunny | 0.4 | 0.6 |
## prob. V. path V. prob.
T[state] = (sp[state], [state], sp[state])for output in y:
U = {}
for next_state in X:
total =0
argmax =None
valmax =0
forsource_state in X:
(prob, v_path, v_prob) = T[source_state]
p = ep[source_state][output] * tp[source_state][next_state]
prob *= p
v_prob *= p
total += prob
if v_prob > valmax:
argmax = v_path + [next_state]
valmax = v_prob
U[next_state] = (total, argmax, valmax)
T = U## apply sum/max to the final states:
(prob, v_path, v_prob) = T[state]
total += prob
if v_prob > valmax:
argmax =v_path
valmax =v_probreturn (total, argmax, valmax)几点说明:
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |