基于最短路径和密度聚类的图分割方法

文档序号:6639920阅读:217来源:国知局
基于最短路径和密度聚类的图分割方法
【专利摘要】本发明涉及一种基于最短路径和密度聚类的图分割方法,包括:1.将图G=(V,E)上的任意两点间的距离定义为两点间的最短路径长度,由此获得一个定义了任意两点距离的距离空间;2.利用基于密度的聚类方法对上述步骤一得到的点集进行聚类,并将未能归类的噪声点归为一类;3.将步骤2得到的子集还原成原图分割后的子图。本发明能够确保分割后的子图具有连通性,且分割速度快,通用性佳。
【专利说明】基于最短路径和密度聚类的图分割方法

【技术领域】
[0001]本发明涉及一种基于最短路径和密度聚类的图分割方法。

【背景技术】
[0002]图论中的图是一种计算机科学中最常用的,适用范围很广的抽象数据结构。现实世界中的许多复杂关系都能够用图来表示,如蛋白质的分子结构,社交网络,电路布线等,与图相关的应用涉及了很多领域,传统的有最优运输路线的确定、疾病爆发路径的预测、科技文献的引用关系等;新兴的有社交网络分析、语义Web分析、生物信息网络分析等。图分割(Graph Partit1n)是指对给定图G= (V, E)的节点集合V进行划分。通常的目标是使得划分后,属于同一子图中的节点之间联系较为紧密,不同子图之间的联系较为松散,即子图内部的高耦合性,子图之间的低耦合性。这一技术可以运用于大规模图计算数据分割,社交网络中社区的发现等场景。
[0003]近十几年来,随着互联网的普及和Web2.0技术的推动,网页数量增长迅猛,据CNNIC统计,2010年中国网页规模达到600亿,年增长率78.6%,而基于互联网的社交网络也后来居上,如全球最大的社交网络Facebook,已有约7亿用户,国内如QQ空间、人人网等,发展也异常迅猛。真实世界中实体规模的扩张,导致对应的图数据规模迅速增长,动辄有数十亿个顶点和上万亿条边。大规模强调的就是单个图的大规模性,通常包含10亿个以上顶点。面对这样大规模的图,对海量数据处理技术提出了巨大挑战。
[0004]目前,常用的图分割算法主要有基于经典割集理论的方法、基于谱分析的图分割算法、基于分治和层次策略的分割算法、几何图分割算法等,这些方法都无法保证分割后所得到的子图是连通的,基于布尔代数的二分树法复杂度高,只能适用于节点规模小的图分割问题,其他启发式图分割算法虽然也能够保证子图的连通,但都是通过结合图的某些特点而得出的方法,只能适用具有特殊结构的图。针对规模巨大,结构复杂的无向图,传统图分割算法无法做到快速而准确的图分割。
[0005]何慧等人在中国专利CN101741611B中发明了一种基于MLKP/CR算法的无向图分割方法。该方法首先通过对无向图进行规约降低图的规模,然后对得到的较小规模的图进行K划分获得K个自连通的子图,最后对K个子图进行优化求精,使最终所得K个子图能够还原得到原无向图。该方法需要设定参数K,即分割后的子图数,无法适用于初始时难于确定子图数量的图分割问题。
[0006]刘静等人在中国专利CN102722639A中发明了一种基于进化计算对社会系统进行社区检测的方法。该方法通过构建社会系统对应的加权无向图模型,将社会系统社区检测问题转换为其对应的加权无向图分割问题,提出了一种选取修正模块度Q作为图分割准则的带有进化策略的图分割技术,该方法存在算法收敛性问题。


【发明内容】

