資源簡介
代碼片段和文件信息
/*
**??????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++ 檢測文件是否存在
評論
共有 條評論