【技术实现步骤摘要】
一种图算法友善的强连通图划分方法
本专利技术涉及大数据处理
,更具体地,涉及一种图算法友善的强连通图划分方法。
技术介绍
随着大数据时代的来临,图数据的规模快速增长并迅速超过了普通计算机的内存容量,为了对大规模图数据进行处理,研究人员提出了许多图划分方法将大规模图数据首先划分成若干个子图,使得每个子图能够装进内存,然后再依次将每个子图从磁盘载入内存并在其上运行图算法(这种处理方式称为核外图处理方式)。在此背景下,如何划分子图使得在核外环境下图算法能够在图数据上高效运行,是一个亟待解决的问题。现有的图划分方法有很多,比如hash划分方法和基于多层图粗化的METIS划分方法等。Hash划分方法根据需要划分的子图数目,按照对每个顶点编号取模的结果将其分配到相应的子图中,这种方法可使得子图大小均衡(即每个子图中顶点的数量相同),但完全忽略了顶点之间存在的相邻关系和图算法的具体特点(比如同一个顶点在某些图算法执行过程中状态变化频繁,而在其他图算法执行中状态变化很少)。METIS划分方法包括粗化、划分、细化三个阶段。在粗化阶段,采用启发函数通过多轮粗化将多个顶点融合成一个顶点,使得图规模迅速减小并将缩小后的图作为第二阶段的输入。在划分阶段,采用经典划分方法(比如Kernighan-Lin方法)将粗化后的图进一步划分成多个子图。在细化阶段,根据第二阶段的划分结果,将粗化图中的顶点逐步还原为原始图中的顶点。METIS针对无向图往往能取得较好的效果(比如子图之间的割边数目较小、各个子图的大小比较均衡),但缺点也很明显:(1)在划分之前需要将图数据完全载入内存并在运行过 ...
【技术保护点】
一种图算法友善的强连通图划分方法,其特征在于,包括如下步骤:(1)将图数据划分成多个强连通分量的集合并将这些集合依次加入到第一队列中;(2)取出第一队列中的第一个集合;(3)判断该集合的大小是否小于给定的内存容量参数,如果是则进入步骤(4),否则进入步骤(5);(4)将该集合组装成一个子图;(5)用多源宽度优先搜索算法将该集合中部分顶点划分成多个搜索树,用弱连通分量算法将未被访问的顶点分解成多个弱连通分量,并将集合中的搜索树组装成多个子图;(6)判断第一队列是否为空,若是则结束,否则进入步骤(2)。
【技术特征摘要】
1.一种图算法友善的强连通图划分方法,其特征在于,包括如下步骤:(1)将图数据划分成多个强连通分量的集合并将这些集合依次加入到第一队列中;(2)取出第一队列中的第一个集合;(3)判断该集合的大小是否小于给定的内存容量参数,如果是则进入步骤(4),否则进入步骤(5);(4)将该集合组装成一个子图;(5)用多源宽度优先搜索算法将该集合中部分顶点划分成多个搜索树,用弱连通分量算法将未被访问的顶点分解成多个弱连通分量,并将集合中的搜索树组装成多个子图;(6)判断第一队列是否为空,若是则结束,否则进入步骤(2)。2.如权利要求1所述的强连通图划分方法,其特征在于,所述步骤(5)包括如下子步骤:(5.1)从集合的图数据中选取入度最大的Numroot个顶点作为根结点并从这些根结点同时开始进行宽度优先搜索,每次宽度优先搜索形成一个由顶点和边组成的搜索树,由所形成的搜索树构成一个搜索树集合;(5.2)判断图数据中未被访问的顶点总数是否小于给定阈值Numactive,如果是则进入步骤(5.3),否则进入步骤(5.1);(5.3)采用弱连通分量寻找算法将所有未被访问顶点划分成多个弱连通分量并加入到搜索树集合中;(5.4)选择K个最大的搜索树作为K个子图的起始搜索树,并将这K个搜索树标记为已访问;其中,K根据给定的内存容量参数与搜索树集合的大小来确定;(5.5)在K个子图中选择最小的一个子图作为活跃子图;(5.6)从所有未被访问的搜索树中选择一颗与活跃子图连通度最大的搜索树作为第一搜索树treehigh;(5.7)在不超过内存容量参数的前提下,判断上述搜索树treehigh是否存在,若是则进入步骤(5.9),否则进入步骤(5.8);(5.8)增加一个新子图以及该子图对应的集合,选择一个最大的未被访问的搜索树加入到新子图中,将该搜索树标记为已访问,令K=K+1,进入步骤(5.10);(5.9)将搜索树treehigh标记为已访问并将其加入到活跃子图中,并进入步骤(5.10);(5.10)判断搜索树集合中是否存在未被访问的搜索树,如果是则进入步骤(5.5),否则结束。3.如权利要求2所述的强连通图划分方法,其特征在于,所述步骤(5.1)包括如下子步骤:(5.1.1)初始化图数据;(5.1.2)选择入度最大的Numroot个未被访问顶点作为Numroot个对应宽度优先搜索的起始点,其中,Numroot是由用户指定的参数;(5.1.3)同时从所述Numroot个未被访问顶点开始进行宽度优先搜索,每次宽度优先搜索将遍历过程中遇到的顶点和边加入到对应的搜索树中并将该搜索树中的顶点标记为已访问,每次宽度优先搜索最多运行L次;当所述Numroot个宽度优先搜索遍历均停止之后,将这Numroot次宽度优先搜索形成的搜索树依次加入到搜索树集合Settree中;其中,L是用户指定的参数,使得形成的搜索树的最大规模不超过内存容量参数。4.如权利要求2或3所述的强连通图划分方法,其特征在于,所述步骤(5.2)中,判断所述图数据中未被访问的顶点总数是否小于给定阈值Numactive,若是则进入步骤(5.3),否则进入步骤(5.1.2);其中,阈值Numactive是由用户根据图数据中顶点总...
【专利技术属性】
技术研发人员:石宣化,邵志远,梅珍杰,金海,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。