[0007]有鉴于此,有必要提供一种基于最短路径和密度聚类的图分割方法。
[0008]本发明提供一种基于最短路径和密度聚类的图分割方法,其特征在于,该方法包括如下步骤:a.设定图G= (V, E),V = {vj,每个节点Vi的类别标记为O ;b.判断V中所有节点的类别是否都不为0,如果V中有节点的类别为0,则随机选取一个类别为O的节点Vj,并计算得到'的邻域集合N(Vp ;c.判断'的邻域集合的密度|N(Vp I是否小于密度阈值minPt,如果Vj的邻域集合的密度| N(v」)|不小于密度阈值minPt,则将Vj的类别标记为k,并令集合X = N(Vj),将 '从集合X中删除;d.判断集合X是否为空,当集合X不为空时,计算集合X中每个节点Vm的邻域集合的密度IN (V J I,当|N (Vm) I不小于minPt时,将N (Vm)中类别为O和-1的节点加入到集合X中;e.对于V中的所有节点重复步骤b至步骤d,直至所有的节点都被标记为非O ;f.将所有标记过的类别相同的节点归为一个子类,并将所有子类节点集合还原成子图。
[0009]其中,所述的步骤b还包括:如果V中所有节点的类别均不为0,则直接进入步骤
fo
[0010]所述的步骤C还包括:如果Vj的邻域集合的密度IN (V j) I小于密度阈值minPt,则将Vj的类别标记为-1,然后返回步骤b。
[0011]所述的步骤d具体包括:dl.判断集合X是否不为空,如果集合X不为空,则随机选取集合X中的一个节点Vm,并判断\的类别是否为-1 ;d2.如果vm的类别不为-1,则计算得到N(Vm) ;d3.判断IN(Vm) I是否小于密度阈值minPt,如果I N(Vm) |不小于密度阈值minPt,则将N(vm)中类别为O和-1的节点加入到集合X中;d4.将Vni的类别标记为k,并将v J人X中删除。
[0012]所述的步骤d2还包括:如果\的类别为-1,则直接进入步骤d4。
[0013]所述的步骤d3还包括:如果|N(vm)|小于密度阈值minPt,则直接进入步骤d4。
[0014]本发明一种基于最短路径和密度聚类的图分割方法,采用密度聚类的思想对图进行分割,能够有效地进行图分割。本发明能够确保分割后所得的子图具有连通性;当图的规模较大时,也能以较快的速度得到很好的分割效果;具有很好的通用性,能扩展到有向图的分割;能够将孤立点单独归类。

【专利附图】

【附图说明】
[0015]图1为本发明基于最短路径和密度聚类的图分割方法的流程图。

【具体实施方式】
[0016]下面结合附图及具体实施例对本发明作进一步详细的说明。
[0017]参阅图1所示,是本发明基于最短路径和密度聚类的图分割方法较佳实施例的作业流程图。
[0018]本实施例以加权无向图的分割为例进行说明:
[0019]步骤S400,初始化。加权无向图G= (V, E), V = IviKE= {ej,w(ej表示边Oi的权重。密度阈值记为minPt,距离阈值记为minEp。定义两点间的距离为两点间的最短路径长度,最短路径即为可达路径中路径权重之和最小的路径,不可达的节点之间的距离定义为正无穷。
[0020]对于一个节点Vi,到Vi的距离小于距离阈值minEp的所有节点构成一个邻域集合N(Vi),Vi是该邻域集合的中心点。
[0021]初始设定类别k = 1,并将每个节点的类别标记为O。
[0022]步骤S401,判断V中所有节点的类别是否都不为O。如果V中所有节点的类别都不为0,则直接进入步骤S413 ;否则,进入步骤S402。
[0023]步骤S402,随机选取一个类别为O的节点Vj,计算得到N(Vj)。
[0024]步骤S403,判断Vj的邻域集合的密度|Ν(ν」)|是否小于密度阈值minPt。如果Vj的邻域集合的密度|N(Vj) I小于密度阈值minPt,则进入步骤S404后,返回步骤S402 ;否则,直接进入步骤S405。
[0025]步骤S404,将Vj的类别标记为-1。
[0026]步骤S405,将Vj的类别标记为k,并令集合X = N(v」),将Vj从集合X中删除。
[0027]步骤S406,判断集合X是否不为空。如果集合X为空,则直接进入步骤S412 ;否贝I],如果集合X不为空,则进入步骤S407。
[0028]步骤S407,随机选取集合X中的一个节点vm,并判断Vm的类别是否为_1。如果v m的类别为-1,则直接进入步骤S411 ;否则,进入步骤S408。
[0029]步骤S408,计算得到N (Vm)。
[0030]步骤S409,判断N(vm) |是否小于密度阈值minPt。如果N(Vm) |小于密度阈值minPt,则直接进入步骤S411 ;否则,直接进入步骤S410。
[0031]步骤S410,将N(Vm)中类别为O和-1的节点加入到集合X中。
[0032]步骤S411,将Vm的类别标记为k,并将V _>人X中删除,然后转至步骤S406判断集合X是否不为空。
[0033]步骤S412,k自动加I后转至步骤S401,直至图G中每个节点都被处理并被标记为非O。其中,被标记为-1的节点记为噪声节点,也就是原图中邻接节点非常少的节点和孤立节点。
[0034]步骤S413,将类别相同的节点Vi归为一个子类:将噪声节点归为噪声子类,其他已经标记过的、类别相同的分别归为一个子类,最后将所有的各类子类节点集合还原成子图。
[0035]可以理解的是,在上述的步骤S402、步骤S408、步骤S409及步骤S410中,可以根据实际应用情况选择图的不同存储方式,如邻接表,领接矩阵,十字链表和邻接多重表,不同的存储方式有不同的计算邻域集合的方法。
[0036]实施例
[0037]一个加权无向图 G= (V, E), V = {vj,E = {ej,i = {1,2,3,...,η},w (e^ 表示边4的权重;采用邻接表作为图的存储结构,每个节点的邻接表信息为L(Vi) = {{vn, en}
,iVi2> θ?2^,iVi3> ei3^,...,{Vim,einJ ^。
[0038]设定密度阈值minPt,距离阈值minEp,设定初始类别k = 1,并将每个节点的类别标记为 0,即 typej= 0,i = {1,2,3,...,η}。
[0039]随机选取V中类别标记为O的节点V」,计算N(Vj)。读取邻接表信息,计算邻接表中每个节点到Vj的路径长度Dis (即连接邻接表中节点与V」的边的权重),比较Dis与距离阈值minEp的大小,将邻接表中距离小于minEp对应的节点加入到N(Vj),并进一步深度搜索计算,即逐个读取已加入到N (Vj)中的Vj的邻居节点的邻接表信息,计算邻接表中每个节点到Vj的路径长度Dis (即连接邻接表中节点与相应V j的邻居节点的边的权重加上前一步已计算的该Vj的邻居节点到V」的权重),比较Dis与距离阈值minEp的大小,将邻接表中距离小于minEp对应的节点加入到N(Vj),如此继续深度搜索,即只要某个节点存在一条路径到Vj,该路径上所有边的总权重小于minEp,就将该节点加入到N(Vj)中,直到所有的符合条件的节点都已加入。
[0040]判断Vj的邻域集合的密度IN (V j) I是否小于密度阈值minPt,若小于minPt,将Vj的类别标记为-1,并重新从V中选取一个类别为O的节点,重复以上处理过程,直到V中节点的类别都不为O ;否则,将'的类别标记为k。令集合X = N(Vp,将'从集合X中删除。
[0041]然后对集合X进行处理,直到X为空:
[0042]将集合X中所有节点类别为-1的节点直接标记为k,并删除掉这些节点,对于类别为O的节点,将其标记为k,删除这些节点,并采用上述方法计算其邻域集合,将邻域集合密度大于minPt的邻域集合中类别为O和-1的节点合并到集合X中。
[0043]当集合X为空时,k自动增I ;并重新从V中选取一个类别为O的节点,重复以上处理过程,直到V中节点的类别都不为O。
[0044]最后每个节点都被处理并被标记为非0,被标记为-1的节点记为噪声节点,也就是原图中邻接节点非常少的节点和孤立节点;将噪声节点归为噪声子类,其他已经标记过的、类别相同的分别归为一个子类,最后将所有的各类子类节点集合还原成子图。
[0045]本发明基于最短路径计算出各个节点之间的距离,再采用基于密度的聚类方法对节点进行分类,利用最终的节点分类集合,还原得到图分割后所得的子图。该方法还能找出图中的孤立点和规模很小的子图。
[0046]虽然本发明参照当前的较佳实施方式进行了描述,但本领域的技术人员应能理解,上述较佳实施方式仅用来说明本发明,并非用来限定本发明的保护范围,任何在本发明的精神和原则范围之内,所做的任何修饰、等效替换、改进等,均应包含在本发明的权利保护范围之内。
【权利要求】
1.一种基于最短路径和密度聚类的图分割方法,其特征在于,该方法包括如下步骤: a.设定图G= (V,E),V = {vj,每个节点Vi的类别标记为0 ; b.判断V中所有节点的类别是否都不为0,如果V中有节点的类别为0,则随机选取一个类别为0的节点 ',并计算得到 '的邻域集合N(v j); c.判断ν」的邻域集合的密度|Ν(ν」)|是否小于密度阈值minPt,如果ν」的邻域集合的密度IΝ (ν」)|不小于密度阈值minPt,则将ν」的类别标记为k,并令集合X = N(v」),将ν」从集合X中删除; d.判断集合X是否为空,当集合X不为空时,计算集合X中每个节点vm的邻域集合的密度|N(vm) |,当|N(vm) |不小于minPt时,将N(vm)中类别为0和-1的节点加入到集合X中; e.对于V中的所有节点重复步骤b至步骤d,直至所有的节点都被标记为非0; f.将所有标记过的类别相同的节点归为一个子类,并将所有子类节点集合还原成子图。
2.如权利要求1所述的方法,其特征在于,所述的步骤b还包括: 如果V中所有节点的类别均不为0,则直接进入步骤f。
3.如权利要求1所述的方法,其特征在于,所述的步骤c还包括: 如果Vj的邻域集合的密度|N(Vj)|小于密度阈值minPt,则将Vj的类别标记为-1,然后返回步骤b。
4.如权利要求1所述的方法,其特征在于,所述的步骤d具体包括: dl.判断集合X是否不为空,如果集合X不为空,则随机选取集合X中的一个节点vm,并判断vm的类别是否为-1 ; d2.如果vm的类别不为-1,则计算得到N(vm); d3.判断N(vm) I是否小于密度阈值minPt,如果N(vm) |不小于密度阈值minPt,则将N(vm)中类别为0和-1的节点加入到集合X中;d4.将的类别标记为k,并将v J人X中删除。
5.如权利要求4所述的方法,其特征在于,所述的步骤d2还包括: 如果\的类别为-1,则直接进入步骤d4。
6.如权利要求4所述的方法,其特征在于,所述的步骤d3还包括: 如果|N(vm) |小于密度阈值minPt,则直接进入步骤d4。
【文档编号】G06F19/00GK104504266SQ201410816495
【公开日】2015年4月8日 申请日期:2014年12月24日 优先权日:2014年12月24日
【发明者】李刚, 宁立, 张涌 申请人:中国科学院深圳先进技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1