一种基于先验信息和网络固有信息的复杂网络社区检测方法

文档序号:6626906阅读:380来源:国知局
一种基于先验信息和网络固有信息的复杂网络社区检测方法
【专利摘要】本发明属于进化计算和复杂网络社区挖掘【技术领域】,具体公开了一种基于先验信息和网络固有信息的复杂网络社区检测方法,主要用于复杂网络的社区划分问题。其过程为:构建网络邻接矩阵;使用邻接矩阵信息初始化种群;根据邻接矩阵固有的信息进行预处理操作,减少无效搜索;优化模块度函数Q;采用基因交叉操作和变异操作;使用基于变异和网络固有信息的局部搜索方法LSMM;使用评价函数NMI测试社区划分结果。本发明充分利用先验知识和网络邻接矩阵所包含固有信息对社区网络进行检测。本发明采用基于变异和网络固有信息的局部搜索算法,更有效的得到最优解。本发明方法比一般遗传算法能更好的发现真实世界网络和人工合成网络的社区结构。
【专利说明】-种基于先验信息和网络固有信息的复杂网络社区检测方 法

【技术领域】
[0001] 本发明属于进化计算领域和复杂网络社区挖掘【技术领域】,涉及在复杂网络领域采 用进化计算方法对网络进行社区划分的方法,具体是一种基于先验信息和网络固有信息的 复杂网络社区检测方法。

【背景技术】
[0002] 现实世界中存在各种各样的复杂网络,如城市中密集的交通网络、电力网络;大自 然中的生态网络;人类社会中的人与人之间上网关系网络等。随着社会和科技的日益发展, 人类需要对各种自然和人工的复杂网络有更好的认识。因此,复杂网络研究已经成为最重 要的多学科交叉研究领域之一。社区结构是真实世界中许多复杂网络所具有的一种普遍性 质,研究复杂网络的社区特性有利于我们更好的研究复杂网络。对复杂网络社区结构的研 究方法又可以称为复杂网络的社区检测方法。复杂网络社区检测的几种常见方法有:基于 图分割的方法,基于聚类的方法,基于优化函数的方法,基于进化计算的优化方法等。遗传 算法是进化计算中的一种方法,它求解问题时不依赖问题的具体领域,而只需要影响搜索 方向的目标函数和相应的适应度函数,对问题种类具有很强的鲁棒性,从而应用于许多领 域。使用遗传算法优化目标函数用于复杂网络的社区检测是一种新的研究方法。然而,传 统的遗传算法存在一些缺点,传统遗传算法不能很好的利用原始网络的节点之间的连接关 系,即网络的固有信息得不到充分利用,导致算法得不到好的划分结果;传统遗传算法是对 整个目标的可行域进行搜索,存在着过多的无效搜索;传统遗传算法,只是依靠简单交叉 变异操作,常导致划分结果不稳定,每次的划分结果偏差大。


【发明内容】

