CN102799940B - 基于遗传算法和先验知识的网络社区划分方法 - Google Patents

基于遗传算法和先验知识的网络社区划分方法 Download PDF

Info

Publication number
CN102799940B
CN102799940B CN201210229678.8A CN201210229678A CN102799940B CN 102799940 B CN102799940 B CN 102799940B CN 201210229678 A CN201210229678 A CN 201210229678A CN 102799940 B CN102799940 B CN 102799940B
Authority
CN
China
Prior art keywords
population
community
node
network
chromosome
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.)
Expired - Fee Related
Application number
CN201210229678.8A
Other languages
English (en)
Other versions
CN102799940A (zh
Inventor
尚荣华
焦李成
白靖
靳超
吴建设
李阳阳
公茂果
马文萍
韩红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201210229678.8A priority Critical patent/CN102799940B/zh
Publication of CN102799940A publication Critical patent/CN102799940A/zh
Application granted granted Critical
Publication of CN102799940B publication Critical patent/CN102799940B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于遗传算法和先验知识的网络社区划分方法,主要解决技术划分稳定性差,准确率及效率低的问题。其实现步骤是:(1)读入一幅实际网络图,生成邻接矩阵;(2)设置初始化参数;(3)随机生成初始种群;(4)根据邻接矩阵计算适应度值,并选择出适应度值最大的450条染色体作为父代种群;(5)对父代种群中的染色体进行遗传操作,构成子代种群;(6)对子代种群进行局部搜索;(7)合并父代与子代种群,获得新的父代种群;(8)判断步骤(3)中运行代数是否达到50,若达到,则终止运行,输出适应度值最大的染色体中各个节点的划分结果,即社区的划分结果。本发明具有划分结果稳定、划分准确率和划分效率高的优点。

Description

基于遗传算法和先验知识的网络社区划分方法
技术领域
本发明属于计算机领域,涉及复杂网络中社区的划分方法,更进一步涉及WS小世界网络模型的社区划分,可用于进行网络中社区的划分,是近年来复杂网络的研究热点之一。
背景技术
目前复杂网络已成为多个学科的研究热点,随着对网络性质的物理意义和数学特性的深入研究,人们发现许多实际网络中都存在着社区结构,即整个网络是由若干个“社区”构成的。每个社区内部的节点间的连接相对紧密,但是各个社区之间的连接相对比较稀疏。揭示网络社区结构,对于深入了解网络结构与分析网络特性具有重要的意义。
为了能准确有效地分析网络中的社区结构,人们提出了许多不同的社区结构划分方法:基于模块度矩阵的谱算法,基于信息论的角度来分析网络社区结构的方法和基于模块度函数的网络社区结构划分方法,以及目前的研究热点基于模块度函数方法中的基于遗传算法的网络社区结构划分方法。
遗传算法,简称GA,起源于对生物系统所进行的计算机模拟研究。美国Michigan大学的Holland教授及其学生根据达尔文进化论和孟德尔的遗传学说进化思想而启发,于1975年提出了一种基于生物遗传和进化机制的适合于复杂系统优化的自适应概率优化技术:遗传算法。
遗传算法是建立在自然选择和群体遗传学机理基础上的随机、迭代、进化,具有广泛实用性的搜索方法。所有的自然种类都是适应环境而得以生存,这一自然适应性是遗传算法的主旋律,遗传算法结合了达尔文适者生存和随机信息交换,前者消除了解中不适应因素,后者利用了原有解已有的知识,从而有力地加快了搜索过程,遗传算法与传统的搜索算法不同,它从一组随机产生的初始解“种群”开始搜索过程。种群中的每个个体是问题的一个解,称为“染色体”,染色体是作为优化问题的解的代码。这些染色体在后续迭代中不断进化,称为遗传。在每一代用“适应值”来测量染色体的好坏,生成的下一代染色体称为后代。后代是由前一代染色体通过交叉或者变异运算形成的。新一代形成中,根据适应值的大小选择部分后代,从而保持种群大小是常数。适应值高的染色体被选中的概率较高。经过若干次迭代,可得到最优解。
目前,基于遗传算法的网络社区结构划分方法主要由初始化阶段、交叉算子和变异算子构成,其中初始化阶段采用的是随机初始化方式,交叉算子采用的是单向交叉方式,变异算子采用的是根据邻域节点信息进行变异的方式,这种方法存在的不足之处是:随机初始化导致算法初始化效率低下,单向交叉使得到的解的多样性较差,而根据邻域节点信息进行变异的方式使得算法划分效率低,从而导致算法全局搜索能力和局部搜素能力较弱,划分准确率和划分效率低。
发明内容
本发明的目的在于针对上述现有技术的不足,提出基于遗传算法和先验知识的网络社区划分方法,以提高全局搜索能力和局部搜索能力,并且有效地提高划分准确率和效率。
为实现上述目的,本发明技术方案包括如下步骤:
(1)读入一幅实际网络图,并生成网络图对应的邻接矩阵Aij
(2)设置参数:将社区划分类别数n设为2;运行次数初始值g设为1;最大运行次数gmax设为50、种群Spop大小设为450、交配池Spool大小设为225、锦标赛选择Stour大小设为2、交叉率Pc设为0.8和变异率Pm设为1;
(3)更新运行次数g,进行第g次运行:随机生成450条染色体作为初始种群,染色体表示为:
r m = [ r m 1 r m 2 . . . r m i . . . r m N ] ,
其中,向量rm表示种群中第m条染色体,表示种群中第m条染色体的第i个节点的类别,且均为正整数,N表示社区节点的总数;
(4)根据网络图的邻接矩阵Aij,计算染色体适应度值,并选择出适应度值最大的450条染色体作为父代种群;
(5)对父代种群中的染色体进行交叉操作和变异操作,产生新的染色体,构成子代种群;
(6)对子代种群进行局部搜索,并找到适应度值最大的染色体加入到子代种群中;
(7)合并父代种群与子代种群,并选择适应度值最大的450个染色体作为新的父代种群;
(8)判断步骤(3)中运行次数g是否达到最大运行次数50,若达到,则终止运行,输出新的父代种群中适应度值最大的染色体,该染色体中各个节点的划分结果就是社区的划分结果;否则,将新的父代种群作为初始种群,并从步骤(3)继续进行第g次运行,直到达到最大运行次数。
本发明与现有技术相比具有以下优点:
1.本发明由于加入社区划分类别数的先验信息,可以有效的提高社区划分结果的准确率。
2.本发明由于采用了双向交叉算子和单点变异算子,可以有效地提高全局搜索能力和划分效率。
3.本发明由于加入了模拟退火法进行局部搜索,可以有效地提高局部搜索能力和划分稳定性,有效地实现网络中社区的划分。
附图说明
图1为本发明的流程图;
图2为本发明使用的空手道图;
图3为用本发明和现有遗传算法对图2的最终划分结果图;
图4为本发明与现有遗传算法分别对图2进行划分后的共同信息NMI参数的比较图;
具体实施方式
下面结合图1对本发明的具体实施步骤做进一步的详细描述。
步骤1,读入一幅实际网络图,并生成网络图对应的邻接矩阵Aij
在本发明的实施例中,使用的网络图是实际网络中的空手道社区结构图,如图2所示,它是美国一所大学中空手道俱乐部成员间关系的网络,是20世纪70年代初,Zachary通过两年的观察时间构造的,图2由34个节点和78条边组成,图中34个节点代表空手道俱乐部中的34个成员,78条边代表各个成员之间存在联系。
在本发明的实施例中,采用的是空手道网络图的邻接矩阵,Aij表示为:
A ij = 0 1 1 . . . . 0 1 0 1 . . . . 0 1 1 0 . . . . 0 0 0 0 . . . 0 . . . . a ij . . . . . . . . . . . . . . . . . 0 0 0 . . . 0 0
其中,aij表示邻接矩阵中的元素,其中i、j表示网络中任意两个节点,若节点i与节点j相连,则aij=1,否则aij=0。
步骤2,设置如下初始化参数:
社区划分类别数n=2;
运行次数初始值g=1;
最大运行次数gmax=50;
种群大小Spop=450;
交配池大小Spool=225;
锦标赛选择大小Stour=2;
交叉率Pc=0.8;
变异率Pm=1。
步骤3,更新运行次数g,进行第g次运行:随机生成与种群大小Spop相同的染色体作为初始种群,即450条染色体作为初始种群,染色体表示为:
r m = [ r m 1 r m 2 . . . r m i . . . r m N ] ,
其中,向量rm表示种群中第m条染色体,表示种群中第m条染色体的第i个节点的类别,且均为正整数,N表示社区节点的总数。
在本发明实施例中,社区节点总数N为34。
步骤4,根据网络图的邻接矩阵Aij,计算染色体适应度值,并选择出适应度值最大的450条染色体作为父代种群。
在社区检测问题中现有的计算适应度值的方法有模块度密度函数D和模块度函数Q,在本发明实施例中,染色体适应度值的计算采用社区划分中常用的模块度函数Q进行:
Q = 1 / 2 M Σ ij ( A ij - k i k j 2 M ) δ ( i , j ) ,
其中M是网络中的边的个数,M=78,i,j为社区中任意两个节点,ki和kj分别为节点i和节点j的度,Aij是网络中的邻接矩阵,δ(i,j)表示社区中i和节点j的连接关系,如果节点i和节点j在一个社区中,则δ(i,j)=1,否则为δ(i,j)=0。
现有的选择方式有轮盘赌选择和二进制锦标赛选择,在本发明实施例中使用的是二进制锦标赛选择方式进行选择。
步骤5,对父代种群中的染色体进行交叉操作和变异操作,产生新的染色体,构成子代种群。
变异操作,其常用的方法包括单点变异和多点变异,采用其中的任何一种均可实现对染色体进行变异,在本发明实施例中,采用的是单点变异,即染色体中某一个节点随机变化为1或2。
交叉操作,其常用的方法包括单向交叉、双向交叉、单点交叉和多点交叉,采用其中的任何一种均可实现对染色体的交叉,在本发明实施例中,采用的是双向交叉,即随机选择出两条染色体,进行双方向交叉。
步骤6,对子代种群进行局部搜索,并找到适应度值最大的染色体加入到子代种群中。
在本发明实施例中,采用模拟退火法进行局部搜索,模拟退火法的参数设置为:温度T为800000,常数kk为0.99,T的循环次数tt为10。
步骤7,将父代种群与子代种群进行合并,并选择适应度值最大的450个染色体作为新的父代种群。
在本发明实施例中,合并父代种群与子代种群,是将父代种群和子代种群存储到同一个矩阵中。
步骤8,判断步骤3中运行次数g是否达到最大运行次数50,若达到,则终止运行,输出新的父代种群中适应度值最大的染色体,该染色体中各个节点的划分结果就是社区的划分结果;否则,将新的父代种群作为初始种群,并从步骤3继续进行第g次运行,直到达到最大运行次数50。
本发明的效果可以通过以下仿真实验进一步说明:
1.实验条件:
在内存1G、WINDOWS XP系统上使用Matlab 2009a进行仿真。
2.实验内容与结果:
仿真实验1,用本发明和现有方法对图2所示的空手道图进行社区的仿真划分,图2中1到34分别表示节点的编号,圆形和正方形分别为实际划分的两类社区,划分结果如图3所示,其中图3(a)为用本发明对图2的最终划分结果图;图3(b)为用现有遗传算法对图2的最终划分结果图。
从图3(a)可以看出,本发明把图2划分为两类,其中圆形和正方形为划分后的两个类别。本发明将节点1到节点34均正确的划分到了各自的类别中;从图3(b)可以看出现有遗传算法把图2划分为四类,其中圆形、正方形、三角形和菱形为划分后的四个类别,节点5、6、7、11和17正确划分应为圆形代表的类别,而现有遗传算法将这些节点错误的分为第三类,节点24、25、26、28、29和32正确划分应为正方形代表的类别,而现有遗传算法将这些节点错误的分为第四类;对比图3(a)和图3(b)可以得出本发明的社区划分方法对网络中社区的划分更为准确。
仿真实验2,用共同信息NMI指标对本发明和现有方法对图2所示的空手道图的划分过程进行评价,评价结果如图4所示,其中NMI反应的是社区划分结果与实际划分结果相比的准确率。
从图4可以看出,本发明对图2划分后的NMI值比现有遗传算法对图2划分后的NMI值更高,并且本发明的NMI值达到1,说明本发明的社区划分方法的准确率为100%,即为实际的网络社区划分结果。
综上,本发明提出的基于遗传算法和先验知识的网络社区划分方法,在现有遗传算法基础上加入了先验知识,改进交叉算子和变异算子,并且采用模拟退火进行局部搜索,克服了基于遗传算法的网络社区划分方法中划分准确率低,划分结果不稳定的缺点,能有效地提高社区划分的准确率和划分效率。

Claims (4)

1.一种基于遗传算法和先验知识的网络社区划分方法,包括如下步骤:
(1)读入一幅实际网络图,并生成网络图对应的邻接矩阵Aij
(2)设置参数:将社区划分类别数n设为2;运行次数初始值g设为1;最大运行次数gmax设为50、种群Spop大小设为450、交配池Spool大小设为225、锦标赛选择Stour大小设为2、交叉率Pc设为0.8和变异率Pm设为1;
(3)更新运行次数g,进行第g次运行:随机生成450条染色体作为初始种群,染色体表示为:
r m = r m 1 r m 2 . . . r m i . . . r m N ,
其中,向量rm表示种群中第m条染色体,表示种群中第m条染色体的第i个节点的类别,且均为正整数,N表示社区节点的总数;
(4)根据网络图的邻接矩阵Aij,计算染色体适应度值,并选择出适应度值最大的450条染色体作为父代种群;
(5)对父代种群中的染色体进行交叉操作和变异操作,产生新的染色体,构成子代种群;该交叉操作,采用双向交叉,该变异操作,采用单点变异;
(6)对子代种群采用模拟退火法进行局部搜索进行局部搜索,并找到适应度值最大的染色体加入到子代种群中;模拟退火法的参数设置为:温度T为800000,常数kk为0.99,T的循环次数tt为10;
(7)合并父代种群与子代种群,并选择适应度值最大的450个染色体作为新的父代种群;
(8)判断步骤(3)中运行次数g是否达到最大运行次数50,若达到,则终止运行,输出新的父代种群中适应度值最大的染色体,该染色体中各个节点的划分结果就是社区的划分结果;否则,将新的父代种群作为初始种群,并从步骤(3)继续进行第g次运行,直到达到最大运行次数。
2.根据权利要求1所述的网络社区划分方法,其中步骤(1)所述的邻接矩阵Aij,表示为:
A ij = 0 1 1 . . . . 0 1 0 1 . . . . 0 1 1 0 . . . . 0 0 0 0 . . . 0 . . . . a ij . . . . . . . . . . . . . . . . . 0 0 0 . . . 0 0 ,
其中,aij表示邻接矩阵中的元素,其中i、j表示网络中任意两个节点,若节点i与节点j相连,则aij=1,否则aij=0。
3.根据权利要求1所述的网络社区划分方法,其中步骤(4)所述的计算染色体适应度值,是采用社区划分中常用的模块度函数Q计算:
Q = 1 / 2 M Σ ij ( A ij - k i k j 2 M ) δ ( i , j ) ,
其中M是网络中的边的个数,i,j为社区中任意两个节点,ki和kj分别为节点i和节点j的度,Aij是网络中的邻接矩阵,δ(i,j)表示社区中第i节点与第j节点的连接关系,如果第i节点与第j节点在一个社区中,则δ(i,j)=1,否则为δ(i,j)=0。
4.根据权利要求1所述的网络社区划分方法,其中所述步骤(7)中的合并父代种群与子代种群,是将父代种群和子代种群存储到同一个矩阵中。
CN201210229678.8A 2012-07-04 2012-07-04 基于遗传算法和先验知识的网络社区划分方法 Expired - Fee Related CN102799940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210229678.8A CN102799940B (zh) 2012-07-04 2012-07-04 基于遗传算法和先验知识的网络社区划分方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210229678.8A CN102799940B (zh) 2012-07-04 2012-07-04 基于遗传算法和先验知识的网络社区划分方法

Publications (2)

Publication Number Publication Date
CN102799940A CN102799940A (zh) 2012-11-28
CN102799940B true CN102799940B (zh) 2014-12-17

Family

ID=47199039

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210229678.8A Expired - Fee Related CN102799940B (zh) 2012-07-04 2012-07-04 基于遗传算法和先验知识的网络社区划分方法

Country Status (1)

Country Link
CN (1) CN102799940B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103208027B (zh) * 2013-03-13 2015-07-22 北京工业大学 基于局部模块度的遗传算法用于大规模复杂网络社区挖掘的方法
US10210280B2 (en) 2014-10-23 2019-02-19 Sap Se In-memory database search optimization using graph community structure
CN111464343B (zh) * 2020-03-22 2021-10-26 华南理工大学 一种基于平均互信息的最大派系贪心扩展社区发现方法及系统
CN113763193A (zh) * 2021-01-25 2021-12-07 北京沃东天骏信息技术有限公司 群体检测方法、装置、电子设备和计算机存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054039A (zh) * 2010-12-30 2011-05-11 长安大学 一种提高遗传算法全局搜索能力的适应度定标方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8090665B2 (en) * 2008-09-24 2012-01-03 Nec Laboratories America, Inc. Finding communities and their evolutions in dynamic social network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054039A (zh) * 2010-12-30 2011-05-11 长安大学 一种提高遗传算法全局搜索能力的适应度定标方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
GA-Net:A Genetic Algorithm for Community Detection in Social Networks;Clara Pizzuti;《Parallel Problem Solving from Nature》;20081231;第1081-1090页 *
周明等.第三章 遗传算法的基本实现技术.《遗传算法原理及应用》.1999,(第1版),第32-64页. *
复杂网络社区挖掘-基于聚类融合的遗传算法;何东晓等;《自动化学报》;20100831;第36卷(第8期);第1160-1170页 *
局部搜索与遗传算法结合的大规模复杂网络社区探测;金弟等;《自动化学报》;20110731;第37卷(第7期);第873-882页 *

Also Published As

Publication number Publication date
CN102799940A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
CN102413029B (zh) 基于分解的局部搜索多目标复杂动态网络社区划分方法
CN103745258B (zh) 基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法
CN104866904A (zh) 一种基于spark的遗传算法优化的BP神经网络并行化方法
CN106934722A (zh) 基于k节点更新与相似度矩阵的多目标社区检测方法
CN103905246B (zh) 基于分组遗传算法的链路预测方法
CN103838820B (zh) 基于近邻传播的进化多目标优化社区检测方法
CN102799940B (zh) 基于遗传算法和先验知识的网络社区划分方法
CN105138717A (zh) 一种动态变异粒子群优化神经网络的变压器状态评估方法
CN103593703A (zh) 基于遗传算法的神经网络优化系统及方法
CN104200272A (zh) 一种基于改进遗传算法的复杂网络社区挖掘方法
CN103455612B (zh) 基于两阶段策略的非重叠与重叠网络社区检测方法
CN113033786B (zh) 基于时间卷积网络的故障诊断模型构建方法及装置
CN106953768A (zh) 一种网络可靠性模型及混合智能优化方法
CN113361761A (zh) 一种基于误差修正的短期风电功率集成预测方法及系统
CN113033093A (zh) 一种基于仿真模型的系统设计参数多目标优化方法
CN105512755A (zh) 一种基于分解的多目标分布估计优化方法
CN102663499A (zh) 基于模拟退火遗传算法的网络社区划分方法
CN103984996A (zh) 基于禁忌搜索和遗传算法的湖库藻类水华生成机理时变模型优化及预测方法
Weihong et al. Optimization of BP neural network classifier using genetic algorithm
CN106503793B (zh) 一种基于改进差分算法的神经网络短期风速预测方法
CN102521649A (zh) 基于密母计算的网络社区结构检测方法
CN104318306A (zh) 基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法
CN105678380A (zh) 一种基于小生境和自适应负相关学习的进化神经网络集成方法
CN103778327A (zh) 一种曲线拟合方法
CN113486952A (zh) 一种基因调控网络的多因素模型优化方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141217

Termination date: 20190704

CF01 Termination of patent right due to non-payment of annual fee