摘要:示例代码下载:http://files.cnblogs.com/bottlebox/HmmPos.zip一、viterbi算法原理及适用情况 当事件之间具有关联性时,可以通过统计两个以上相关事件同时出现的概率,来确定事件的可能状态。以中文的词性标注为例。中文中,每个词会有多种词性(比如"希望"即是名字又是动词),给出一个句子后,我们需要给这个句子的每个词确定一个唯一的词性,实际上也就是在若干词性组合中选择一个合适的组合。动词、名词等词类的搭配是具有规律性的,比如动词+名词的形式是大量存在的,当我们看到句子"存在希望",如果确定了"存在"
阅读全文
摘要:注: 遗传算法属于标准的随机算法,绝大多数随机算法比如退火算法、蚁群算法都有可以归结为遗传算法的一种特殊形式。本文是从通用的思想方式去讲解及探讨,更着重于如何理解完善该算法,而对算法具体实现方式,请参考相关文档。 绝大多数问题我们都可把其归结为状态空间的搜寻及选择的问题,通常我们的做法是逐一遍历所有的状态空间,进行比较选择得到最优值。比对一个找最大值的问题,下面就是其代码for(int i=0;i<N;i++){ if(date[i]>Max) Max=date[i];} 思路就是对大小为N的状态空间就行遍历搜索。但很多时侯,状态空间N会是比较大,此时用这种方法,计算机也许几个世纪
阅读全文
摘要:009年5月18日15:1401背包问题描述:一个旅行者有一个最多能用M公斤的背包,现在有N件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为P1,P2,...,Pn.若每种物品只有一件求旅行者能获得最大总价值。方式一:遍历M*N的数组,对应下图包的总容量M=20,物品种类数N=5代码如下:const int nRes=5;//5种物品int nResWeight[nRes+1]={0,5,3,4,7,8};//每种物品对应重量int nResValue[nRes+1]={0,14,6,9,18,20};//每种物品对应价值const int nTotleW=20;//背包容.
阅读全文