• 大小: 8KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: 其他
  • 标签:

资源简介

hmm好多算法.hmm好多算法.hmm好多算法.hmm好多算法.hmm好多算法.

资源截图

代码片段和文件信息

/*
**      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];
}

/***************************************************************************
** 函数名称:BackwardWithScale
** 功能:后向算法估计参数(带比例因子修正)
** 参数:phmm:指向HMM的指针
**       T:观察值序列的长度
**       O:观察值序列
**       beta:运算中用到的临时数组
**       scale:比例因子数组
**       pprob:返回值,所要求的概率
**/
void BackwardWithScale(HMM *phmm int T int *O double **beta 
double *scale double *pprob)
{
int     i j;   /* 状态指示 */
int     t;      /* 时间下标 */
double sum;
 
 
/* 1. 初始化 */
for (i = 1; i <= phmm->N; i++)
beta[T][i] = 1.0/scale[T]; 
 
/* 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/scale[t];
}
}
}

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

     目录          0  2005-04-02 19:33  hmm

     文件       1921  2005-04-02 19:11  hmm\backward.cpp

     文件       4048  2005-04-02 19:10  hmm\baum.cpp

     文件       2244  2005-04-02 19:12  hmm\forward.cpp

     文件       2278  2005-04-02 19:11  hmm\hmm.h

     文件        436  2005-04-02 19:11  hmm\hmmrand.cpp

     文件       4081  2005-04-02 19:11  hmm\hmmutils.cpp

     文件         37  2005-04-02 19:15  hmm\main.cpp

     文件      10823  2005-04-02 19:11  hmm\nrutil.cpp

     文件       1448  2002-09-26 03:32  hmm\nrutil.h

     文件       3022  2005-04-02 19:11  hmm\viterbi.cpp

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

                30338                    11


评论

共有 条评论

相关资源