首页> 中国专利> 基于遗传算法和先验知识的网络社区划分方法

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

摘要

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

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-23

    未缴年费专利权终止 IPC(主分类):G06N3/12 授权公告日:20141217 终止日期:20190704 申请日:20120704

    专利权的终止

  • 2014-12-17

    授权

    授权

  • 2013-01-23

    实质审查的生效 IPC(主分类):G06N3/12 申请日:20120704

    实质审查的生效

  • 2012-11-28

    公开

    公开

说明书

技术领域

本发明属于计算机领域,涉及复杂网络中社区的划分方法,更进一步涉及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条染色体作为初始种群,染色体表示为:

>rm=[rm1rm2...rmi...rmN],>

其中,向量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表示为:

>Aij=011....0101....0110....0000...0....aij.................000...00>

其中,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条染色体作为初始种群,染色体表示为:

>rm=[rm1rm2...rmi...rmN],>

其中,向量rm表示种群中第m条染色体,表示种群中第m条染色体的第i个节点的类别,且均为正整数,N表示社区节点的总数。

在本发明实施例中,社区节点总数N为34。

步骤4,根据网络图的邻接矩阵Aij,计算染色体适应度值,并选择出适应度值最大的450条染色体作为父代种群。

在社区检测问题中现有的计算适应度值的方法有模块度密度函数D和模块度函数Q,在本发明实施例中,染色体适应度值的计算采用社区划分中常用的模块度函数Q进行:

>Q=1/2MΣij(Aij-kikj2M)δ(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%,即为实际的网络社区划分结果。

综上,本发明提出的基于遗传算法和先验知识的网络社区划分方法,在现有遗传算法基础上加入了先验知识,改进交叉算子和变异算子,并且采用模拟退火进行局部搜索,克服了基于遗传算法的网络社区划分方法中划分准确率低,划分结果不稳定的缺点,能有效地提高社区划分的准确率和划分效率。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号