维特比算法

# 状态转移矩阵
A = [[0.5, 0.2, 0.3],
[0.3, 0.5, 0.2],
[0.2, 0.3, 0.5]]
# 观测概率矩阵
B = [[0.5, 0.5],
[0.4, 0.6],
[0.7, 0.3]]
# 观测序列
pi = [0.2, 0.4, 0.4]

def a1():
t = 0
a = []
for i in range(len(pi)):
a.append(pi[i] * B[i][t])
return a
a = a1()
print(a)


def q(a, t):
b = []
for i in range(len(A)):
c = []
for j in range(len(A)):
c.append(A[j][i] * a[j])
b.append(max(c)*B[i][t])
print(b)
return b


d = q(a, 1)
d = q(d, 0)
posted @ 2022-10-31 10:41  记录——去繁就简  阅读(32)  评论(0)    收藏  举报