• 大小: 7.87KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-02-01
  • 标签: 语言  HMM  C语言  

资源简介


资源截图

代码片段和文件信息

/*
**      File:   backward.cpp
**      功能:给定观察值序列和HMM模型,利用前向后向算法
**            求取其概率
*/

#include “StdAfx.h“
#include 
#include “hmm.h“

/***************************************************************************
** 函数名称:Backward
** 功能:后向算法估计参数
** 参数:phmm:指向HMM的指针
**       T:观察值序列的长度
**       O:观察值序列
**       beta:运算中用到的临时数组
**       pprob:返回值,所要求的概率
**/
void Backward(HMM *phmm int T int *O double **beta double *pprob)
{
int     i j;   /* 状态 */
int     t;      /* 时间下标 */
double sum;
 
 
/* 1. 初始化 */
 
for (i = 1; i <= phmm->N; i++)
beta[T][i] = 1.0;
 
/* 2. 递归 */
 
for (t = T - 1; t >= 1; t--) 
{
for (i = 1; i <= phmm->N; i++) 
{
sum = 0.0;
for (j = 1; j <= phmm->N; j++)
sum += phmm->A[i][j] * (phmm->B[j][O[t+1]])*beta[t+1][j];
beta[t][i] = sum;
 
}
}
 
/* 3. 终止 */
*pprob = 0.0;
for (i = 1; i <= phmm->N; i++)
*pprob += beta[1][i];
}

/***************************************************

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1919  2002-09-26 06:39  HMM的C语言实现(详细注释)\backward.cpp

     文件       4045  2002-09-26 05:15  HMM的C语言实现(详细注释)\baum.cpp

     文件       2280  2002-09-26 04:37  HMM的C语言实现(详细注释)\hmm.h

     文件        434  2002-09-26 05:27  HMM的C语言实现(详细注释)\hmmrand.cpp

     文件       4079  2002-09-26 05:42  HMM的C语言实现(详细注释)\hmmutils.cpp

     文件      10821  2002-09-26 04:19  HMM的C语言实现(详细注释)\nrutil.cpp

     文件       1448  2002-09-26 03:32  HMM的C语言实现(详细注释)\nrutil.h

     文件       3020  2002-09-26 06:07  HMM的C语言实现(详细注释)\viterbi.cpp

     目录          0  2009-04-17 10:37  HMM的C语言实现(详细注释)

----------- ---------  ---------- -----  ----

                28046                    9


评论

共有 条评论