CN105096297A - 一种图数据分割的方法及装置 - Google Patents
一种图数据分割的方法及装置 Download PDFInfo
- Publication number
- CN105096297A CN105096297A CN201410187377.2A CN201410187377A CN105096297A CN 105096297 A CN105096297 A CN 105096297A CN 201410187377 A CN201410187377 A CN 201410187377A CN 105096297 A CN105096297 A CN 105096297A
- Authority
- CN
- China
- Prior art keywords
- overtrick
- hypergraph
- cum rights
- limit
- summit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种图数据分割的方法及装置,该方法包括:通过并行的标签传递算法将原始图数据转换为局部密集的带权超图;通过划分算法逐次将所述带权超图均衡划分为带权超图子图;将所述带权超图子图还原为原始图对应的数据。通过本发明可以分割速度更快,处理数据规模更大,分割后的数据块之间耦合度较小,有效降低使用BSP模型的并行计算平台中个工作顶点之间的数据通信,提高了处理效率。
Description
技术领域
本发明涉及云计算技术和图数据分析技术领域,特别是涉及一种图数据分割的方法及装置。
背景技术
BSP(BulkSynchronousParallel,整体同步并行模型),是一种并行算法的设计模型。在该模型中,将算法分为若干个超步(superstep),每个超步中分为三个过程,即本地计算、相互通信、阶段同步。BSP并行模型适合进行迭代次数高的计算。图数据分割,图数据即采用图结构存储的数据。图结构是计算机科学中最常用的一类抽象数据结构,由有限个顶点和连接顶点之间的边组成,具有比线性表结构和树结构更一般性的表示能力。
由于现实场景的应用多用图进行描述,随着信息的增长,图数据达到了海量规模。由于图数据本身固有的连通性和图计算的强耦合性特点,为了实现高效的并行处理,需要通过解耦等手段将一个逻辑上完整的大图分割成若干部分,分别放置到分布式存储系统的各个工作节点上,然后进行并行的分布式处理。
现有的图数据分割方案主要有如下几类方法:启发式方法,以Kernighan-Lin算法为代表。该算法中首先将图数据分成A、B两个集合,然后分别计算A集合中的每一个顶点与B集合中每一个顶点交换后对集合权值的影响,每次交换对集合权值影响最大的两个顶点,直到达到结束条件。谱分割方法,该算法通过计算图的拉普拉斯矩阵的特征向量,提取前k个特征值和它们对应的特征向量,获得每一个顶点在低维空间的表示,然后进行k-means聚类,获得图的划分。从以上技术方案可以看出,在现有的图数据分割方案中,存在以下缺点:
计算时间复杂度较高:如Kemighan-Lin算法,由于需要对两个集合中的顶点分别进行比较,计算其交换后对集合的权值影响,所以其时间复杂度为O(n3)。而且,在大数据分割应用中,需要将数据分为多份,对于Kemighan-Lin算法就需要对第一步的两个分割结果多次运行算法,其时间消耗更多。谱分析方法需要求解n阶方阵的特征值分解问题,其时间复杂度为O(n3),对于大规模图数据构成的矩阵计算复杂。
计算空间复杂度较高:如谱分析方法,需要对图数据中顶点构建邻接矩阵,然后进行拉普拉斯分解,再进行分割计算。图的邻接矩阵规模为n×n,其中n为图中顶点的数目。由于大图数据中顶点个数很多,该矩阵也相当庞大,不利于计算和缓存。
难以进行并行化:由于算法本身设计时没有进行并行化设计,所以在将其并行化以提高效率时会遇到问题。如Kemighan-Lin算法中一次只交换一对顶点,谱分析方法中的如何进行大规模矩阵并行分解。
发明内容
本发明要解决的技术问题是提供一种图数据分割的方法及装置,以克服现有图数据分割技术中存在的时间复杂度和空间复杂度较高问题和难以并行化的缺陷。
为了解决上述技术问题,本发明提供了一种图数据分割的方法,包括:
通过并行的标签传递算法将原始图数据转换为局部密集的带权超图;
通过划分算法逐次将所述带权超图均衡划分为带权超图子图;
将所述带权超图子图还原为原始图对应的数据。
进一步地,上述方法还具有下面特点:所述通过并行的标签传递算法将原始图数据转换为局部密集的带权超图,包括:
通过并行的标签传递算法将原始图数据中具有同样标签的顶点聚合成一个超点,所述超点的权值为该超点所包含的顶点个数;
所述超点之间的连边为超边,所述超边的权值由原始图中的边决定;
由所述超点和所述超边构所述带权超图。
进一步地,上述方法还具有下面特点:所述超边的权值由原始图中的边决定,包括:
如原始图中的边的两个端点在所述带权超图中属于不同的超点,则该两个超点之间存在一条超边,该超边的权值增加1;
如原始图中的边的两个端点在所述带权超图中属于同一下超点,则不产生超边。
进一步地,上述方法还具有下面特点:
所述通过划分算法逐次将所述带权超图均衡划分为带权超图子图,包括:
以所述带权超图中的超点为起点依次计算最小化局部切分率值,
根据所述最小化局部切分率值将所述带权超图划分为指定块数的带权超图子图。
为了解决上述问题,本发明还提供了一种图数据分割的装置,其中,包括:
转换模块,用于通过并行的标签传递算法将原始图数据转换为局部密集的带权超图;
划分模块,用于通过划分算法逐次将所述带权超图均衡划分为带权超图子图;
还原模块,用于将所述带权超图子图还原为原始图对应的数据。
进一步地,上述装置还具有下面特点:
所述转换模块,具体用于通过并行的标签传递算法将原始图数据中具有同样标签的顶点聚合成一个超点,所述超点的权值为该超点所包含的顶点个数;所述超点之间的连边为超边,由原始图中的边决定所述超边的权值;由所述超点和所述超边构所述带权超图。
进一步地,上述装置还具有下面特点:
所述转换模块,由原始图中的边决定所述超边的权值包括:如原始图中的边的两个端点在所述带权超图中属于不同的超点,则该两个超点之间存在一条超边,该超边的权值增加1;如原始图中的边的两个端点在所述带权超图中属于同一下超点,则不产生超边。
进一步地,上述装置还具有下面特点:
所述划分模块,具体用于以所述带权超图中的超点为起点依次计算最小化局部切分率值,根据所述最小化局部切分率值将所述带权超图划分为指定块数的带权超图子图。
综上,本发明提供一种图数据分割的方法及装置,可以分割速度更快,处理数据规模更大,分割后的数据块之间耦合度较小,有效降低使用BSP模型的并行计算平台中个工作顶点之间的数据通信,提高了处理效率。
附图说明
图1为本发明实施例的一种图数据分割的方法的流程图;
图2为本发明实施例的并行的标签传递算法的流程图;
图3为本发明实施例的一种图数据分割的装置的示意图;
图4为本发明实施例1的数据原始图;
图5为本发明实施例1的标签传递后的效果图;
图6为本发明实施例1的带权超图;
图7为本发明实施例2的数据原始图;
图8为本发明实施例2的标签传递后的效果图;
图9为本发明实施例2的带权超图;
图10为本发明实施例3的数据原始图;
图11为本发明实施例3的标签传递后的效果图;
图12为本发明实施例3的带权超图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在实际应用中,图并不是随机的,局部密集子图在很多网络中都广泛存在,这些子图内部的顶点彼此紧密连接,而与外部顶点具有较少的连接。本实施例的分割方法认为这样的密集子图不应当被切分为两个或多个分块之间,而是被当作是一个独立不可分的“原子”,这样对图划分就转变成对这些不可分割的“原子”的划分。
本实施例提供的是一种采用自底向上的分割方法。该方法分为两个阶段,聚集阶段和分割阶段。在聚集阶段,通过一个分布式标签传播算法将局部密集的子图聚合到一块。这些局部密集的子图形成最基本的分割单元,这里称作超点(SuperVertex),超点进一步组成一个超图(SuperGraph)。在分割阶段,通过一个贪心的逐次图分割算法对聚集阶段产生的超图进行划分。每一次从超图中抽取一个和其余子图边割最小的集合,这样逐次取得这个超图的划分,最后将超点还原为原始的局部密集的子图,完成图的分割。
本实施例中的符号定义如下:
使用G=(V,E)表示一个图,其中V表示图中点的集合,是边的集合。图的邻接矩阵为ωi,j>0表示顶点vi和vj相连,权重为ωi,j,当图G是无权图时,如果点vi与vj相邻,ωi,j=1,否则ωi,j=0。N(S)表示顶点S的邻域,
对于任意顶点集合它的补集V\Vi表示为对于任意两个集合A和B,定义:
集合Vi的割集为割集Ci的边割为P=V1,V2,...,Vk为图G的k-路划分,当且仅当:(1)、UiVi=V和(2)、构建图的划分的最直接方式是解最小边割问题:选择一个划分P=V1,V2...,Vk,使以下式子最小:
但是最小边割问题的解通常不能产生图的一个均衡划分,将均衡划分的目标函数定义如下:
如图1所示,本实施例的一种图数据分割的方法包括以下步骤:
S1、通过并行的标签传递算法将原始图数据转换为局部密集的带权超图;
并行标签传播方法中,顶点只需要向其邻接顶点发送标签信息,而不需要获取其他的顶点信息。该算法线性复杂,适合并行计算,如图2所示,具体步骤如下:
步骤11、初始化图中每一个顶点的标签,对于给定的顶点v,标签Lv(0)=v,表示在第0次迭代开始时,顶点的标签为该顶点的ID,设置迭代计数器t=0;
步骤12、对于每一个顶点v,发送自己的标签给它的邻接顶点;
步骤13、对于每一个顶点v,根据接收到的其他顶点发送过来的标签信息,计算自己的新标签。计算公式如下:
Lu(t)=f(Lu1(t-1),...,Lui(t-1))
其中,Lui(t-1)表示顶点u的第i个邻接顶点在(t-1)循环时的标签状态,f为返回出现次数最多的标签,当次数最多标签有多个时,随机选定其中之一为f的返回结果;
步骤14、当所有顶点标签不再变化,或者t到达设置的上限时,算法停止,否则,t=t+1,然后跳转到步骤12。
计算结束后,对结果进行整理,获得一个带权超图Gm(Vm,E)。其中,Vm为超点集合,下标m为聚合算法结束时图中所有顶点的标签种类数。具有同样标签的顶点聚合成一个超点,超点的权值为该超点所包含的顶点个数,即具有相同标签的顶点个数。E为超图中超点之间的超边,其权值由原始图中的边决定:1)原始图中边的两个端点在超图中属于不同的超点,则两个超点直接存在一条超边,边的权值增加1;2)原始图中边的两个端点在超图中属于同一个超点,由于本方案超图不允许自环,因此不产生超边。综上所述,超图中超边的权值不小于1。
S2、通过划分算法逐次将所述带权超图均衡划分为带权超图子图;
由标签传播方法可以获得一个加权图Gm(Vm,E),为了求解加权图的均衡划分,本实施例提案提出了一个逐步最小化Ratio-Cut(切分率)的算法。该算法通过多步执行,每步寻找能够最小化目标函数PRC(Partial-RatioCut,局部切分率)的子集vi,然后从图中移除该子集,再以同样的方式在剩余的图中寻找下一个子集。其中PRC定义如下:
其中,Vi表示对于图的第i块划分,|Vi|表示该划分中顶点的个数,表示Vi与其补集之间的边数目。PRC(Vi)可以理解为对于图的划分Vi平均每个顶点被切断的边的数目。
逐次划分算法具体步骤如下:
步骤21、初始化超点集合setList和bestSet为空集,设置需要划分的块个数为k,设置分块计数器i=0;
步骤22、对带权超图Gm(Vm,E)中的超点v∈Vm计算超点集合:
该公式表示对超图Gm进行以顶点v为起点的划分,块数为k,每块划分应该大致包括个顶点,minimizePRC(最小化PRC)的具体计算方法见下文。
步骤22、对集合S和集合bestSet分别计算PRC值,如果PRC(S)<PRC(bestSet),那么令bestSet为S,将bestSet中的元素增加至setList中。从超点集合Vm中移除bestSet中的元素。计数器i增加1,同时清空bestSet中的元素。
步骤23、如果计数器i小于k,跳转到步骤202,否则算法停止,返回每次setList。
S3、将所述带权超图子图还原为原始图对应的数据。
根据超点信息将超点集合还原为对应的原始顶点集合。
本实施例的逐次划分算法中,minimizePRC算法的具体步骤如下:
步骤31、初始化超点结果集合Vi,设为空集。设置每个Vi中的元素个数上限为n,其中k为需要划分的块数。
步骤32、根据超点id从小到大的顺序依次选择尚未加入任何划分的超点v,计算代入公式的值,选择使公式值最小的超点作为待加入超点,即计算 其中, dv为以超点v为端点的超边个数,Vi为超点结果集合。
步骤33、当|Vi|+|v|≤n时,超点v加入集合Vi,否则超点v不加入集合Vi,其中|v|表示集合V中元素的个数。
步骤34、当|Vi|<n时,跳转到步骤302。
步骤35、返回结果集合Vi。
采用本发明实施例的方法通过标签传递算法将原始图数据转换局部密集的带权超图;设计了一个逐次分割算法实现带权图的均衡划分;最后将划分后的带权图子图还原回原始图对应的顶点和边。与现有技术相比,可以分割速度更快,处理数据规模更大,分割后的数据块之间耦合度较小,有效降低使用BSP模型的并行计算平台中个工作顶点之间的数据通信,提高了处理效率。
本发明实施例的方法可以广泛用于需要进行图数据并行处理的领域:
1、在并行图数据分析平台中,可以作为数据加载算法,根据图数据的拓扑结构合理分配其对应的工作节点,降低并行计算过程中工作节点之间的通信量;
2、在并行图数据分析算法中,可以作为数据预处理的一部分,对原始数据进行划分,提高算法运行效率,缩短运行时间;
3、可以作为一种有监督的图分析算法,对图数据进行聚类。通过人为设置需要聚合的种类个数,计算得到所需的聚类结果。
图3为本发明实施例的一种图数据分割的装置的示意图,如图3所示,本实施例的装置可以包括:
转换模块,用于通过并行的标签传递算法将原始图数据转换为局部密集的带权超图;
划分模块,用于通过划分算法逐次将所述带权超图均衡划分为带权超图子图;
还原模块,用于将所述带权超图子图还原为原始图对应的数据。
在一优选实施例中,所述转换模块,具体可以用于通过并行的标签传递算法将原始图数据中具有同样标签的顶点聚合成一个超点,所述超点的权值为该超点所包含的顶点个数;所述超点之间的连边为超边,由原始图中的边决定所述超边的权值;由所述超点和所述超边构所述带权超图。
其中,所述转换模块,由原始图中的边决定所述超边的权值包括:如原始图中的边的两个端点在所述带权超图中属于不同的超点,则该两个超点之间存在一条超边,该超边的权值增加1;如原始图中的边的两个端点在所述带权超图中属于同一下超点,则不产生超边。
在一优选实施例中,所述划分模块,具体可以用于以所述带权超图中的超点为起点依次计算最小化PRC值,根据所述最小化PRC值将所述带权超图划分为指定块数的带权超图子图。
以下通过几个具体实施例对本发明的方法进行详细的说明。
示例1:
参照图4,假设需求分割块数为2,本实施例的分割步骤如下:
步骤101:并行标签传递聚合超图;
1)、初始化图中每一个顶点的标签为自身ID;设置计数器t=0,设置计数器t上限为60;以图中顶点集合{0,1,2,3,4}为例进行说明,每个顶点的标签值为自身ID,即L0(0)=0,L1(0)=1,L2(0)=2,L3(0)=3,L4(0)=4。
2)、每个顶点v发送自己的标签给它的邻接顶点,根据邻接关系,顶点0发送标签0至相邻点{1,2,3,4,5},顶点1发送标签1至相邻顶点{0,2,3,4},顶点2发送标签2至相邻顶点{0,1,3,4,8},顶点3发送标签3至相邻顶点{0,1,2,4},顶点4发送标签1至相邻顶点{0,1,2,3,11,14};
3)、每个顶点v根据接收到的其他顶点发送过来的标签,计算自己的新标签,为返回出现次数最多的标签,当次数最多标签有多个时,随机选取其中之一;由于为第一次接受标签信息,各顶点接收到的标签均为一次,为了简化计算过程,不妨令随机选择标签结果均为1,则可得结果L0(1)=1,L1(1)=2,L2(1)=1,L3(1)=1,L4(1)=1,由于顶点1接收到的标签信息中不包括1,所以令其随机选择结果为2;
4)、由于迭代没有达到设定上限,每个顶点继续发送自己当前的标签信息,顶点0发送标签1至相邻点{1,2,3,4,5},顶点1发送标签2至相邻顶点{0,2,3,4},顶点2发送标签1至相邻顶点{0,1,3,4,8},顶点3发送标签1至相邻顶点{0,1,2,4},顶点4发送标签1至相邻顶点{0,1,2,3,11,14};
5)、各顶点接受标签信息,并计算自己的新标签。顶点0接收到的信息为L1(1)=2,L2(1)=1,L3(1)=1,L4(1)=1,L5(1)=labe15,由于1为大多数,L0(2)=1;顶点1接收到的信息为L0(1)=1,L2(1)=1,L3(1)=1,L4(1)=1,由于1为大多数,L1(2)=1;其余顶点计算过程与顶点1类似,且后续迭代步骤中由于相邻顶点中大多数标签为1,所以保持不变。
6)、重复以上过程,直到所有顶点标签不再变化或者计数器t到达设置的上限时,算法停止;否则,t=t+1,跳转到2)。
步骤101计算结果见图5,图中使用相同阴影背景表示聚合结束时标签相同的顶点。生成对应带权超图,见图6,其中超点1所对应的原图顶点为{5,6,7,8,9},超点2对应的原图顶点为{0,1,2,3,4},超点3对应的原图顶点为{10,11,12,13,14},超点4对应的原图顶点为{15,16,17,18,19},超点5对应的原图顶点为{25,26,27,28,29},超点6对应的原图顶点为{20,21,22,23,24},超点7对应的原图顶点为{50,51,52,53,54},超点8对应的原图顶点为{55,56,57,58,59},超点9对应的原图顶点为{40,41,42,43,44},超点10对应的原图顶点为{35,36,37,38,39},超点11对应的原图顶点为{30,31,32,33,34},超点12对应的原图顶点为{45,46,47,48,49}。其中超边权重见标识,超点权重均为5。
步骤102:逐次划分;
1)、初始化超点集合setList和bestList为空集,设置需要划分的块个数为2,设置分块计数器i=0;
2)、以带权超图中的超点为起点依次计算minimizePRC值。根据图5所示数据,以超点1为起点计算S=minimizePRC(Gm,6,1),表示以超点1为起点,从超图Gm中选取元素个数为6的集合。根据minimizePRC算法,进行如下计算:
21)、设置结果集合S为空集,并加入起始超点1为元素;
22)、此时集合S元素个数为1,小于设定的6,需要继续加入超点;对其余超点进行计算,选择使最小的超点加入集合。以超点2为例,进行计算,d2为超点2所有临边的权值和,为2+2=4,2k2,V=2∑2,j∈VW(2,1)=2*1=2,所以同理计算其他的超点,得到超点3对应值超点4对应值超点5对应值超点6对应值超点7对应值超点8对应值超点9对应值超点10对应值超点11对应值超点12对应值由于当前集合S的元素为1,小于目标需要的6,所以添加超点2为集合S的元素;
23)、重复执行22)直到集合S的元素个数达到6个;并返回集合S作为结果;集合S为{1,2,3,4,5,6};
24)、对步骤22)的结果集合S进行PRC计算,得到PRC(S)=0.33333,由于此时bestSet为空集所以PRC(S)<PRC(bestSet),令bestSet为S,增加bestSet中的元素至setList,然后跳转至步骤22),计算以超点2为起点的集合s=minimizePRC(Gm,6,2),和S所对应的PRC(S)。当全部12个超点为起点的集合计算完毕后,其中PRC(S)最小的S(即bestSet)集合即为数据划分之一,从超点集合Vm中移除bestSet中的元素,计数器i增加1;
25)、由于k=2,分割1块后,剩余超点即为另一块结果,最后返回两块数据结果。
计算结果分为两个超点集合{7,8,9,10,11,12}和{1,2,3,4,5,6},对应图中可以看出,切断了超点12和3、4和8之间的权重为1的超边。
26)、将超点还原回对应的原始点,完成分割。
参照图7,假设需求分割的块数为4,本实施例包括如下步骤:
步骤201:并行标签传递聚合超图,包括以下步骤:
步骤2011、初始化图中每一个顶点的标签为自身ID;设置计数器t=0,设置计数器t上限为60;以图中顶点集合{18,19,20,21,22,23}为例进行说明,每个顶点的标签值为自身ID,即L18(0)=18,L19(0)=19,L20(0)=20,L21(0)=21,L22(0)=22,L23(0)=23;
步骤2012、每个顶点v,发送自己的标签给它的邻接顶点,根据邻接关系,顶点18发送标签18至相邻点{12,19,20,21,22,23,24},顶点19发送标签19至相邻顶点{17,18,20,21,22,23},顶点20发送标签20至相邻顶点{18,19,21,22,23},顶点21发送标签21至相邻顶点{18,19,20,22,23},顶点22发送标签22至相邻顶点{18,19,20,21,23,28},顶点23发送标签23至相邻顶点{18,19,20,21,22};
步骤2013、每个顶点v根据接收到的其他顶点发送过来的标签,计算自己的新标签为返回出现次数最多的标签,当次数最多标签有多个时,随机选取其中之一;由于为第一次接受标签信息,各顶点接收到的标签均为一次,为了简化计算过程,不妨令随机选择标签结果均为18,则可得结果L19(1)=18,L20(1)=18,L21(1)=18,L22(1)=18,L23(1)=18,由于顶点18接收到的标签信息中不包括18,所以令其随机选择结果为12;
步骤2014、由于迭代没有达到设定上限,每个顶点继续发送自己当前的标签信息,顶点18发送标签12至相邻顶点{12,19,20,21,22,23,24},顶点19发送标签18至相邻点{17,18,20,21,22,23},顶点20发送标签18至相邻顶点{18,19,21,22,23},顶点21发送标签18至相邻顶点{18,19,20,22,23},顶点22发送标签18至相邻顶点{18,19,20,21,23,28},顶点23发送标签18至相邻顶点{18,19,20,21,22};
步骤2015、各顶点接受标签信息,并计算自己的新标签。顶点18接收到的信息为L12(1)=lable12,L19(1)=18,L20(1)=18,L21(1)=18,L22(1)=18,L23(1)=18,L24(1)=label24,由于18为大多数,L18(2)=18;顶点19接收到的信息为L17(1)=label17,L18(1)=12,L20(1)=18,L21(1)=18,L22(1)=18,L23(1)=18,由于18为大多数,L19(2)=18;其余顶点计算过程与顶点18类似。且后续迭代步骤中由于相邻顶点中大多数标签为18,所以保持不变。上述过程中tabte12和tabtel7分别表示编号为12和17的顶点在经过同样过程中所确定的自身标签,由于其标签在所讨论顶点集合中占少数,所以对计算结果没有影响。
重复以上过程,直到所有顶点标签不再变化或者计数器t到达设置的上限时,算法停止。否则,t=t+1,跳转到步骤2012。
步骤201计算结果见图8,图中使用相同阴影背景表示聚合结束时标签相同的顶点。生成对应带权超图,见图9,其中,超点1所对应的原图顶点为{42,43,44,45,46,47},超点2对应的原图顶点为{12,13,14,15,16,17},超点3对应的原图顶点为{24,25,26,27,28},超点4对应的原图顶点为{0,1,2,3,4,5},超点5对应的原图顶点为{18,19,20,21,22,23},超点6对应的原图顶点为{6,7,8,9,10,11},超点7对应的原图顶点为{30,31,32,33,34,35},超点8对应的原图顶点为{36,37,38,39,40,41},其中超边权重见标识,超点权重均为6。
步骤202:逐次划分,包括以下步骤:
步骤2021、初始化超点集合setList和bestList为空集,设置需要划分的块个数为4,设置分块计数器i=0;
步骤2022、以带权超图中的超点为起点依次计算minimizePRC值。根据图8所示数据,以超点1为起点计算S=minimizePRC(Gm,2,1),表示以超点1为起点,从超图Gm中选取元素个数不超过2的集合。根据minimizePRC算法,进行如下计算:
1)、设置结果集合S为空集,并加入起始超点1为元素;
2)、此时集合S元素个数为1,小于目标值2,需要继续加入超点;此时集合S元素个数为1,小于目标值2,需要继续加入超点;对其余超点进行计算,选择使最小的超点加入集合。以超点2为例,进行计算。d2为超点2所有临边的权值和,为3+1=4,2k,s=0,所以同理计算其他的超点,得到超点3对应值超点4对应值超点5对应值超点6对应值超点7对应值超点8对应值由于当前集合S的元素为1,小于目标需要的2,所以添加超点8为集合S的元素;
3)、由于设定的元素集合大小为2,所以集合S满足要求,并返回集合S作为结果;集合S为{1,8}。
步骤2023、对步骤2022的结果集合S进行PRC计算,得到PRC(S)=1.0,由于此时bestSet为空集所以PRC(S)<PRC(bestSet),令bestSet为S,增加bestSet中的元素至setList。然后跳转至步骤2022,计算以超点2为起点的集合S=minimizePRC(Gm,2,2),和S所对应的PRC(S)。当全部8个超点为起点的集合计算完毕后,其中PRC(S)最小的S(即bestSet)集合即为数据划分之一,从超点集合Vm中移除bestSet中的元素,计数器i增加1。
步骤2024、继续执行步骤2022和2023直到分块计数器等于4结束。
步骤2025、由于k=4,分割3块后,剩余超点即为另一块结果,最后返回四块数据结果。
计算结果分为四个超点集合{1,8},{2,5},{3,7},{4,6},对应图中可以看出,第一次切断了超点7,8和1,4之间的权重为1的超边,第二次切断了超点2,6和3,5之间的权重分别为1和2的超边,第三次切断了超点4,7和6,7之间的权重为1的超边。
步骤2026、将超点还原回对应的原始点,完成分割。
参照图10,假设需求分割的块数为2,本实施例包括如下步骤:
步骤301:并行标签传递聚合超图,包括以下步骤:
步骤3011、初始化图中每一个顶点的标签为自身ID;设置计数器t=0,设置计数器t上限为60;以图中顶点集合{28,29,30,31,32,33,34}为例进行说明,每个顶点的标签值为自身ID,即L28(0)=28,L29(0)=29,L30(0)=30,L31(0)=31,L32(0)=32,L33({0)=33,L34(0)=34。
步骤3012、每个顶点v发送自己的标签给它的邻接顶点,根据邻接关系,顶点28发送标签28至相邻点{21,29,30,21,32,33,34,35},顶点29发送标签29至相邻顶点{28,30,31,32,33,34},顶点30发送标签30至相邻顶点{28,29,31,32,33,34},顶点31发送标签31至相邻顶点{28,29,30,32,33,34},顶点32发送标签32至相邻顶点{28,29,30,31,33,34},顶点33发送标签33至相邻顶点{27,28,29,30,31,32,34},顶点34发送标签34至相邻顶点{5,28,29,30,31,32,33};
步骤3013、每个顶点v根据接收到的其他顶点发送过来的标签,计算自己的新标签,为返回出现次数最多的标签,当次数最多标签有多个时,随机选取其中之一;由于为第一次接受标签信息,各顶点接收到的标签均为一次,为了简化计算过程,不妨令随机选择标签结果均为28,则可得结果L29(1)=28,L30(1)=28,L31(1)=28,L32(1)=28,L33(1)=28,L34(1)=28,由于顶点28接收到的标签信息中不包括28,所以令其随机选择结果为29,有L28(1)=29;
步骤3014、由于迭代没有达到设定上限,每个顶点继续发送自己当前的标签信息,顶点28发送标签29至相邻点{21,29,30,21,32,33,34,35},顶点29发送标签28至相邻顶点{28,30,31,32,33,34},顶点30发送标签28至相邻顶点{28,29,31,32,33,34},顶点31发送标签28至相邻顶点{28,29,30,32,33,34},顶点32发送标签28至相邻顶点{28,29,30,31,33,34},顶点33发送标签28至相邻顶点{27,28,29,30,31,32,34},顶点34发送标签28至相邻顶点{5,28,29,30,31,32,33};
步骤3015、各顶点接受标签信息,并计算自己的新标签。顶点28接收到的信息为L12(1)=lable21,L29(1)=28,L30(1)=28,L31(1)=28,L32(1)=28,L33(1)=28,L34(1)=28,L35(1)=label35,由于28为大多数,L28(2)=28;顶点29接收到的信息为L28(1)=29,L30(1)=28,L31(1)=28,L32(1)=28,L33(1)=28,L34(1)=28,由于28为大多数,L29(2)=28;其余顶点计算过程与顶点28类似。且后续迭代步骤中由于相邻顶点中大多数标签为28,所以保持不变。上述过程中lable21和label35分别表示编号为21和35的顶点在经过同样过程中所确定的自身标签,由于其标签在所讨论顶点集合中占少数,所以对计算结果没有影响。
重复以上过程,直到所有顶点标签不再变化或者计数器t到达设置的上限时,算法停止。否则,t=t+1,跳转到(ii)。
步骤301计算结果见图11,图中使用相同阴影背景表示聚合结束时标签相同的顶点。生成对应带权超图,见图12,其中超点1所对应的原图顶点为{35,36,37,38,39,40,41},超点2对应的原图顶点为{0,1,2,3,4,5,6},超点3对应的原图顶点为{7,8,9,10,11,12,13},超点4对应的原图顶点为{14,15,16,17,18,19,20},超点5对应的原图顶点为{49,50,51,52,53,54,55},超点6对应的原图顶点为{28,29,30,31,32,33,34},超点7对应的原图顶点为{21,22,23,24,25,26,27},超点8对应的原图顶点为{42,43,44,45,46,47,48}。其中超边权重见标识,超点权重均为7。
步骤302:逐次划分;
步骤3022、初始化超点集合setList和bestList为空集,设置需要划分的块个数为2,设置分块计数器i=0;
步骤3023、以带权超图中的超点为起点依次计算minimizePRC值。根据图5所示数据,以超点1为起点计算S=minimizePRC(Gm,4,1),表示以超点1为起点,从超图Gm中选取元素个数为4的集合。根据minimizePRC算法,进行如下计算:
1)、设置结果集合S为空集,并加入起始超点1为元素;
2)、此时集合S元素个数为1,小于设定的4,需要继续加入超点;此时集合S元素个数为1,小于设定的4,需要继续加入超点;对其余超点进行计算,选择使最小的超点加入集合。以超点2为例,进行计算,d2为超点2所有临边的权值和,为2+1+1=4,2k2,S=2∑2,j∈SW(2,1)=2*0=0,所以同理计算其他的超点,得到超点3对应值超点4对应值超点5对应值超点6对应值超点7对应值超点8对应值由于当前集合S的元素为1,小于目标需要的4,由于添加超点2为集合S的元素;
3)、重复执行2)直到集合S的元素个数达到4个;并返回集合S作为结果;集合S为{1,2,5,8};
步骤3024、对步骤3022的结果集合S进行PRC计算,得到PRC(S)=1.5,由于此时bestSet为空集所以PRC(S)<PRC(bestSet),令bestSet为S,增加bestSet中的元素至setList。然后跳转至步骤(ii),计算以超点2为起点的集合S=mninimzePRC(Gm,4,2),和S所对应的PRC(S)。当全部8个超点为起点的集合计算完毕后,其中PRC(S)最小的S(即bestSet)集合即为数据划分之一。从超点集合Vm中移除bestSet中的元素。计数器i增加1。
步骤3025、由于k=2,分割1块后,剩余超点即为另一块结果,最后返回两块数据结果。
计算结果分为两个超点集合{1,2,5,8}和{3,4,4,7},对应图中可以看出,切断了超点1,3和1,6和7,8和5,7之间的权重为1的超边,以及2,3之间的权重为2的超边。
将超点还原回对应的原始点,完成分割。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种图数据分割的方法,包括:
通过并行的标签传递算法将原始图数据转换为局部密集的带权超图;
通过划分算法逐次将所述带权超图均衡划分为带权超图子图;
将所述带权超图子图还原为原始图对应的数据。
2.如权利要求1所述的方法,其特征在于:所述通过并行的标签传递算法将原始图数据转换为局部密集的带权超图,包括:
通过并行的标签传递算法将原始图数据中具有同样标签的顶点聚合成一个超点,所述超点的权值为该超点所包含的顶点个数;
所述超点之间的连边为超边,所述超边的权值由原始图中的边决定;
由所述超点和所述超边构所述带权超图。
3.如权利要求2所述的方法,其特征在于:所述超边的权值由原始图中的边决定,包括:
如原始图中的边的两个端点在所述带权超图中属于不同的超点,则该两个超点之间存在一条超边,该超边的权值增加1;
如原始图中的边的两个端点在所述带权超图中属于同一下超点,则不产生超边。
4.如权利要求1-3任一项所述的方法,其特征在于:所述通过划分算法逐次将所述带权超图均衡划分为带权超图子图,包括:
以所述带权超图中的超点为起点依次计算最小化局部切分率值,
根据所述最小化局部切分率值将所述带权超图划分为指定块数的带权超图子图。
5.一种图数据分割的装置,其特征在于,包括:
转换模块,用于通过并行的标签传递算法将原始图数据转换为局部密集的带权超图;
划分模块,用于通过划分算法逐次将所述带权超图均衡划分为带权超图子图;
还原模块,用于将所述带权超图子图还原为原始图对应的数据。
6.如权利要求5所述的装置,其特征在于:
所述转换模块,具体用于通过并行的标签传递算法将原始图数据中具有同样标签的顶点聚合成一个超点,所述超点的权值为该超点所包含的顶点个数;所述超点之间的连边为超边,由原始图中的边决定所述超边的权值;由所述超点和所述超边构所述带权超图。
7.如权利要求6所述的装置,其特征在于:
所述转换模块,由原始图中的边决定所述超边的权值包括:如原始图中的边的两个端点在所述带权超图中属于不同的超点,则该两个超点之间存在一条超边,该超边的权值增加1;如原始图中的边的两个端点在所述带权超图中属于同一下超点,则不产生超边。
8.如权利要求5-7任一项所述的装置,其特征在于:
所述划分模块,具体用于以所述带权超图中的超点为起点依次计算最小化局部切分率值,根据所述最小化局部切分率值将所述带权超图划分为指定块数的带权超图子图。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410187377.2A CN105096297A (zh) | 2014-05-05 | 2014-05-05 | 一种图数据分割的方法及装置 |
PCT/CN2014/087091 WO2015169029A1 (zh) | 2014-05-05 | 2014-09-22 | 一种图数据分割的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410187377.2A CN105096297A (zh) | 2014-05-05 | 2014-05-05 | 一种图数据分割的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105096297A true CN105096297A (zh) | 2015-11-25 |
Family
ID=54392070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410187377.2A Withdrawn CN105096297A (zh) | 2014-05-05 | 2014-05-05 | 一种图数据分割的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105096297A (zh) |
WO (1) | WO2015169029A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389324A (zh) * | 2014-08-29 | 2016-03-09 | Sql图表有限公司 | 用于图形数据的分布式计算的系统和方法 |
CN105550765A (zh) * | 2015-11-30 | 2016-05-04 | 中国科学技术大学 | 一种路网距离计算中的代表元选取方法 |
WO2021120986A1 (zh) * | 2019-12-17 | 2021-06-24 | 中兴通讯股份有限公司 | 业务状态分析方法、服务器及存储介质 |
CN113191405A (zh) * | 2021-04-16 | 2021-07-30 | 上海国微思尔芯技术股份有限公司 | 一种基于带权超图的多级聚类方法及计算机可读存储介质 |
CN113792170A (zh) * | 2021-11-15 | 2021-12-14 | 支付宝(杭州)信息技术有限公司 | 图数据划分方法、装置和计算机设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557581B (zh) * | 2016-11-29 | 2021-02-12 | 佛山科学技术学院 | 一种基于多层次框架及超边迁移的超图划分方法 |
CN115601565B (zh) * | 2022-12-15 | 2023-03-31 | 安徽大学 | 一种基于最小谷本距离的大跨度钢结构固定特征提取方法 |
CN116894097B (zh) * | 2023-09-04 | 2023-12-22 | 中南大学 | 一种基于超图建模的知识图谱标签预测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080247646A1 (en) * | 2007-04-04 | 2008-10-09 | Siemens Corporate Research, Inc. | Method for segmenting an image using constrained graph partitioning of watershed adjacency graphs |
CN102663108A (zh) * | 2012-04-16 | 2012-09-12 | 南京大学 | 基于复杂网络模型并行化标签传播算法的药物社团发现方法 |
CN102831594A (zh) * | 2011-04-29 | 2012-12-19 | 三菱电机株式会社 | 将图像分割成超像素的方法 |
CN103699606A (zh) * | 2013-12-16 | 2014-04-02 | 华中科技大学 | 一种基于顶点切割与社区聚集的大规模图划分方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102810113B (zh) * | 2012-06-06 | 2015-09-09 | 北京航空航天大学 | 一种针对复杂网络的混合型聚类方法 |
-
2014
- 2014-05-05 CN CN201410187377.2A patent/CN105096297A/zh not_active Withdrawn
- 2014-09-22 WO PCT/CN2014/087091 patent/WO2015169029A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080247646A1 (en) * | 2007-04-04 | 2008-10-09 | Siemens Corporate Research, Inc. | Method for segmenting an image using constrained graph partitioning of watershed adjacency graphs |
CN102831594A (zh) * | 2011-04-29 | 2012-12-19 | 三菱电机株式会社 | 将图像分割成超像素的方法 |
CN102663108A (zh) * | 2012-04-16 | 2012-09-12 | 南京大学 | 基于复杂网络模型并行化标签传播算法的药物社团发现方法 |
CN103699606A (zh) * | 2013-12-16 | 2014-04-02 | 华中科技大学 | 一种基于顶点切割与社区聚集的大规模图划分方法 |
Non-Patent Citations (1)
Title |
---|
LU WANG等: ""How to partition a billion-node graph"", 《2014 IEEE 30TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389324A (zh) * | 2014-08-29 | 2016-03-09 | Sql图表有限公司 | 用于图形数据的分布式计算的系统和方法 |
CN105389324B (zh) * | 2014-08-29 | 2019-08-27 | Sql图表有限公司 | 用于图形数据的分布式计算的系统和方法 |
CN105550765A (zh) * | 2015-11-30 | 2016-05-04 | 中国科学技术大学 | 一种路网距离计算中的代表元选取方法 |
CN105550765B (zh) * | 2015-11-30 | 2020-02-07 | 中国科学技术大学 | 一种路网距离计算中的代表元选取方法 |
WO2021120986A1 (zh) * | 2019-12-17 | 2021-06-24 | 中兴通讯股份有限公司 | 业务状态分析方法、服务器及存储介质 |
US11949548B2 (en) | 2019-12-17 | 2024-04-02 | Zte Corporation | Method for service status analysis, server, and storage medium |
CN113191405A (zh) * | 2021-04-16 | 2021-07-30 | 上海国微思尔芯技术股份有限公司 | 一种基于带权超图的多级聚类方法及计算机可读存储介质 |
CN113191405B (zh) * | 2021-04-16 | 2023-04-18 | 上海思尔芯技术股份有限公司 | 一种基于集成电路的带权超图的多级聚类方法及存储介质 |
CN113792170A (zh) * | 2021-11-15 | 2021-12-14 | 支付宝(杭州)信息技术有限公司 | 图数据划分方法、装置和计算机设备 |
CN113792170B (zh) * | 2021-11-15 | 2022-03-15 | 支付宝(杭州)信息技术有限公司 | 图数据划分方法、装置和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2015169029A1 (zh) | 2015-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105096297A (zh) | 一种图数据分割的方法及装置 | |
CN102768670B (zh) | 基于节点属性标签传播的网页聚类方法 | |
CN104462163B (zh) | 一种三维模型表征方法、检索方法及检索系统 | |
CN103838803A (zh) | 一种基于节点Jaccard相似度的社交网络社团发现方法 | |
CN108304918A (zh) | 一种数据并行的深度学习的参数交换方法和系统 | |
CN104679818A (zh) | 一种视频关键帧提取方法及系统 | |
CN104200272A (zh) | 一种基于改进遗传算法的复杂网络社区挖掘方法 | |
EP3053311A1 (en) | Systems and methods for distance approximation in graphs | |
CN110853120B (zh) | 基于分割绘图法的网络布局方法、系统及介质 | |
CN108960335A (zh) | 一种基于大规模网络进行高效聚类方法 | |
CN115293919A (zh) | 面向社交网络分布外泛化的图神经网络预测方法及系统 | |
CN111079078B (zh) | 面向结构网格稀疏矩阵的下三角方程并行求解方法 | |
CN106599122B (zh) | 一种基于垂直分解的并行频繁闭序列挖掘方法 | |
CN108614932B (zh) | 基于边图的线性流重叠社区发现方法、系统及存储介质 | |
CN106777065A (zh) | 一种频繁子图挖掘的方法及系统 | |
CN111581443B (zh) | 分布式图计算方法、终端、系统及存储介质 | |
CN117829307A (zh) | 一种面向数据异构性的联邦学习方法及系统 | |
Jain et al. | Non slicing floorplan representations in VLSI floorplanning: A summary | |
CN116303219A (zh) | 一种网格文件的获取方法、装置及电子设备 | |
CN110211227A (zh) | 一种三维场景数据处理方法、装置及终端设备 | |
CN104850591A (zh) | 一种数据的转换存储方法及装置 | |
CN109799483A (zh) | 一种数据处理方法和装置 | |
CN104850646A (zh) | 一种针对单个不确定图的频繁子图挖掘方法 | |
CN116128019A (zh) | Transformer模型的并行训练方法及装置 | |
CN103425787A (zh) | 一种渐进最优的三角网格重复顶点快速去除方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20151125 |
|
WW01 | Invention patent application withdrawn after publication |