[0003] 本发明的目的在于克服传统遗传算法中不能很好的利用原始网络所包含的固有 信息所导致的网络划分结果不好,以及传统遗传算法由于其搜索范围是整个可行域空间导 致存在过多的无效搜索,并且传统遗传算法每次运行结果不稳定的问题。为此,本发明提 出了一种局部搜索算法,具体是一种基于先验信息和网络固有信息的复杂网络社区检测方 法,包括如下步骤:
[0004] 1)构建待检测复杂网络对应的邻接矩阵A :将具体的网络抽象为由点集和边集组 成的图G(V,E),V表示节点的集合,E表示边的集合,图G(V,E)中节点与节点之间的连接关 系存储在邻接矩阵A中,S卩如果图中节点i和节点j之间有边直接相连,则在邻接矩阵A中 对应的元素 Ay = 1,否则Ay = 0,邻接矩阵A中只有0和1两种元素值;
[0005] 2)初始化种群Spop :种群个体的编码方式采用字符串编码方式,对于一个个体G, G表示为一个正整数串,G = [gl,g2,...,gN],其中,N为节点的总数目,81是一个正整数, gi为个体G的一个基因,i e {1,2,...,N},表示节点i属于gi类,如果gi = gj(i尹j), 则他们属于同一个社区划分,否则他们属于不同的社区;为把社区划分问题转化为寻找适 应度最好的个体,将一个个体对应一种社区划分;在初始化时,把真实网络的真实社区数目 labeljnax作为先验信息,同时利用网络邻接矩阵固有信息对种群进行初始化;当一个个 体初始化时,每一个基因随机为该基因对应节点的邻居节点的基因值;如果该基因对应的 邻居节点还未被初始化,那么随机为一个在[l,label_max]范围内的一个正整数,它的邻 居节点是指和它有边直接相连的节点集合;随机产生popsize个上述种群个体,popsize 为需要初始化的种群个体数目;
[0006] 3)对产生的初始种群采取预处理操作:对于种群Spop中任意一个个体G = [g^ g2,…,gN],把个体G依次进行如下操作:把个体G = [gp g2,…,gN]中gi到gN依次更 新为其邻居节点中社区标签值出现最多的标签值,并且每个节点对自身标签的更新不受其 他节点的影响;
[0007] 4)对种群Spop的所有个体计算适应度函数模块度Q ;
[0008] 5)精英保存策略:找到并保存种群Spop中适应度值f最大的个体,也就是保存种 群的最优个体;
[0009] 6)种群选择操作:从种群Spop中找出popsize个个体用于进行下交叉变异操作; 选择操作采用锦标赛法,操作方法是,随机的从种群Spop中选取两个个体,比较适应度函 数Q值的大小,适度值大的个体被选择,选取popsize次,得到popsize个个体;
[0010] 7)种群交叉操作:从种群Spop中任意选取两个个体A和B,以概率p。进行交叉操 作;对于进行交叉的两个父代个体A和B,随机的选择两个点i,j,i彡j彡N,N是网络中节 点的总数目,以等概率进行选取三个操作中的一个进行交叉操作:交换个体A和个体B中第 1个到第i个基因;交换个体A和B中第i个到第j个基因;交换个体A和B中第j个到第 N个基因;
[0011] 8)种群变异操作:对于种群Spop, popsize个个体逐个进行变异操作;具体操作 为:对于任意一个个体G = [gp g2, . . .,gN],从gi到gN以概率pm进行变异,随机的把gi变 异为节点i的邻居节点中其中一个邻居节点的基因值;
[0012] 9)局部搜索算法:采用基于变异的局部搜索方法LSMM ;LSMM方法的主要步骤如 下,首先在一代中,把种群的popsize个个体按适应度值进行从大到小的顺序排列,对其中 前

