给定盒子和球组成的隐马尔可夫模型习题10.1 - 图1,其中,习题10.1 - 图2
    设T=4,O=(红,白,红,白),试用后向算法计算习题10.1 - 图3


    解答:

    1. Q = [1, 2, 3]
    2. V = ['红', '白']
    3. A = [[0.5, 0.2, 0.3], [0.3, 0.5, 0.2], [0.2, 0.3, 0.5]]
    4. B = [[0.5, 0.5], [0.4, 0.6], [0.7, 0.3]]
    5. # O = ['红', '白', '红', '红', '白', '红', '白', '白']
    6. O = ['红', '白', '红', '白'] #习题10.1的例子
    7. PI = [[0.2, 0.4, 0.4]]
    8. HMM = HiddenMarkov()
    9. # HMM.forward(Q, V, A, B, O, PI)
    10. # HMM.backward(Q, V, A, B, O, PI)
    11. HMM.viterbi(Q, V, A, B, O, PI)

    delta1(1) = pi1 b1(o1) = 0.20 0.50 = 0.10
    psis1(1) = 0
    delta1(2) = pi2 b2(o1) = 0.40 0.40 = 0.16
    psis1(2) = 0
    delta1(3) = pi3 b3(o1) = 0.40 0.70 = 0.28
    psis1(3) = 0
    delta2(1) = max[delta1(j)aj1]b1(o2) = 0.06 0.50 = 0.02800
    psis2(1) = argmax[delta1(j)aj1] = 2
    delta2(2) = max[delta1(j)aj2]b2(o2) = 0.08
    0.60 = 0.05040
    psis2(2) = argmax[delta1(j)aj2] = 2
    delta2(3) = max[delta1(j)aj3]b3(o2) = 0.14 0.30 = 0.04200
    psis2(3) = argmax[delta1(j)aj3] = 2
    delta3(1) = max[delta2(j)aj1]b1(o3) = 0.02
    0.50 = 0.00756
    psis3(1) = argmax[delta2(j)aj1] = 1
    delta3(2) = max[delta2(j)aj2]b2(o3) = 0.03 0.40 = 0.01008
    psis3(2) = argmax[delta2(j)aj2] = 1
    delta3(3) = max[delta2(j)aj3]b3(o3) = 0.02
    0.70 = 0.01470
    psis3(3) = argmax[delta2(j)aj3] = 2
    delta4(1) = max[delta3(j)aj1]b1(o4) = 0.00 0.50 = 0.00189
    psis4(1) = argmax[delta3(j)aj1] = 0
    delta4(2) = max[delta3(j)aj2]b2(o4) = 0.01
    0.60 = 0.00302
    psis4(2) = argmax[delta3(j)aj2] = 1
    delta4(3) = max[delta3(j)aj3]b3(o4) = 0.01 * 0.30 = 0.00220
    psis4(3) = argmax[delta3(j)aj3] = 2
    i4 = argmax[deltaT(i)] = 2
    i3 = psis4(i4) = 2
    i2 = psis3(i3) = 2
    i1 = psis2(i2) = 3
    最优路径是: 3->2->2->2