資源簡介
這是我找的第四種實現HMM算法的代碼,希望對你有所幫助

代碼片段和文件信息
/*
@abstract(test?for?the?tutorial?on?hidden?Markov?models?)
@author(Nikolai?Shokhirev??
????????http://www.shokhirev.com/nikolai.html
????????http://www.u.arizona.edu/~nikolai/
????????http://www.chem.arizona.edu/~shokhirn/nikolai.html?)
@created(2006.02.02)
㎞ikolai?V.?Shokhirev?2003-2006
?2006.02.24?-?added?PosteriorDecodingIdxs
*/
//---------------------------------------------------------------------------
#include?
#pragma?hdrstop
#include?“fHMM.h“
//---------------------------------------------------------------------------
#pragma?package(smart_init)
#pragma?resource?“*.dfm“
TForm1?*Form1;
//---------------------------------------------------------------------------
__fastcall?TForm1::TForm1(TComponent*?Owner)
????????:?TForm(Owner)
{
}
//---------------------------------------------------------------------------
void?__fastcall?TForm1::Button1Click(Tobject?*Sender)
{
??int?N?=?2;
??int?M?=?3;
??int?K?=?3;
/*
?http://en.wikipedia.org/wiki/Viterbi_algorithm
states?=?(‘Rainy‘?‘Sunny‘)
observations?=?(‘walk‘?‘shop‘?‘clean‘)
start_probability?=?{‘Rainy‘:?0.6?‘Sunny‘:?0.4}
transition_probability?=?{
???‘Rainy‘?:?{‘Rainy‘:?0.7?‘Sunny‘:?0.3}
???‘Sunny‘?:?{‘Rainy‘:?0.4?‘Sunny‘:?0.6}
???}
emission_probability?=?{
???‘Rainy‘?:?{‘walk‘:?0.1?‘shop‘:?0.4?‘clean‘:?0.5}
???‘Sunny‘?:?{‘walk‘:?0.6?‘shop‘:?0.3?‘clean‘:?0.1}
???}
*/
??FArr1D?P0(N);
??P0(1)?=?0.6;
??P0(2)?=?0.4;
??FArr2D?A(NN);
??A(11)?=?0.7;?A(12)?=?0.3;
??A(21)?=?0.4;?A(22)?=?0.6;
??FArr2D?B(NM);
??B(11)?=?0.1;?B(12)?=?0.4;?B(13)?=?0.5;
??B(21)?=?0.6;?B(22)?=?0.3;?B(23)?=?0.1;
??//?(‘walk‘?‘shop‘?‘clean‘)
??IArr1D?Idxs(K);
??Idxs(1)?=?1;?Idxs(2)?=?2;?Idxs(3)?=?3;
??HMM?*?hmm?=?new?HMM(A?B?P0);
??Label1->Caption?=?“Forward:?“+FloatToStr(hmm->GetProbabilityF(Idxs));
??Label2->Caption?=?“Backward:?“+FloatToStr(hmm->GetProbabilityB(Idxs));
??IArr1D?S?=?hmm->ViterbiStateIdxs(Idxs);
??AnsiString?ss?=?“Viterbi?States:?“;
??for?(int?i?=?S.L1();?i?<=?S.H1();?i++)
????ss?+=?IntToStr(S(i))?+““;
??Label3->Caption?=?ss;
??//Output:??(“Sunny“?“Rainy“?“Rainy“)
??S?=?hmm->PosteriorDecodingIdxs(Idxs);
??ss?=?“Posterior?States:?“;
??for?(int?i?=?S.L1();?i?<=?S.H1();?i++)
????ss?+=?IntToStr(S(i))?+““;
??Label5->Caption?=?ss;
??delete?hmm;
}
//---------------------------------------------------------------------------
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2484??2006-03-15?15:42??HMMcpp\fHMM.cpp
?????文件???????2410??2006-03-15?15:06??HMMcpp\fHMM.dfm
?????文件???????1431??2006-03-15?15:43??HMMcpp\fHMM.h
?????文件???????4131??2006-03-15?15:43??HMMcpp\HMM.cpp
?????文件???????1131??2006-03-15?15:43??HMMcpp\HMM.h
?????文件???????4049??2006-03-15?13:50??HMMcpp\TestHMM.bpr
?????文件???????1056??2006-03-04?18:42??HMMcpp\TestHMM.cpp
?????文件???????4178??2006-03-15?16:15??HMMcpp\TestHMM.dsk
?????文件????????876??2006-03-04?18:17??HMMcpp\TestHMM.res
?????目錄??????????0??2006-03-15?16:21??HMMcpp
?-rw-r--r--???????227??2011-08-12?15:27??readme_verysource.com.txt
-----------?---------??----------?-----??----
????????????????21973????????????????????11
- 上一篇:航班訂票系統
- 下一篇:機電傳動控制機電傳動控制機電傳動控制試題
評論
共有 條評論