【权利要求】
1. 一种基于先验信息和网络固有信息的复杂网络社区检测方法,其特征在于:包括如 下步骤: 1) 构建待检测复杂网络对应的邻接矩阵A:将具体的网络抽象为由点集和边集组成的 图G(V,E),V表示节点的集合,E表示边的集合,图G(V,E)中节点与节点之间的连接关系存 储在邻接矩阵A中,S卩如果图中节点i和节点j之间有边直接相连,则在邻接矩阵A中对应 的元素Aij = 1,否则Aij = 0,邻接矩阵A中只有O和1两种元素值; 2) 初始化种群Spop:种群个体的编码方式采用字符串编码方式,对于一个个体G,G表 示为一个正整数串,G= 其中,N为节点的总数目,gi是一个正整数,gi为个 体G的一个基因,iG{1,2,. . .,N},表示节点i属于81类,如果gi=gj(i尹j),则他们属于 同一个社区划分,否则他们属于不同的社区;为把社区划分问题转化为寻找适应度最好的 个体,将一个个体对应一种社区划分;在初始化时,把真实网络的真实社区数目labeljnax 作为先验信息,同时利用网络邻接矩阵固有信息对种群进行初始化;当一个个体初始化时, 每一个基因随机为该基因对应节点的邻居节点的基因值;如果该基因对应的邻居节点还未 被初始化,那么随机为一个在[l,label_maX]范围内的一个正整数,它的邻居节点是指和 它有边直接相连的节点集合;随机产生popsize个上述种群个体,popsize为需要初始化的 种群个体数目; 3) 对产生的初始种群采取预处理操作:对于种群Spop中任意一个个体G= Iig1,g2,…,gN],把个体G依次进行如下操作:把个体G=Iig1,g2,…,gN]中gi到gN依次更 新为其邻居节点中社区标签值出现最多的标签值,并且每个节点对自身标签的更新不受其 他节点的影响; 4) 对种群Spop的所有个体计算适应度函数模块度Q; 5) 精英保存策略:找到并保存种群Spop中适应度值f?最大的个体,也就是保存种群的 最优个体; 6) 种群选择操作:从种群Spop中找出popsize个个体用于进行下交叉变异操作;选择 操作采用锦标赛法,操作方法是,随机的从种群Spop中选取两个个体,比较适应度函数Q值 的大小,适度值大的个体被选择,选取popsize次,得到popsize个个体; 7) 种群交叉操作:从种群Spop中任意选取两个个体A和B,以概率pc进行交叉操作; 对于进行交叉的两个父代个体A和B,随机的选择两个点i,j,i<j<N,N是网络中节点 的总数目,以等概率进行选取三个操作中的一个进行交叉操作:交换个体A和个体B中第1 个到第i个基因;交换个体A和B中第i个到第j个基因;交换个体A和B中第j个到第N 个基因; 8) 种群变异操作:对于种群Spop,popsize个个体逐个进行变异操作;具体操作为:对 于任意一个个体G=Iig1,g2,. . .,gN],从gi到gN以概率pm进行变异,随机的把gi变异为节 点i的邻居节点中其中一个邻居节点的基因值; 9) 局部搜索算法:采用基于变异的局部搜索方法LSMM;LSMM方法的主要步骤如下, 首先在一代中,把种群的popsize个个体按适应度值进行从大到小的顺序排列,对其中前 个个体进行局部搜索;局部搜索过程中,对每一个个体的每一个基因找到该基 因节点对应的所有的邻居节点的不同的基因值,并且存储它们,把出现次数最多的基因值 替换原有的基因值; 10) 对种群Spop的所有个体计算适应度函数模块度Q; 11) 重复⑷到(10)直到迭代次数达到Gmax为止,其中Gmax为种群迭代次数。
2.根据权利要求1所述的一种基于先验信息和网络固有信息的复杂网络社区检测方 法,其特征在于:步骤(4)所述的"计算适应度函数模块度Q",按如下步骤进行: (2a)模块度Q函数为:
其中,m为网络中边的总数目;i,j= 1,2,. . .,N,N为网络中节点的总数目;au为邻接 矩阵Au第i行第j列的元素值;ki和h分别是节点i和节点j的度值,即和该节点相连的 节点的数目;如果节点i和节点j在同一个社区,贝1J5 (i,j) = 1,否则5 (i,j) = 〇 ; (2b)计算m的值,m的值为邻接矩阵A中所有元素值之和的二分之一; (2c)对于网络中的节点i,j= 1,2,...,N,N为网络中节点的总数目,计算ki、kj和 S(i,j)的值,进一步计算^
的值; (2d)计算模块度Q的函数值D= '得到模块度函数值。 1J
【文档编号】G06N3/12GK104268629SQ201410468395
【公开日】2015年1月7日 申请日期:2014年9月15日 优先权日:2014年9月15日
【发明者】刘若辰, 焦李成, 李冰杰, 刘红英, 王爽, 马晶晶, 张向荣, 尚荣华 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1