CN103745258B - 基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法 - Google Patents
基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法 Download PDFInfo
- Publication number
- CN103745258B CN103745258B CN201310415022.XA CN201310415022A CN103745258B CN 103745258 B CN103745258 B CN 103745258B CN 201310415022 A CN201310415022 A CN 201310415022A CN 103745258 B CN103745258 B CN 103745258B
- Authority
- CN
- China
- Prior art keywords
- pop
- node
- community
- population
- individual
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法属于复杂网络社区挖掘技术领域,其特征在于,包括以下步骤:计算机初始化、种群初始化、用最小生成树法对种群聚类、对种群内聚类后的各个体进行单点交叉操作、变异操作和选择操作、迭代T次得到复杂网络的最佳社区划分。本发明通过对种群进行最小生成树聚类,利用种群间的交叉,维持种群多样性,抑制未成熟收敛现象,利用物种间较优的个体进行交叉操作,增大了搜索含有更优解的空间的概率,通过选择使局部模块度Ml最大的邻居结点作为变异值,提高了算法的搜索效率。
Description
技术领域
本发明属于复杂网络社区挖掘技术领域,具体涉及一种基于聚类的遗传算法用在复杂网络社区挖掘上的一种新方法,是一种利用计算机技术、遗传算法、聚类方法等实现复杂网络社区挖掘的方法,是复杂网络领域中关于社区挖掘的算法。
背景技术
在自然界、生物界、工程界和人类社会等各个领域存在着大量的复杂系统,这些系统由众多相互作用的子系统组成。在各领域研究中,常把子系统抽象成结点,把子系统之间的相互作用抽象成结点之间的边,则复杂系统可以抽象为相同的复杂网络结构,如Internet、万维网、电力网、各种社交网、食物链网络、蛋白质网络、新陈代谢网络等。因此,研究复杂网络可以揭示隐藏在自然界、生物界、工程界和人类社会等复杂系统中的共同规律。
大量实证研究表明,复杂网络普遍存在着小世界性、无标度性等基本统计特性,复杂网络的另外一个重要特征-网络中所呈现出的社区结构,已被广泛关注,并成为目前复杂网络研究的一个热点。经研究认为,诸多网络是异构的,即复杂网络不是一大批性质完全相同的结点随机连接在一起,而是许多类型的结点的组合。相同类型的结点之间存在较多的连接,而不同类型的结点之间连接相对较少。我们把同一类型中的结点及结点之间的边所构成的子图称为社区。在大型复杂网络中自动搜寻或发现社区,具有重要的理论意义和实用价值,如社会网络中的社区代表根据兴趣或背景而形成的真实社会团体。发现这些社区结构有助于我们更加有效地理解和开发这些网络。
为了有效地分析复杂网络中的社区结构,众多优秀的社区挖掘算法被提出。基于图形分割的社区算法有基于图的Laplace矩阵的特征向量的谱二分法,以及使用贪婪算法对社区内以及社区间的边数进行优化从而达到获取网络的社区结构的Kernighan-Lin算法。基于层次聚类的社区挖掘算法有Louvain方法和Infomap方法;另外K-means算法也是一种高效的层次聚类算法。Newman和Givan在2004年提出了基于分裂的社区发现算法GN算法。基于模块度优化的社区挖掘算法有基于GN算法的FN算法、基于固体退火原理的SA算法、基于最大流—最小截定理的MFC算法。另外,Duch和Arenas提出了基于优化的EO算法,Palla提出用于发现重叠社区结构的CPM(cliquepercollationmethod)方法,Wu和Huberman提出了一种基于电阻网络电压谱的快速分割算法。
随着网络模块度函数的提出,复杂网络社区发现问题转化为一种目标函数优化问题,而遗传算法(GeneticAlgorithm)作为解决优化问题的一种非常有效的人工智能技术方法被广泛应用。遗传算法是一种模拟生物遗传进化过程的自适应全局优化概率搜索算法。它依据概率对各代种群施加选择、交叉和变异等遗传操作,使种群逐步进化到包含或接近最优解的状态,是解决各类复杂优化问题的一种有效算法。因此GA应用在社区发现问题上具有一定的理论意义和实现价值。
Gongetal.提出了基于GA的社区挖掘算法—MA(memeticalgorithm),该算法存在易发生局部最优现象,很难找到全局最优解的缺陷,RonghuaShang提出基于模块度和改进遗传算法的社区发现算法(MIGA)来解决此问题,然而MIGA算法存在需要先验知识-复杂网络中的社区个数,使得该算法在处理未知社区个数的复杂网络社区发现问题上性能大打折扣。
针对上面提出的遗传算法挖掘社区的缺陷,本文提出了一种基于最小生成树聚类的遗传算法用于复杂网络社区挖掘的方法——CGACD(ClusteringGeneticAlgorithmCommunityDetecting)算法,在很大程度上避免了算法的未成熟收敛现象发生,改进了算法的搜索性能。未成熟收敛是遗传算法中不可忽视的现象,它主要表现在:群体中所有的个体在进化初期都陷于同一极值而停止进化,也就是说进化初期群体中的个体缺乏多样性,导致算法过早收敛于局部最优解,影响算法的整个性能。为了解决这个问题,我们算法在进化初期对种群进行最小生成树聚类,选择不同类的个体进行遗传操作。由于增大了配对个体之间距离,维持了群体中个体的多样性,从而抑制了未成熟收敛现象的产生。
发明内容
本发明的内容是提出了一个基于最小生成树聚类的遗传算法用于复杂网络社区挖掘的新方法。该方法用归一化共用信息(NormalizedMutualInformation,NMI)相似度标准作为测量种群中个体间的相似度,通过最小生成树聚类将种群中的个体进行划分归类,在遗传算法中引入种群聚类进行遗传进化,提出了CGACD(ClusteringGeneticAlgorithmCommunityDetecting)。
由于CGACD算法引入了种群聚类思想,而如何定义种群中个体间的距离是聚类的关键问题。我们针对复杂网络社区的具体特点引入归一化共用信息(NMI)相似度标准来定义个体间的相似度,继而得到个体间距离;然后通过最小生成树聚类算法得到种群的划分归类,交叉操作中使用不同类别的个体进行单点交叉,由于增大了配对个体之间距离,维持了群体中个体的多样性,从而抑制了未成熟收敛现象的产生。
本发明中所用到的有关遗传算法的概念如下:
种群,用Pop表示,指的是复杂网络若干可能的社区划分结果,社区方法称为社区挖掘方法S,s为属于S中的一种划分方法,s∈(1,2,...,s,...,S),S表示划分方法的总数,其中的任何一种划分结果称为个体,用Pop(s)表示,所有可能的划分结果数称为种群规模;
个体的编码,是用于表示某种划分结果的一个数组或位串,也称染色体,所述基因在所述染色体中的位置称为基因座或基因位,同时也表示所述复杂网络中的一个结点,所述染色体所对应的是一个所述复杂网络的一种划分方法,所述染色体的解空间对应于全部可能的划分方法,从所述的解空间映射到一个所述的染色体,称为编码,从一个所述的染色体映射到所述解空间,称为解码;
基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法,其特征在于,包括如下步骤:
1)计算机初始化,
2)种群初始化,每个个体的基因位选择其基因位代表结点的某一邻居结点编号,这一邻居结点编号作为此基因位的等位基因,得到父种群,
3)计算父种群中所有个体的适应度Q,
4)对种群进行最小生成树聚类,并进行类别标记,
5)对不同类别的两个个体进行单点交叉,并将交叉后的个体放入子种群Pop2中
6)对Pop2中的个体作变异操作:选择使局部模块度增加最大的社区的邻居结点编号作为要变异的结点的等位基因,
7)从父种群和子种群中选择较好的S个体作为下一代父种群
8)重复4)~7),直到到达种群迭代次数,得到社区最佳划分
进一步,所述步骤2)中,所述网络以G(V,E)表示,其中,V表示网络结点的集合,网络中结点的编号为(1,2,...,v,...,V),v∈(1,2,...,v,...,V),E表示网络连接的集合。每个个体都有V个基因,每个基因都代表了网络G中的一个结点。网络中结点v的邻居结点集N(v)={p|结点p与结点v直接相连};
进一步,所述步骤3)中,适应度Q即为Newman提出的模块度函数Q;
其中,A=(Auv)V*V表示网络G的结点邻接矩阵,如果结点u与v之间存在边连接,则Auv=1,否则Auv=0;对于社区认同度函数δ(r(u),r(v)),其中,r(u)表示u所在的社区,如果r(u)=r(v),其取值为1,表示结点u和v在同一社区中;否则取值为0,表示结点u和v不在同一社区中;ku表示结点u的度;E表示网络G中总的边数,被定义为
进一步,所述步骤4)中,对种群最小生成树聚类具体过程如下:
(1)利用归一化共用信息I(Pop(sA),Pop(sB))度量一个种群中两个个体间的距离,归一化共用信息定义如下:
其中:
所述I是第一种划分方法sA中包含的社区数,
所述J是第二种划分方法sB中包含的社区数,
Ci.是所述置乱矩阵C中第i行的元素之和,i=1,2,...,i,...,I
C.j是所述置乱矩阵C中第j列的元素之和,j=1,2,...,j,...,J
Vij是第一种划分方法sA中的社区i和第二种划分方法sB中的社区j共同拥有的结点数;
当没有共同结点时,Vij=0,
当有部分共同结点时,Vij为其交集中的结点数,
当所有结点都相同时,Vij取社区i或社区j中的结点数,
V为所述复杂网络中的结点数,
当第一种划分方法sA的结果和第二种划分方法sB的结果完全相同时,I(Pop(sA),Pop(sB))=1,
当第一种划分方法sA的结果和第二种划分方法sB的结果不同时,I(Pop(sA),Pop(sB))=0,
(2)计算两种划分方法的结果Pop(sA)和Pop(sB)间的距离d:d=1-I(Pop(sA),Pop(sB));
(3)利用prim算法求得包含种群所有个体的最小生成树
(4)断开最小生成树中权值超过阈值的边,得到种群的森林,即得利种群的聚类划分
(5)深度遍历该森林,并对种群个体进行类别标记并保存到classid数组中。
进一步,所述步骤6)中,局部模块度定义如下:
本发明的有益效果在于:1.通过对种群进行最小生成树聚类,使得物种内的个体相似度很高,物种间的相似度较低,利用物种间的交叉,可以维持种群多样性,抑制未成熟收敛现象;2.利用物种间最优的个体进行交叉操作,增大了搜索含有更优解的空间概率,加速了算法的搜索效率;3.利用CGACD算法对真实世界网络――美国政治书网络(Polbooksnetwork)进行测试,测试结果验证了该方法的合理性和有效性。
附图说明
图1是本发明算法的流程图
图2是本发明算法中聚类的流程图
图3是本发明算法中个体变异操作的流程图
图4是polbooks网络应用本发明中方法的实验结果
具体实施方式
下面结合美国政治书网络(Polbooksnetwork)及流程图对本发明的具体实施方式进行详细说明
步骤一、计算机初始化,设定以下参数:
复杂网络,用G(V,E)表示,V为结点v的集合,网络中结点v的编号为(1,2,...,v,...,V),v∈(1,2,...,v,...,V),V为结点v的总数,E为边e的集合,e∈(1,2,...,e,...,E),E为边e的总数;
基因,表示一个结点v;
种群,用Pop表示,指的是复杂网络若干可能的社区划分结果,社区方法称为社区挖掘方法S,s为属于S中的一种划分方法,s∈(1,2,...,s,...,S),S表示划分方法的总数,其中的任何一种划分结果称为个体,用Pop(s)表示,所有可能的划分结果数称为种群规模;
个体的编码,是用于表示某种划分结果的一个数组或位串,也称染色体,所述基因在所述染色体中的位置称为基因座或基因位,同时也表示所述复杂网络中的一个结点,所述染色体所对应的是一个所述复杂网络的一种划分方法,所述染色体的解空间对应于全部可能的划分方法,从所述的解空间映射到一个所述的染色体,称为编码,从一个所述的染色体映射到所述解空间,称为解码;
步骤二、所述种群初始化
该方法中编码表示是基于基因座邻接的编码表示,在此编码表示中,每个基因型g都有V个基因,每个基因都代表了网络G中的一个结点。每个基因u都可以取一个v(v∈(1,2,...n))作为它的等位基因,即u和v之间存在一条连接。基于基因座邻接的编码表示是一种图表示方法,基因型g所表示的图中,若u和v之间存在一条边,同时说明了基因型g解码后结点u与v在同一个社区。
在初始化种群时,个体中的任意一个基因选择它的某一邻居结点作为其等位基因生成种群的个体,在很大程度上减少了社区划分解的搜索空间,同时在一定程度上使初始解空间靠近了最优解空间,加快了进化的进程。
任意选择一种复杂网络社区划分的结果,用个体Pop(s)表示,其具体实现步骤如下:
(1)每个个体初始化为一个长度为V位的编码,每个基因位的等位基因全为0,V为个体的编码长度。
(2)对个体的每个基因位v,找到网络中结点编号为v的邻居结点编号集N(v)={u|结点u与结点v直接相连}。
(3)随机选择邻居结点编号集N(v)中的一个结点编号u′作为基因位v的等位基因,即Pop(s,v)=u′,
对初始化种群中个体的步骤进行循环S(种群规模)次,完成种群初始化。
步骤三,计算适应度函数:
网络中的社区是具有“组内连接稠密,组间连接相对稀疏”特点的结点集合。复杂网络社区挖掘就是要探测出复杂网络中潜在的社区结构。本方法采用被广泛认可的网络模块度函数(Q函数)作为群体中个体的适应度函数。Q函数的定义如下:
其中:
E为所述复杂网络的总边数,
A=(Auv)v×v表示复杂网络的结点邻接矩阵,Auv=1,表示相邻结点u、v间用有向边连接,反之,则Auv=0,
ku、kv分别表示结点u、结点v的度数,度数是指一个结点所连接的有向边数,
r(u)、r(v)分别表示结点u、结点v所在的社区,
r(v)表示v所在的社区,
δ(r(u)r,是社区认同度函数,δ(r(u),r(v))=1,表示结点u和结点v在同一社区中,r(u)=r(v),否则,δ(r(u),r(v))=0,表示r(u)≠r(v),结点u和结点v不在同一社区,
上述公式(1)可分解为前面部分代表网络社区内部实际连接数目占网络的总连接数之比,后面部分代表随机连接情况下社区内部期望连接数目占网络的总连接数之比。网络社区结构越明显,它与随机网络的差异就越大。因此,适应度函数值越大,表明网络社区挖掘的效果越好,因此网络模块度函数(Q函数)也是衡量网络社区挖掘质量的一个被广泛使用的标准。
本步骤主要是根据公式(1)对种群中S个个体计算适应度并保存在适应度Pop_Q数组中。
步骤四、对种群进行聚类
(1)利用归一化共用信息I(Pop(sA),Pop(sB))度量一个种群中两个个体Pop(sA)和Pop(sB)间距离d,步骤如下:
step1:按下式计算归一化共用信息I(Pop(sA),Pop(sB))
C为置乱矩阵,共有I行J列,
所述I是第一种划分方法sA中包含的社区数,
所述J是第二种划分方法sB中包含的社区数,
Ci.是所述置乱矩阵C中第i行的元素之和,i=1,2,...,i,...,I
C.j是所述置乱矩阵C中第j列的元素之和,j=1,2,...,j,...,J
Vij是第一种划分方法sA中的社区i和第二种划分方法sB中的社区j共同拥有的结点数;
当没有共同结点时,Vij=0,
当有部分共同结点时,Vij为其交集中的结点数,
当所有结点都相同时,Vij取社区i或社区j中的结点数,
V为所述复杂网络中的结点数,
当第一种划分方法sA的结果和第二种划分方法sB的结果完全相同时,I(Pop(sA),Pop(sB))=1,
当第一种划分方法sA的结果和第二种划分方法sB的结果不同时,I(Pop(sA),Pop(sB))=0,
step2:按下式计算两种划分方法的结果Pop(sA)和Pop(sB)间的距离d:
d=1-I(Pop(sA),Pop(sB))(3)
(2)利用最小生成树对种群Pop进行聚类
由于最小生成树在生成过程中确保距离最近的两个顶点进行连边,即确保了根据设定的阈值断开后的各个部分内的相似度较高,各个部分间的相似度较低,这符合种群中个体聚类的准则。因此我们引入Prim算法得到种群中所有划分的一棵最小生成树,通过断开最小生成树中权值超过阈值的边即可得利种群的聚类划分,利用Prim算法保证了种群中同一类中的个体相似度较高,不同类的个体相似度较低。
进一步,对种群进行聚类的实现过程如下:
1).按下式所述计算种群Pop中各Pop(s)间的距离矩阵,是一个下三角的种群各个体间距离的矩阵:
2).利用Prim算法根据步骤1)得到的结果生成由S-1条距离最短的有向边组成的最小生成树,所述的每条有向边反映了该有向边的起点和终点之间的最短距离,步骤如下:
step1:对所述所有的S-1条最短有向边定义一个结构体数组edge[S-1],其中包括:
fromvex,每条有向边的起点,
endvex,每条有向边的终点,
所述起点fromvex和终点endvex间的距离d,表示各边的权重,所述距离d与所述权重成反比;
step2:按以下步骤对所述种群各个体间的距离矩阵使用Prim算法,得到由S-1条距离最短边组成的最小生成树:
a)在所述种群各个体间的距离矩阵的第1列j1中找出其余各个个体中离个体Pop(s1)距离最近的一个个体Pop(s1′),
b)在所述种群各个体间的距离矩阵的第2列j2中找出其余各个体中离所述个体Pop(s1′)最近的一个个体Pop(s2′),…,一直到第S列为止,得到S-1条最短边,
c)计算所述最小生成树中S-1条最短边的平均距离dcp,并把所述S-1条最短边中小于1.11*dcp的最大距离作为权重下限值,
d)从所述个体Pop(s1)开始,向下遍历所述S-1条最短边,去掉其中权重大于所述权重下限值的所有边,使所述最小生成树断裂成为一个森林,完成种群的聚类划分,再对所述森林中的各段最小子生成树中的个体进行类别标记,保存到类别数组classid[S]中,类别标记包括:类别序号以及各个体Pop(s)的排序号;
步骤五、对个体进行单点交叉操作
如同生物进化过程中的繁殖现象,通过两个个体基因的交换组合,产生出新的个体,继承了父母双方的部分基因,形成新的基因组合。在交叉操作中加入轮盘赌选择,使得交叉的个体具有较高的适应度值,加大搜索候选解空间的迁移性,加快最优划分的产生,其具体步骤如下:
(1)设定:交叉概率Pc=0.8,选择性地随机生成一个0~1之间的小数,条件为r1<Pc,
(2)按以下步骤进行轮盘赌选择:
step1:计算所述群体Pop中所有个体Pop(s)适应度的总和
step2:随机生成一个个体适应度累积和的界限值rand=r2*Qsum,r2为0~1之间的小数,累积计算种群Pop前s个个体Pop(s)的个体适应度累积和,一直到不小rand值,此刻的s值即为选中的个体Pop(s)编号,s=1,2,...,s,...,S;
step3:判断步骤step2中编号为Pop(s1)的个体和被选中的编号为s的个体是否在同一类别中,classid(s1)是否等于classid(s);
若相等,比较个体适应度值Pop_Q(s1)和Pop_Q(s),淘汰适应度较低的个体,返回步骤step1,一直到两个个体Pop(s1)和Pop(s)不在同一类别中,执行步骤step4,
若不相等,则执行步骤step4,
step4:按以下步骤对步骤step4得到的两个不在同一类别中的个体完成单点交叉,并保存到子种群数组Pop2中,
a)在步骤step4中所述的两个不属于同一类别的个体的个体编码串中,设定一个相同的交叉点jcross,jcross∈(1,2,...,V),jcross是一个位号,
b)把个体Pop(s1)的个体编码串中第jcross位到第V位与被选中的Pop(s)的个体编码串中的第jcross位到第V位进行互换,生成两个新的个体保存到所述子种群数组Pop2中;
step5:重复执行步骤step1~step4共S/2次,完成所有个体的交叉操作,得到Pop2(S);
步骤六、对步骤五产生的个体进行变异操作
变异操作是产生新基因的关键,具有局部搜索能力。根据复杂网络社区结构的具体特性,以及弱社区定义-社区内部总的边数要大于社区与网络其他部分相连接的边数之和,我们在弱社区定义的基础上引入局部模块度定义:
其中,Ml表示社区内部总的边数之和与社区和网络其他部分相连接的边数之和的比例,edgein代表社区内部的连接边数,edgeout代表本社区与网络其他部分的连接边数之和。
Ml值越大,此社区越合理。
此变异操作具有针对性,强化了变异算子的局部搜索能力,提高了算法的搜索性能。依次对Pop2中的个体Pop2(s)执行如下步骤:
(1)依次按以下步骤对个体Pop2(s)解码得到其社区划分结果:
step1:获得Pop2(s)中所有的有向连接边,并将所述有向边按边的结点编号顺序排列,
step2:初始化全部所述有向连接边的遍历状态,设定:
全部所述有向连接边的访问向量visited,是一个1×V的向量,向量分量用0、1表示,1表示已遍历,0表示未遍历,初始时为0,
全部所述有向连接边的社区编号向量lables,是一个1×V的向量,向量分量表示结点编号的社区编号,表示社区的划分结果,初始化时为0,
循环控制变量,用结点编号v表示,初始时,v=0,
step3:从Pop2(s)的循环控制变量v1开始遍历,未遍历,visited[v1]=0,则社区编号l=1,遍历后,lables[v1]=l,visited[v1]=1,
step4:继续执行步骤step3,按结点编号顺序遍历,一直到v=V为止,执行步骤step5,
step5:找出所有与结点v1有有向连接边、但尚未遍历的结点编号,组成结点编号集{u},重复循环执行步骤step3~step4,对结点u1标注,lables[u1]=l,visited[u1]=1执行步骤step6,
step6:找出所有与结点u1有有向连接边,但尚未遍历的结点组成结点编号集{w},对{w}中的结点w执行步骤step5,直到编号集{w}中结点编号都遍历完,再执行步骤step4,一直到结点V结束;
(2)设定:编译概率Pm=0.03,选择性地随机生成一个0~1间的小数r3,使r3<Pm,
(3)判断个体Pop2(s)的基因位v是否小于所述基因的编码长度,
若基因位v等于或大于编码长度V,则退出,
若基因位v小于编码长度V,则获取基因位v上作为邻居结点的各等位基因u以及其社区标签lables,执行步骤(4),
(4)遍历步骤(3)中各等位基因u的社区标签并计算各等位基因u属于各自社区时的局部模块度Ml,
(5)从步骤(4)的结果中找出能使Ml最大的社区标签,再随机取社区的一个结点作为变异值,
(6)重复执行步骤(3)~步骤(5),直到Pop2(S)中的个体Pop2(s)都完成变异操作;
步骤七、按以下步骤执行选择操作
对第一代的种群Pop和步骤六中所得到的种群Pop2中的各个体Pop(s)和Pop2(s)的个体适应度进行统一地由高到低的排序,取排序后的结果中的前S个个体作为下一代种群;
步骤八,重复执行步骤四到步骤七,得到社区最佳划分:
(1)设定迭代次数T=100,
(2)执行迭代操作,
(3)判断迭代次数t:
若t≤n,则返回步骤四,取n=20,0<n<T
若n<t<T,则返回步骤五,
(4)t=100时,得到复杂网络最佳社区划分。
下面详述说明本发明的实验结果:
为了说明该方法中加入聚类思想的合理性,我们选择算法GACD(无聚类操作的CGACD)与其进行比较,每个算法均运行30次。Polbooks网络的实验运行结果如图4所示。从图4中我们可以看出算法CGACD比算法GACD更易达到全局最优,且表现出很好的鲁棒性。
表1中列出了各算法在Polbooks网络上社区划分的结果,其中算法BGLL、CNM、PL、MOGA的实验结果取自ClaraPizzuti发表在IEEETransactiononEvolutionaryComputation中的实验结果。我们可以从表中看出,与其他算法相比,CGACD表现出比较出色的性能。
表1对各算法社区划分结果的比较(列表中值为各算法的模块度函数Q值)
Method | FN | GN | BGLL | CNM | PL | MOGA | CGACD |
Q值 | 0.502 | 0.5168 | 0.515 | 0.502 | 0.515 | 0.518 | 0.5231 |
Claims (1)
1.基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法,其特征在于,是在计算机中依次按以下步骤实现的:
步骤(1),计算机初始化,设定以下参数:
复杂网络,用G(V,E)表示,V为结点v的集合,网络中结点v的编号为(1,2,3,...,|V|),v∈(1,2,3,...,|V|),|V|为结点v的总数,E为边e的集合,e∈(1,2,3...,|E|),|E|为边e的总数;
基因,表示一个结点v;
种群,用Pop表示,指的是复杂网络若干可能的社区划分结果,社区方法称为社区挖掘方法S,s为属于S中的一种划分方法,s∈S,|S|表示划分方法的总数,其中的任何一种划分结果称为个体,用Pop(s)表示,所有可能的划分结果数称为种群规模;
个体的编码,是用于表示某种划分结果的一个数组或位串,也称染色体,所述基因在所述染色体中的位置称为基因座或基因位,同时也表示所述复杂网络中的一个结点,所述染色体所对应的是一个所述复杂网络的一种划分方法,所述染色体的解空间对应于全部可能的划分方法,从所述的解空间映射到一个所述的染色体,称为编码,从一个所述的染色体映射到所述解空间,称为解码;
步骤(2),种群初始化:
步骤(2.1),任意选择一种复杂网络社区划分的结果,用个体Pop(s)表示;
步骤(2.2),同一个所述复杂网络G(V,E)中结点v的总数|V|表示所述个体Pop(s)的编码长度,为|V|位,各个结点v的等位基因全部为零;
步骤(2.3),对于所述个体Pop(s)中的每个结点v,建立邻居结点集N(v)={u|(u,v)∈E},u表示邻居结点;
步骤(2.4),随机选择步骤(2.3)中某个结点v的所述邻居结点集N(v)={u|(u,v)∈E}中的一个结点u′作为所述结点v在自身邻居节点集N(v)={u|(u,v)∈E}中的一个等位基因,用Pop(s,v)=u′,表示个体Pop(s)中结点v在邻居节点集N(v)={u|(u,v)∈E}中的一个等位基因;
步骤(2.5),对种群Pop中的各个个体Pop(s)按步骤(2.1)~步骤(2.4)循环|S|次,完成种群初始化;
步骤(3)、对于一个设定的个体Pop(s),用一个网络模块度函数Q表示种群Pop对各个体Pop(s)的适应度,用Q表示一个复杂网络社区挖掘的充分度,所有结点p,q实际连接边的数目越大,表示社区挖掘越充分,Q值也越大;
其中:
|E|为所述复杂网络的总边数,
A=(Apq)|V|×|V|表示复杂网络的结点邻接矩阵,Apq=1,表示结点p、q间用有向边连接,反之,则Apq=0,
kp、kq分别表示结点p、结点q的度数,度数是指一个结点所连接的有向边数,
r(p)、r(q)分别表示结点p、结点q所在的社区,
对于函数δ(r(p),r(q)),若δ(r(p),r(q))=1,则表示结点p和结点q在同一社区中,r(p)=r(q),否则,δ(r(p),r(q))=0,表示r(p)≠r(q),结点p和结点q不在同一社区,
δ(r(p),r(q))=1,表示所有社区内,实际连接边数目占网络的总连接数目之比,
δ(r(p),r(q))=1,表示在随机情况下,所有社区内,期望连接边数目占网络的总连接数目之比,
把Q存入种群在一种划分方法s下的适应度数组Pop_Q中;
步骤(4),对于所有的网络社区划分方法S,按步骤(3)计算Pop_Q(s),得到一个对应于一个种群的Pop_Q;
步骤(5),按以下步骤对种群进行聚类:
步骤(5.1),利用归一化共用信息I(Pop(sA),Pop(sB))度量一个种群中两个个体Pop(sA)和Pop(sB)间距离d,步骤如下:
步骤(5.1.1),按下式计算归一化共用信息I(Pop(sA),Pop(sB))
其中:
C为置乱矩阵,共有I行J列,
所述I是第一种划分方法sA中包含的社区数,
所述J是第二种划分方法sB中包含的社区数,
Ci.是所述置乱矩阵C中第i行的元素之和,i=1,2,...,i,...,I,
C.j是所述置乱矩阵C中第j列的元素之和,j=1,2,...,j,...,J,
Vij是第一种划分方法sA中的社区i和第二种划分方法sB中的社区j共同拥有的结点数;
当没有共同结点时,Vij=0,
当有部分共同结点时,Vij为其交集中的结点数,
当所有结点都相同时,Vij取社区i或社区j中的结点数,
|V|为所述复杂网络中的结点数,
当第一种划分方法sA的结果和第二种划分方法sB的结果完全相同时,I(Pop(sA),Pop(sB))=1,
当第一种划分方法sA的结果和第二种划分方法sB的结果不同时,I(Pop(sA),Pop(sB))=0,
步骤(5.1.2),按下式计算两种划分方法的结果Pop(sA)和Pop(sB)间的距离d:
d=1-I(Pop(sA),Pop(sB));
步骤(5.2),按以下步骤,利用最小生成树对种群Pop进行聚类:
步骤(5.2.1),按下式所述计算种群Pop中各Pop(s)间的距离矩阵,是一个下三角的种群各个体间距离的矩阵:
步骤(5.2.2),利用Prim算法根据步骤(5.2.1)得到的结果生成由|S|-1条距离最短的有向边组成的最小生成树,每条有向边反映了该有向边的起点和终点之间的最短距离,步骤如下:
步骤(5.2.2.1),对所有的|S|-1条最短有向边定义一个结构体数组edge[|S|-1],其中包括:
fromvex,每条有向边的起点,
endvex,每条有向边的终点,
所述起点fromvex和终点endvex间的距离d,表示各边的权重;
步骤(5.2.2.2),按以下步骤对所述种群各个体间的距离矩阵使用Prim算法,得到由|S|-1条距离最短边组成的最小生成树:
步骤(5.2.2.2.1),在所述种群各个体间的距离矩阵的第1列j1中找出其余各个个体中离个体Pop(s1)距离最近的一个个体Pop(s1′),
步骤(5.2.2.2.2),在所述种群各个体间的距离矩阵的第2列j2中找出其余各个体中离所述个体Pop(s1′)最近的一个个体Pop(s2′),…,一直到第|S|列为止,得到|S|-1条最短边,
步骤(5.2.2.2.3),计算所述最小生成树中|S|-1条最短边的平均距离dcp,并把所述|S|-1条最短边中小于1.11*dcp的最大距离作为权重下限值,
步骤(5.2.2.2.4),从所述个体Pop(s1)开始,向下遍历所述|S|-1条最短边,去掉其中权重大于所述权重下限值的所有边,使所述最小生成树断裂成为一个森林,完成种群的聚类划分,再对所述森林中的各段最小子生成树中的个体进行类别标记,保存到类别数组classid[|S|]中,类别标记包括:类别序号以及各个体Pop(s)的排序号;
步骤(6),依次按以下步骤对步骤(5.2.2.2.4)得到的分属于不同类别的个体Pop(s)进行单点交叉操作,以提高社区最优划分的速度,步骤如下:
步骤(6.1),设定:交叉概率Pc=0.8,选择性地随机生成一个0~1之间的小数r1,条件为r1<Pc,
步骤(6.2),按以下步骤进行轮盘赌选择:
步骤(6.2.1),计算种群Pop中所有个体Pop(s)适应度的总和
步骤(6.2.2),随机生成一个个体适应度累积和的界限值rand=r2*Qsum,r2为0~1之间的小数,累积计算种群Pop前|s|个个体Pop(s)的个体适应度累积和,一直到不小rand值,此刻的|s|值即为选中的个体Pop(s)编号,|s|=1,2,3,...,|S|;
步骤(6.2.3),判断步骤(6.2.2)中编号为Pop(s1)的个体和被选中的编号为s的个体是否在同一类别中,classid(s1)是否等于classid(s);
若相等,比较个体适应度值Pop_Q(s1)和Pop_Q(s),淘汰适应度较低的个体,返回步骤(6.2.1),一直到两个个体Pop(s1)和Pop(s)不在同一类别中,执行步骤(6.2.4),
若不相等,则执行步骤(6.2.4),
步骤(6.2.4),按以下步骤对步骤(6.2.3)得到的两个不在同一类别中的个体完成单点交叉,并保存到子种群Pop2中,
步骤(6.2.4.1),在步骤(6.2.4)中两个不属于同一类别的个体的个体编码串中,设定一个相同的交叉点jcross,jcross∈(1,2,...,|V|),jcross是一个位号,
步骤(6.2.4.2),把个体Pop(s1)的个体编码串中第jcross位到第|V|位与被选中的Pop(s)的个体编码串中的第jcross位到第|V|位进行互换,生成两个新的个体保存到所述子种群数组Pop2中;
步骤(6.2.5),重复执行步骤(6.2.1)~(6.2.4)共|S|/2次,完成所有个体的交叉操作,得到Pop2(S);
步骤(7),对步骤(6.2.5)的结果按以下步骤进行变异操作,以强化变异操作的变异算子的局部搜索能力,提高搜索性:
步骤(7.1),定义:
弱社区,社区内部总的边数edgein大于社区与网络其他部分相连的边数之和edgeout,局部模块度
Ml值表示社区划分的充分度,Ml越大,表示社区划分越合理;
步骤(7.2),依次按以下步骤对所述子种群Pop2中的个体执行变异操作:
步骤(7.2.1),依次按以下步骤对步骤(6.2.5)得到的Pop2(S)的个体Pop2(s)解码得到其社区划分结果:
步骤(7.2.1.1),获得Pop2(s)中所有的有向连接边,并将所述有向边按边的结点编号顺序排列,
步骤(7.2.1.2),初始化全部所述有向连接边的遍历状态,设定:
全部所述有向连接边的访问向量visited,是一个1×|V|的向量,向量分量用0、1表示,1表示已遍历,0表示未遍历,初始时为0,
全部所述有向连接边的社区编号向量lables,是一个1×|V|的向量,向量分量表示结点编号的社区编号,表示社区的划分结果,初始化时为0,
循环控制变量,用结点编号n表示,初始时,n=0,
步骤(7.2.1.3),从Pop2(s)的循环控制变量n开始遍历,未遍历,visited[n]=0,则社区编号l=1,遍历后,lables[n]=l,visited[n]=1,
步骤(7.2.1.4),继续执行步骤(7.2.1.3),按结点编号顺序遍历,一直到n=|V|为止,执行步骤(7.2.1.5),
步骤(7.2.1.5),找出所有与结点n有有向连接边、但尚未遍历的结点编号,组成结点编号集{un},重复循环执行步骤(7.2.1.3)~(7.2.1.4),对结点u1标注,lables[u1]=l,visited[u1]=1执行步骤(7.2.1.6),
步骤(7.2.1.6),找出所有与结点u1有有向连接边,但尚未遍历的结点组成结点编号集{w},对{w}中的结点w执行步骤(7.2.1.5),直到编号集{w}中结点编号都遍历完,再执行步骤(7.2.1.4),一直到结点|V|结束;
步骤(7.2.2)设定:编译概率Pm=0.03,选择性地随机生成一个0~1间的小数r3,使r3<Pm,
步骤(7.2.3),判断个体Pop2(s)的结点v的编号是否小于所述基因的编码长度,
若结点v的编号等于或大于编码长度|V|,则退出,
若结点v的编号小于编码长度|V|,则获取结点v上作为邻居结点的邻居结点以及其社区标签lables,执行步骤(7.2.4),
步骤(7.2.4)遍历步骤(7.2.3)中各邻居结点的社区标签并计算邻居结点属于各自社区时的局部模块度Ml,
步骤(7.2.5),从步骤(7.2.4)的结果中找出能使Ml最大的社区标签再随机取社区标签的一个结点作为变异值,
步骤(7.2.6),重复执行步骤(7.2.3)~步骤(7.2.5),直到Pop2(S)中的个体Pop2(s)都完成变异操作;
步骤(8),按以下步骤执行选择操作:
对第一代的种群Pop和步骤(7.2.6)中所得到的子种群Pop2中的各个体Pop(s)和Pop2(s)的个体适应度进行统一地由高到低的排序,取排序后的结果中的前|S|个个体作为下一代种群;
步骤(9),重复执行步骤(5)~步骤(8),得到社区最佳划分;
步骤(9.1),设定迭代次数T=100,
步骤(9.2),执行迭代操作,
步骤(9.3),判断迭代次数t:
若t≤n,则返回步骤(5),取n=20,0<n<T
若n<t<T,则返回步骤(6),
步骤(9.4),t=100时,得到复杂网络最佳社区划分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310415022.XA CN103745258B (zh) | 2013-09-12 | 2013-09-12 | 基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310415022.XA CN103745258B (zh) | 2013-09-12 | 2013-09-12 | 基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103745258A CN103745258A (zh) | 2014-04-23 |
CN103745258B true CN103745258B (zh) | 2016-07-06 |
Family
ID=50502275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310415022.XA Active CN103745258B (zh) | 2013-09-12 | 2013-09-12 | 基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103745258B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105894222A (zh) * | 2014-12-16 | 2016-08-24 | 重庆邮电大学 | 一种物流配送路径优化方法 |
CN104700634B (zh) * | 2015-03-19 | 2017-07-14 | 北京工业大学 | 基于最小生成树聚类改进遗传算法的相邻交叉口干道协调控制方法 |
CN104809895B (zh) * | 2015-04-19 | 2017-09-08 | 北京工业大学 | 相邻交叉口的干道协调控制模型及其优化方法 |
CN105160404A (zh) * | 2015-08-19 | 2015-12-16 | 西安电子科技大学 | 基于多目标优化的复杂网络平衡聚类方法 |
CN105405057A (zh) * | 2015-11-02 | 2016-03-16 | 浙江工业大学 | 一种动态复杂网络社区多目标划分方法 |
CN105550753B (zh) * | 2016-01-21 | 2017-06-30 | 北京理工大学 | 基于两层遗传整数规划的复杂系统设计结构矩阵重构方法 |
CN108737158B (zh) * | 2018-04-10 | 2021-09-28 | 中国矿业大学 | 基于最小生成树的社交网络层次化社区发现方法及系统 |
CN108683534B (zh) * | 2018-05-17 | 2020-12-11 | 浙江工业大学 | 一种面向社区发现的网络薄弱节点搜索方法 |
CN110929509B (zh) * | 2019-10-16 | 2023-09-15 | 上海大学 | 一种基于louvain社区发现算法的领域事件触发词聚类方法 |
CN111209679B (zh) * | 2020-01-13 | 2023-09-29 | 广东工业大学 | 一种基于遗传算法的土壤重金属含量空间插值方法 |
CN111724855B (zh) * | 2020-05-07 | 2023-03-10 | 大连理工大学 | 一种基于最小生成树Prim的蛋白质复合物识别方法 |
CN113793643A (zh) * | 2021-08-19 | 2021-12-14 | 天津科技大学 | 一种基于图论和贪婪算法挖掘组学数据的方法 |
CN113837469B (zh) * | 2021-09-24 | 2023-10-27 | 国网四川省电力公司电力科学研究院 | 一种配网低电压调压器安装选点优化方法、系统及设备 |
CN115620167B (zh) * | 2022-11-16 | 2023-05-30 | 北京轨道未来空间科技有限公司 | 卫星遥感图像分析方法 |
CN116431743A (zh) * | 2022-12-15 | 2023-07-14 | 中国科学院地理科学与资源研究所 | 一种科技创新功能区划方法 |
CN117649883A (zh) * | 2023-12-04 | 2024-03-05 | 中国环境科学研究院 | 一种用于识别土著耐污染石油降解菌群落的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103208027A (zh) * | 2013-03-13 | 2013-07-17 | 北京工业大学 | 基于局部模块度的遗传算法用于大规模复杂网络社区挖掘的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1768053A1 (en) * | 2005-09-12 | 2007-03-28 | Honda Research Institute Europe GmbH | Evolutionary search for robust solutions |
-
2013
- 2013-09-12 CN CN201310415022.XA patent/CN103745258B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103208027A (zh) * | 2013-03-13 | 2013-07-17 | 北京工业大学 | 基于局部模块度的遗传算法用于大规模复杂网络社区挖掘的方法 |
Non-Patent Citations (2)
Title |
---|
《Community Mining in Complex Network Based on Parallel Genetic Algorithm》;Xilu Zhu,Bai Wang;《Genetic and Evolutionary Computing(ICGEC),2010 Fourth International》;20101215;全文 * |
《局部搜索与遗传算法结合的大规模复杂网络社区探测》;金第等;《自动化学报》;20110731;第37卷(第7期);873-882 * |
Also Published As
Publication number | Publication date |
---|---|
CN103745258A (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103745258B (zh) | 基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法 | |
Shang et al. | Community detection based on modularity and an improved genetic algorithm | |
Newman | Detecting community structure in networks | |
CN102594909B (zh) | 基于共邻矩阵谱信息的多目标社区检测方法 | |
CN104200272A (zh) | 一种基于改进遗传算法的复杂网络社区挖掘方法 | |
CN104914835A (zh) | 一种柔性作业车间调度多目标的方法 | |
Mu et al. | Multi-objective ant colony optimization algorithm based on decomposition for community detection in complex networks | |
Pizzuti | Boosting the detection of modular community structure with genetic algorithms and local search | |
Zhang et al. | A general joint matrix factorization framework for data integration and its systematic algorithmic exploration | |
Ghaffaripour et al. | A multi-objective genetic algorithm for community detection in weighted networks | |
Zarei et al. | Detecting community structure in complex networks using genetic algorithm based on object migrating automata | |
Zhang et al. | Ensemble of kernel extreme learning machine based elimination optimization for multi-label classification | |
CN109740722A (zh) | 一种基于Memetic算法的网络表示学习方法 | |
Wang et al. | Single-cell RNA sequencing data clustering using graph convolutional networks | |
CN104318306B (zh) | 基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法 | |
Wang et al. | A multi-agent genetic algorithm for local community detection by extending the tightest nodes | |
Zhang et al. | Data integration of hybrid microarray and single cell expression data to enhance gene network inference | |
Akey Sungheetha | An efficient clustering-classification method in an information gain NRGA-KNN algorithm for feature selection of micro array data | |
O'Connor et al. | Biclustering using message passing | |
ElMustafa et al. | Community detection using intelligent water drops optimisation algorithm | |
Parsa et al. | An EDA-based community detection in complex networks | |
Joldos et al. | A parallel evolutionary approach to community detection in complex networks | |
Akdemir et al. | Soft rule ensembles for supervised learning | |
Zarif et al. | Improving performance of multi-label classification using ensemble of feature selection and outlier detection | |
Pizzuti et al. | An Effective Resistance based Genetic Algorithm for Community Detection. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |