维特比算法的c语言实现,HMM学习最佳范例六:维特比算法5

六、维特比算法(Viterbi Algorithm)

维特比算法程序示例

仍然需要说明的是,本节不是这个系列的翻译,而是作为维特比算法这一章的补充,将UMDHMM这个C语言版本的HMM工具包中的维特比算法程序展示给大家,并运行包中所附带的例子。关于UMDHMM这个工具包的介绍,大家可以参考前向算法4中的介绍。

维特比算法程序示例如下(在viterbi.c中):

void Viterbi(HMM *phmm, int T, int *O, double **delta, int **psi,int *q, double *pprob)

{

int i, j; /* state indices */

int t; /* time index */

int maxvalind;

double maxval, val;

/* 1. Initialization */

for (i = 1; i <= phmm->N; i++)

{

delta[1][i] = phmm->pi[i] * (phmm->B[i][O[1]]);

psi[1][i] = 0;

}

/* 2. Recursion */

for (t = 2; t <= T; t++)

{

for (j = 1; j <= phmm->N; j++)

{

maxval = 0.0;

maxvalind = 1;


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部