- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析一种基于前缀节点的频繁子图挖掘算法.doc
浅析一种基于前缀节点的频繁子图挖掘算法
摘 要:基于频繁子树挖掘算法中的前缀节点思想,将模式图分为图核—分支—连接向量三个部分,提出了CBE算法。对在分支上扩展得到的候选模式图,CBE算法能够在常数时间内完成规范化判定。通过实验证明CBE算法的子图挖掘效率有显著提高。
关键词:数据挖掘;频繁子图;同构类;规范化形式;前缀节点
Frequent subgraphs mining algorithm based on prefix node
LI Hai-bo,ultimedia, School of puter Science Technology, Huazhong University of Science Technology, ethod in frequent tree mining algorithms, adopting core-braches-connecting vector partition on graphs, this paper provided a ne CBE. The CBE algorithm could acplish canonical determining in constant time on candidate pattern graphs expanded from branches. Performance testing proves that the efficiency of subgraphs mining is improved by CBE algorithm.
Key ining; frequent subgraph; isomorphism class; canonical form; prefix node
在化学信息学、生物信息学、网络结构分析等领域,频繁子图挖掘算法是一个热点研究问题。与其他的频繁模式挖掘算法类似,一般的频繁子图挖掘算法都分为候选模式生成和模式频繁判定两步[1]。在频繁子图的挖掘过程中,会生成大量的候选模式图。对每一个新产生的候选模式图,在进行频繁判定之前,都要首先判断它与前面产生的模式图是否同构。而图的同构判定是一个复杂度介于P与NP之间的问题[2~5]。受此限制,目前出现的子图挖掘算法的效率还不是很高,特别是与频繁子树挖掘算法相比。频繁子树的挖掘也会生成大量的候选模式树,但基于一种称为前缀节点的方法,可以在常数时间内解决候选模式树的同构判定问题。
本文针对这种情况,基于频繁子树挖掘算法中的前缀节点思想,提出了一种在部分候选模式图上能够在常数时间内完成同构判定的方法,并以此方法为核心给出了一种新的高效频繁子图挖掘算法——图核—分支扩展算法(CBE)。
1 基于次前缀节点的频繁子树挖掘算法
频繁子树挖掘算法分为候选模式子树生成和子树频繁判定两步。候选模式子树可以通过在一棵频繁子树的任一个节点上扩展任一条边得到,但这种扩展会产生大量同构的模式子树。一种朴素的筛选方法是检查新生成的模式子树是否与先前生成的某棵模式子树同构。若存在同构的模式子树,则当前扩展是无效的;否则当前扩展生成一棵新的有效的模式子树。因此,候选子树的生成,本质是要遍历所有的子树同构类。对每一类同构的子树,只需生成一棵代表子树即可。这棵代表子树也成为该同构类的规范形式。同构类的规范形式有多种不同的定义方法,在子树挖掘算法中,通常的做法是[6]:
在一棵树T中,用深度元组t=(d,le,lv)表示一条边e。其中:d为e的终点v的深度;le为e的标记;lv为v的标记。在深度元组间可定义偏序lt;t:当且仅当d1gt;d2,或d1=d2且le1在一棵最小有序树的最右路径上扩展,有以下结论,当且仅当:a)最低深度元组t0存在,新增的深度元组t′ ≥tt0,且t′ ≥tt″(t″为t′在最右路径上的左兄弟元组);b)或t0不存在,且t′≥tt″,则扩展得到的必定是一棵最小有序树[6,7]。简单证明如下:对于最右路径上的前缀节点,由深到浅记为vi,vi-1, …,v0,所对应的次前缀深度元组为ti,ti-1,…,t0。由次前缀深度元组的定义易得t0≥tt1≥t…≥tti。若添加的深度元组t′ ≥tt0,则新的有序树中,subtree(vk)≥S subtree(presibling(vk))(k=1,…,i)。对最右路径上的非前缀节点v,始终有subtree(vk)gt;S subtree(presibling(vk))。因此,扩展得到的是一棵最小有序树。若添加的深度元组t′ lt;tt0,则新的有序树中,subtree(v0)和
文档评论(0)