隐马尔柯夫模型的一种面向对象的程序实现框架

隐马尔柯夫模型的一种面向对象的程序实现框架

ID:15901033

大小:2.59 MB

页数:5页

时间:2018-08-06

隐马尔柯夫模型的一种面向对象的程序实现框架_第1页
隐马尔柯夫模型的一种面向对象的程序实现框架_第2页
隐马尔柯夫模型的一种面向对象的程序实现框架_第3页
隐马尔柯夫模型的一种面向对象的程序实现框架_第4页
隐马尔柯夫模型的一种面向对象的程序实现框架_第5页
资源描述:

《隐马尔柯夫模型的一种面向对象的程序实现框架》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、隐马尔柯夫模型的一种面向对象的程序实现框架伟①赵荣椿②邓摘要在以C++语言作为程序设计语言的基础上,提出了一种用面向对象的程序设计方法来实现隐马尔柯夫模型的基本框架。按照这一框架实现的隐马尔柯夫模型能够很好地保护它自己不受未知的外部事件的影响,从而使它的数据和功能免遭破坏;而且对模型的改进以及程序实现上的变化也不会影响使用它的外部应用程序。此外,用这一方法编制的隐马尔柯夫模型程序具有很好的重用性和继承性。关键词隐马尔柯夫模型,面向对象的程序设计,类,中图分类号TP391TP311引言隐马尔柯夫模型,作为一种主要的信号统计模型,在信号处理、图像处理、模式识别等领域中有着广泛的应用。但

2、是隐马尔柯夫模型的数据元素众多,数学结构丰富,计算异常复杂,因此用传统的程序设计方法通常不能很好地实现这一模型。要高效、可靠地使用隐马尔柯夫模型,尤其是在大型应用软件系统中,就要用一种崭新的程序设计方法来实现它。面向对象的程序设计方法是导致软件构造发生一场革命的新方法,也是用来实现隐马尔柯夫模型的一种新的程序设计方法。本文在以C++语言作为程序设计语言的基础上,提出了一种用面向对象的程序设计方法来实现隐马尔柯夫模型的基本框架,即把隐马尔柯夫模型封装在一个类中。这个类既包含了表示模型特性的数据元素,又包含了用于求解隐马尔柯夫模型的三个基本问题的多个函数。由于这个隐马尔柯夫模型类为使用

3、它的各个应用程序提供了统一的功能接口,而实现这些功能的数据成员和成员函数对于各个应用程序是“不可见”的。隐马尔柯夫模型类的设计给出一个隐马尔柯夫模型类的C++语言描述,其中包括类中数据成员的定义和成员函数的定义,以此作为隐马尔柯夫模型的一种面向对象的程序实现框架。1.1隐马尔柯夫模型类中数据成员的定义一个隐马尔柯夫模型由5个数据元素唯一确定:1①西北工业大学博士生本文收到日期:1998-01-16②西北工业大学教授©1994-2013ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.http://www.

4、cnki.ne(1)模型中所包含的状态数目N。模型中所有的状态组成集合S={S1,S2,,SN}在时刻t的状态可用qt来表示。(2)每个状态所能产生的不同观测符号的数目M。所有的观测符号组成集合V={v1,v2,,vM}(3)状态转移概率分布A={aij},式中aij=P[qt+1=Sj

5、qt=Si]1Φi,jΦN观测符号概率分布B=式中(4){bij},bij=P[vjatt

6、qt=Si]1ΦiΦN,1ΦjΦM初始状态概率分布{Πi},式中(5)Πi=P[q1=Si]1ΦiΦN这5个元素必须包含在隐马尔柯夫模型类中作为它的数据成员,而且为了数据的安全性,应当把这些数据元素定义为类

7、的私有数据成员。为了使隐马尔柯夫模型类能够成为模型的本质的、抽象的描述,同时为了尽可能减小类的对象所占用的内存空间,在类中除了定义用于表示这5个数据元素的数据成员以外,不再定义用于存放中间计算结果的其它数据成员。此外,对于以上3个概率分布,在类中用3个指针变量加以表示,以便进行动态内存分配,这样就可以根据实际应用中所需要的模型大小恰当地生成模型。隐马尔柯夫模型类中数据成员的定义:intN;intM;float33A;float33B;float3PI;ƒƒthenumberofstatesinthemodelƒƒthenumberofdistinctobservationsymbo

8、lsperstateƒƒthestatetransitionprobabilitydistributionƒƒtheobservationsymbolprobabilitydistributionƒƒtheinitialstateprobabilitydistribution隐马尔柯夫模型类中成员函数的定义在隐马尔柯夫模型类中定义的成员函数用于实现模型的功能,即用于求解模型的3个基本问题。隐马尔柯夫模型的第一个基本问题是通过前向—反向过程来求解的。前向变量的递推计算公式为2Α1(i)=Πibi(O1)1ΦiΦN(1)N∑Αt(i)aijΑt+1(j)=bj(Ot+1)1ΦtΦT-1

9、,1ΦjΦN(2)i=1前向变量的递推计算过程结束以后,就可以按以下公式计算概率P(O

10、Κ)NP(O

11、Κ)=∑ΑT(i)(3)i=1可以通过递推公式计算反向变量ΒT(i)=11ΦiΦN(4)NΒt(i)=∑aijbj(Ot+1)Βt+1(j)1ΦtΦT-1,1ΦiΦN(5)j=1成员函数,这两个成员函数的函数原型:voidcomputealpha(float3currentalpha,float3nextalpha,intindex)voidcomputebeta(f

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。