[发明专利]一种基于Viterbi算法的确定指令的方法有效
申请号: | 201910971882.9 | 申请日: | 2019-10-14 |
公开(公告)号: | CN110737268B | 公开(公告)日: | 2022-07-15 |
发明(设计)人: | 苏丽;迟泰宇;张智;朱齐丹;秦绪杰 | 申请(专利权)人: | 哈尔滨工程大学 |
主分类号: | G05D1/02 | 分类号: | G05D1/02 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 150001 黑龙江省哈尔滨市南岗区*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 viterbi 算法 确定 指令 方法 | ||
1.一种基于Viterbi算法的确定指令的方法,其特征在于,包括以下步骤:
步骤一:将指令库与模型中的标号进行映射并利用指令库集合训练出模型,包括:根据任务要求构建一个指令集合,此指令集合包含三个指令库,每个指令库包含该任务所有可能用到的指令;对隐马尔可夫模型进行初始化,即赋初值给π=(πi),其中π为初始概率矩阵,i为第i状态;
利用Baum-Welch算法对人工构建的指令集合进行训练,得到隐马尔可夫的模型λ=(A,B,π),其中A=[aij]N*N为状态转移概率矩阵,N是可能的状态数,aij为第i个状态转移到第j个状态的概率,B=[bj(k)]N*M为观测概率矩阵,M为是可能的观测数,加上一个具体的状态集合Q={q1,q2,q3,...,qN}和观测序列V={v1,v2,v3,...,vM},则构成了隐马尔可夫模型的五元组,即λ=(A,B,π,Q,V),其中Q对应指令库集合,qi对应具体的指令库,其中1iN,N为指令库长度;V对应观测到的具体的指令集合,vj对应具体的指令,其中1jM,M为具体的指令长度;
I=(i1,i2,...,iT)指令库顺序,是长度为T的状态序列;O=(o1,o2,...,oT)是对应的观测序列即具体的指令顺序,πi=P(i1=qi),i=1,2,...,N是时刻t=1处于状态qi的概率,aij=P(it+1=qj|it=qi),i=1,2...N;j=1,2,...,N是在时刻t处于状态qi的条件下在时刻t+1转移到状态qj的概率,bj(k)=P(ot=vk|it=qj),k=1,2...,M;j=1,2,...,N是在时刻t处于状态qj的条件下生成观测到的具体的指令集合V中的第k个指令vk的概率;
步骤二:根据序列的实际情况将模型的初始值转换为Viterbi算法需要的首步值;
步骤三:根据首步的初始值进行递推并更新路径信息,包括:
以步骤二得到的序列初始值作为递推起点,利用公式进行递推,具体为:首先计算第一步所有可能值,设置一个中间变量Prob并赋予初值零,保留每一步的计算结果,并在此过程中选择前一状态的最优概率,并将此概率保存到数组V中;
新建二维数组path其中行数为状态的个数,列数为序列的长度,该数组保存历史的最优隐序列,在每步求解时均新建二维数组newpath,newpath的列数和维数与path相同,该数组保存当前步骤解的隐状态即指令库的序号,其初值来自于数组path,根据上一步计算的概率值确定当前的较优解,并以此修改path中的隐状态;
步骤四:递推终止并回溯最优路径;
步骤五:根据解码得到的状态序列推断下一刻的状态。
2.根据权利要求1所述的一种基于Viterbi算法的确定指令的方法,其特征在于:步骤二具体包括:
将步骤一得到的隐马尔可夫模型利用Viterbi进行解码:首先构建二维数组V用于存储每步的选择概率,利用初始概率π=(πi)对第一时刻状态为i的路径进行初始化,具体公式如下:
δ1(i)=πibi(o1),i=1,2,...,N。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工程大学,未经哈尔滨工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910971882.9/1.html,转载请声明来源钻瓜专利网。