[发明专利]具有局部-整体约束的一次性近似模式匹配方法有效
申请号: | 201910530672.6 | 申请日: | 2019-06-19 |
公开(公告)号: | CN110232140B | 公开(公告)日: | 2021-03-02 |
发明(设计)人: | 武优西;菅博境;于磊;成淑慧;朱昌瑞;单劲松;刘靖宇 | 申请(专利权)人: | 河北工业大学 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F16/903 |
代理公司: | 天津翰林知识产权代理事务所(普通合伙) 12210 | 代理人: | 胡安朋 |
地址: | 300130 天津市红桥区*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 具有 局部 整体 约束 一次性 近似 模式 匹配 方法 | ||
1.具有局部-整体约束的一次性近似模式匹配方法,其特征在于:利用网树结构来解决(δ,γ)-距离下的一次性近似模式匹配问题,具体步骤如下:
第一步,确定网树的层数:
读入给定序列S,确定其长度为n,该序列S中的每个字符分别记作字符s1、字符s2、…、字符sn,读入给定模式P,确定其长度为m,该模式P的各个子模式分别记作子模式p1、子模式p2、…、子模式pm,这里0mn;根据给定模式P中的子模式数确定网树的层数,则网树共有m层,分别记作第1层、第2层、…、第m层;
第二步,创建一棵网树,并计算结点的树根路径数组和叶子路径数组
给定局部阈值δ和整体阈值γ,这里0≤δ≤γ,并根据上述第一步中的序列S和上述第一步中的模式P创建一棵网树,在该网树的第j层中,标签为i的结点记作与精确模式匹配不同,具有局部-整体约束的一次性近似模式匹配创建的网树中,每个结点需要记录字符si与子模式pj之间的δ-距离Dδ(si,pj),并且每个结点需要用大小为γ+1的树根路径数组来描述结点到达树根层的树根路径数数组下标为0,1,…,γ,当前结点到达树根层的路径中,γ-距离为d的树根路径数表示为并将其初始化为0,其中0≤d≤γ;在创建网树的过程中,根据各个结点的树根路径数组能够预先判断并删除网树中的无效双亲关系以及无效结点;同理,每个结点也需要用一个大小为γ+1的叶子路径数组来描述结点到达叶子层的叶子路径数数组下标为0,1,…,γ,当前结点到达叶子层的路径中,γ-距离为d的叶子路径数表示为同样将其初始化为0,其中0≤d≤γ;
具体处理方法如下:
对上述第一步中的给定序列S的字符si进行处理,并依次计算其与上述第一步中的给定模式P中的子模式p1、子模式p2、…、子模式pm之间的δ-距离Dδ(si,pj),其中1≤j≤m:
当Dδ(si,pj)δ,其中1≤j≤m,不需要在所创建网树的第j层创建结点
当Dδ(si,pj)≤δ,其中j=1,直接在所创建网树的树根层创建结点并通过公式(1)计算结点的树根路径数组
公式(1)中,d表示结点到达树根层的0到γ范围内的γ-距离,δ表示局部阈值,γ表示整体阈值,Dδ(si,p1)表示字符si与子模式p1之间的δ-距离;
当Dδ(si,pj)≤δ,其中1j≤m,则在所创建网树的第j层创建结点并在所创建网树的第j-1层的所有结点中,判断是否存在与结点满足间隙约束[minj-1,maxj-1]的双亲结点:当不存在与结点满足间隙约束[minj-1,maxj-1]的双亲结点时,删除结点当存在与结点满足间隙约束[minj-1,maxj-1]的双亲结点时,则把该双亲结点记作并通过以下方法,继续判断该双亲结点与结点之间能否建立双亲关系:
当则双亲结点和结点之间能够建立双亲关系,并通过公式(2)计算结点的树根路径数组
公式(2)中,d表示结点到达树根层的0到γ范围内的γ-距离,δ表示局部阈值,γ表示整体阈值,Dδ(si,pj)表示字符si与子模式pj之间的δ-距离,表示网树第j-1层中与结点满足间隙约束[minj-1,maxj-1],并且能够与结点建立双亲关系的双亲结点;
当则双亲结点与结点之间不能建立双亲关系;
依次遍历完网树的第j-1层的所有结点,并计算完结点的树根路径数组当则删除结点
对上述第一步中的给定序列S中的每个字符处理完毕,即创建完一棵网树;
在上述创建好的网树中,计算网树每个结点的叶子路径数组结点的叶子路径数组从叶子层开始计算:
对于叶子结点通过公式(3)计算其叶子路径数组
公式(3)中,d表示结点到达叶子层的0到γ范围内的γ-距离,δ表示局部阈值,γ表示整体阈值,Dδ(si,pm)表示字符si与子模式pm之间的δ-距离;
对于网树第j层结点当其存在孩子结点时,则把其孩子结点记作并通过公式(4)计算结点的叶子路径数组
公式(4)中,d表示结点到达叶子层的0到γ范围内的γ-距离,δ表示局部阈值,γ表示整体阈值,Dδ(si,pj)表示字符si与子模式pj之间的δ-距离,表示结点的孩子结点;
依次遍历完的所有孩子结点,则计算完结点的叶子路径数组
根据结点的树根路径数组通过公式(5)计算出结点的树根路径数根据结点的叶子路径数组通过公式(6)计算出结点的叶子路径数
公式(5)中,d表示结点到达树根层的0到γ范围内的γ-距离,γ表示整体阈值;
公式(6)中,d表示结点到达叶子层的0到γ范围内的γ-距离,γ表示整体阈值;
根据结点的树根路径数组和叶子路径数组通过公式(7)计算出结点的树根叶子路径数
公式(7)中,k表示结点到达树根层的Dδ(si,pj)到γ范围内的γ-距离,h表示结点到达叶子层的Dδ(si,pj)到γ+Dδ(si,pj)-k范围内的γ-距离,γ表示整体阈值;
在上述创建好的网树中,通过结点的树根叶子路径数计算结点的位置相关数RP(i),通过结点的树根路径数计算结点的路径分支数PB(i):
结点的位置相关数RP(i)是指,网树中所有标签为i的结点的树根叶子路径数之和,其通过公式(8)计算求得:
公式(8)中,m表示网树的层数,表示结点的树根叶子路径数;
结点的祖先集是指该结点到达树根层的所有路径上的结点组成的集合;一个结点集的共同祖先集是指该结点集中所有元素的祖先集的交集组成的集合;结点的路径分支数PB(i)是指在一个结点集D的共同祖先集A(D)中,标签为i的所有结点的树根路径数之和,其通过公式(9)计算求得:
公式(9)中,l表示共同祖先集A(D)的深度,表示结点的树根路径数;
第三步,利用网树结构来解决(δ,γ)-距离下的一次性近似模式匹配问题:
利用上述第一步和第二步构建的网树来解决(δ,γ)-距离下的一次性近似模式匹配问题,具体说是,网树中的一条树根叶子路径对应一条出现,寻找出现即在网树中寻找满足局部-整体约束的树根叶子路径,基于网树结构,采用启发式方法在网树中寻找满足局部-整体约束的树根叶子路径,该启发式方法为选用以下四种相似的寻找出现的策略中的任意一种:
第一种,最右双亲策略和贪婪搜索双亲策略:最右双亲策略是从叶子层的最后一个结点开始,在满足局部-整体约束的条件下,选择当前结点的最右双亲结点,贪婪搜索双亲策略是从叶子层的最后一个结点开始,在满足局部-整体约束的条件下,选择当前结点的最优双亲结点,其中,最优双亲结点是指位置相关数较小的双亲结点,当两个双亲结点的位置相关数同样小时,则在已有路径结点的共同祖先集中,选择路径分支数较大的双亲结点作为最优双亲结点;
第二种,最左双亲策略和贪婪搜索双亲策略:最左双亲策略是指从叶子层的第一个结点开始,在满足局部-整体约束的条件下,优先选择当前结点的最左双亲结点,此时,贪婪搜索双亲策略为从叶子层的第一个结点开始,在满足局部-整体约束的条件下,选择当前结点的最优双亲结点,其中,最优双亲结点是指位置相关数较小的双亲结点,当两个双亲结点的位置相关数同样小时,则在已有路径结点的共同祖先集中,选择路径分支数较大的双亲结点作为最优双亲结点;
第三种,最右孩子策略和贪婪搜索孩子策略:最右孩子策略是从树根层的最后一个结点开始,在满足局部-整体约束的条件下,优先选择当前结点的最右孩子结点,此时,贪婪搜索孩子策略为从树根层的最后一个结点开始,在满足局部-整体约束的条件下,选择当前结点的最优孩子结点,其中,最优孩子结点是指位置相关数较小的孩子结点,当两个孩子结点的位置相关数同样小时,则在已有路径结点的共同子孙集中,选择路径分支数较大的孩子结点作为最优孩子结点,此时,路径分支数需要通过结点的叶子路径数计算;
第四种,最左孩子策略和贪婪搜索孩子策略:最左孩子策略是从树根层的第一个结点开始,在满足局部-整体约束的条件下,选择当前结点的最左孩子结点,此时,贪婪搜索孩子策略为从树根层的第一个结点开始,在满足局部-整体约束的条件下,选择当前结点的最优孩子结点,其中,最优孩子结点是指位置相关数较小的孩子结点,当两个孩子结点的位置相关数同样小时,则在已有路径结点的共同子孙集中,选择路径分支数较大的孩子结点作为最优孩子结点,此时,路径分支数需要通过结点的叶子路径数计算;
由此利用网树结构完成了(δ,γ)-距离下的一次性近似模式匹配;
在显示器上输出上述第一步中的给定模式P在上述第一步中的给定序列S中的所有出现,即输出结果集OCC(S,P)中的所有出现,由此完成具有局部-整体约束的一次性近似模式匹配。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河北工业大学,未经河北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910530672.6/1.html,转载请声明来源钻瓜专利网。