资源简介
代码片段和文件信息
/*
** 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
- 上一篇:约瑟夫(Joseph)问题求解
- 下一篇:c++ 检测文件是否存在
相关资源
- 精通UNIX下C语言编程及项目实践总结与
- 加权调度算法(C语言)
- crc16几种标准校验算法及c语言代码(
- 树莓派CAN通讯(c语言)
- FTP客户端源代码C语言
- C语言基数排序——顺序队列实现
- 256色转灰度图(c语言)
- 易语言:关键词去重复
- c语言实现一个简单的线程池(thread
- avl树的实现(c语言)
- C++实战源码-小蛇长得快
- C++实战源码-文字水平滚动
- C++实战源码-替换指定的字符串
- C++实战源码-小球称重
- C++实战源码-新同学的年龄
- C++实战源码-向数组中赋值
- C++实战源码-用#打印三角形
- C++实战源码-统计学生成绩分布
- C++实战源码-向数组中插入元素
- C++实战源码-用指向函数的指针比较大
- C++实战源码-用宏定义实现值互换
- C++实战源码-CD抓取
- C++实战源码-指定符号分割字符串
- C++实战源码-抓不住的兔子
- C++实战源码-用new动态创建结构体
- C++实战源码-将AVI动画分解成BMP位图
- C++实战源码-修改可执行文件中的资源
- C++实战源码-指向结构体变量的指针
- C++实战源码-将二维数组行列对换
- C++实战源码-应用random_shuffle算法将元
评论
共有 条评论