论文部分内容阅读
频繁子图挖掘是指从图集获得频繁出现的子图模式,它挖掘得到的结果可用于对图集的分类和聚类研究,有助于用户了解图集的特征。目前的频繁子图挖掘算法大都是基于内存的,实际上很多大规模图集无法被全部调入内存,针对这种情况,目前的解决方法是将大规模图集划分为多个可调入内存的子图集模块,分别对各个子图集模块进行频繁子图挖掘,但这种方法存在扩展频繁子图时产生冗余子图、重复扫描图集等问题。为了解决这些问题,本文重点研究了一种高效的频繁子图挖掘算法,并将它应用于大规模图集的挖掘。首先,针对gSpan算法所存在的扩展频繁子图时产生冗余的问题,提出一种改进的算法CSGM,结合ADI++存储结构,提高算法处理图集的规模,并且在扩展频繁边时,可以快速得到相关邻接边的信息,提高了扩展频繁边的效率,同时还提出了三种有效的删除非最小DFS编码的方法,保证算法在扩展频繁子图时每一次均可以生成图的最小DFS编码,避免对非最小DFS编码的支持度计算,减少了算法的计算量。其次,针对现有的大规模图集的频繁子图挖掘算法PartGraphMining存在的重复扫描图集问题,提出了一种改进的算法IPGM。通过使用本文提出的CSGM算法对分割后的各个子图集模块进行频繁子图挖掘,提高了对各个子图集模块进行频繁子图挖掘时的效率,同时在挖掘中使用Hash表存储所得到的同构图的Hash地址,可快速得到整体频繁子图模式,避免了对图集的重复扫描并且减少了子图同构判断的次数。最后,本文通过实验对CSGM算法和IPGM算法的正确性、执行效率以及处理大规模图集的能力进行了验证。