基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法
【专利摘要】基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法属于复杂网络社区挖掘【技术领域】,其特征在于,包括以下步骤:计算机初始化、种群初始化、用最小生成树法对种群聚类、对种群内聚类后的各个体进行单点交叉操作、变异操作和选择操作、迭代T次得到复杂网络的最佳社区划分。本发明通过对种群进行最小生成树聚类,利用种群间的交叉,维持种群多样性,抑制未成熟收敛现象,利用物种间较优的个体进行交叉操作,增大了搜索含有更优解的空间的概率,通过选择使局部模块度Ml最大的邻居结点作为变异值,提高了算法的搜索效率。
【专利说明】基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法
【技术领域】
[0001]本发明属于复杂网络社区挖掘【技术领域】,具体涉及一种基于聚类的遗传算法用在复杂网络社区挖掘上的一种新方法,是一种利用计算机技术、遗传算法、聚类方法等实现复杂网络社区挖掘的方法,是复杂网络领域中关于社区挖掘的算法。
【背景技术】
[0002]在自然界、生物界、工程界和人类社会等各个领域存在着大量的复杂系统,这些系统由众多相互作用的子系统组成。在各领域研究中,常把子系统抽象成结点,把子系统之间的相互作用抽象成结点之间的边,则复杂系统可以抽象为相同的复杂网络结构,如Internet、万维网、电力网、各种社交网、食物链网络、蛋白质网络、新陈代谢网络等。因此,研究复杂网络可以揭示隐藏在自然界、生物界、工程界和人类社会等复杂系统中的共同规律。
[0003]大量实证研究表明,复杂网络普遍存在着小世界性、无标度性等基本统计特性,复杂网络的另外一个重要特征一网络中所呈现出的社区结构,已被广泛关注,并成为目前复杂网络研究的一个热点。经研究认为,诸多网络是异构的,即复杂网络不是一大批性质完全相同的结点随机连接在一起,而是许多类型的结点的组合。相同类型的结点之间存在较多的连接,而不同类型的结点之间连接相对较少。我们把同一类型中的结点及结点之间的边所构成的子图称为社区。在大型复杂网络中自动搜寻或发现社区,具有重要的理论意义和实用价值,如社会网络中的社区代表根据兴趣或背景而形成的真实社会团体。发现这些社区结构有助于我们更加有效地理解和开发这些网络。
[0004]为了有效地分析复杂网络中的社区结构,众多优秀的社区挖掘算法被提出。基于图形分割的社区算法有基于图的Laplace矩阵的特征向量的谱二分法,以及使用贪婪算法对社区内以及社区间的边数进行优化从而达到获取网络的社区结构的Kernighan-Lin算法。基于层次聚类的社区挖掘算法有Louvain方法和Infomap方法;另外K-means算法也是一种高效的层次聚类算法。Newman和Givan在2004年提出了基于分裂的社区发现算法GN算法。基于模块度优化的社区挖掘算法有基于GN算法的FN算法、基于固体退火原理的SA算法、基于最大流一最小截定理的MFC算法。另外,Duch和Arenas提出了基于优化的EO算法,Palla提出用于发现重叠社区结构的CPM(clique per collation method)方法,Wu和Huberman提出了一种基于电阻网络电压谱的快速分割算法。
[0005]随着网络模块度函数的提出,复杂网络社区发现问题转化为一种目标函数优化问题,而遗传算法(Genetic Algorithm)作为解决优化问题的一种非常有效的人工智能技术方法被广泛应用。遗传算法是一种模拟生物遗传进化过程的自适应全局优化概率搜索算法。它依据概率对各代种群施加选择、交叉和变异等遗传操作,使种群逐步进化到包含或接近最优解的状态,是解决各类复杂优化问题的一种有效算法。因此GA应用在社区发现问题上具有一定的理论意义和实现价值。
[0006]Gong et al.提出了基于GA的社区挖掘算法一MA(memetic algorithm),该算法存在易发生局部最优现象,很难找到全局最优解的缺陷,Ronghua Shang提出基于模块度和改进遗传算法的社区发现算法(MIGA)来解决此问题,然而MIGA算法存在需要先验知识一复杂网络中的社区个数,使得该算法在处理未知社区个数的复杂网络社区发现问题上性能大打折扣。
[0007]针对上面提出的遗传算法挖掘社区的缺陷,本文提出了一种基于最小生成树聚类
的遗传算法用于复杂网络社区挖掘的方法-CGAO) (Clustering Genetic Algorithm
Community Detecting)算法,在很大程度上避免了算法的未成熟收敛现象发生,改进了算法的搜索性能。未成熟收敛是遗传算法中不可忽视的现象,它主要表现在:群体中所有的个体在进化初期都陷于同一极值而停止进化,也就是说进化初期群体中的个体缺乏多样性,导致算法过早收敛于局部最优解,影响算法的整个性能。为了解决这个问题,我们算法在进化初期对种群进行最小生成树聚类,选择不同类的个体进行遗传操作。由于增大了配对个体之间距离,维持了群体中个体的多样性,从而抑制了未成熟收敛现象的产生。
【发明内容】
[0008]本发明的内容是提出了一个基于最小生成树聚类的遗传算法用于复杂网络社区挖掘的新方法。该方法用归一化共用信息(Normalized Mutual Information,匪I)相似度标准作为测量种群中个体间的相似度,通过最小生成树聚类将种群中的个体进行划分归类,在遗传算法中引入种群聚类进行遗传进化,提出了 CGA⑶(Clustering GeneticAlgorithm Community Detecting)。
[0009]由于CGACD算法引入了种群聚类思想,而如何定义种群中个体间的距离是聚类的关键问题。我们针对复杂网络社区的具体特点引入归一化共用信息(NMI)相似度标准来定义个体间的相似度,继而得到个体间距离;然后通过最小生成树聚类算法得到种群的划分归类,交叉操作中使用不同类别的个体进行单点交叉,由于增大了配对个体之间距离,维持了群体中个体的多样性,从而抑制了未成熟收敛现象的产生。
[0010]本发明中所用到的有关遗传算法的概念如下:
[0011]种群,用Pop表示,指的是复杂网络若干可能的社区划分结果,社区方法称为社区挖掘方法S,s为属于S中的一种划分方法,se (1,2,...,S,...,S), S表不划分方法的总数,其中的任何一种划分结果称为个体,用Pop(S)表示,所有可能的划分结果数称为种群规模;个体的编码,是用于表示某种划分结果的一个数组或位串,也称染色体,所述基因在所述染色体中的位置称为基因座或基因位,同时也表示所述复杂网络中的一个结点,所述染色体所对应的是一个所述复杂网络的一种划分方法,所述染色体的解空间对应于全部可能的划分方法,从所述的解空间映射到一个所述的染色体,称为编码,从一个所述的染色体映射到所述解空间,称为解码;
[0012]基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法,其特征在于,包括如下步骤:
[0013]I)计算机初始化,
[0014]2)种群初始化,每个个体的基因位选择其基因位代表结点的某一邻居结点编号,这一邻居结点编号作为此基因位的等位基因,得到父种群,
[0015]3)计算父种群中所有个体的适应度Q,[0016]4)对种群进行最小生成树聚类,并进行类别标记,
[0017]5)对不同类别的两个个体进行单点交叉,并将交叉后的个体放入子种群Pop2中
[0018]6)对Pop2中的个体作变异操作:选择使局部模块度增加最大的社区的邻居结点编号作为要变异的结点的等位基因,
[0019]7)从父种群和子种群中选择较好的S个体作为下一代父种群
[0020]8)重复4)~7),直到到达种群迭代次数,得到社区最佳划分
[0021]进一步,所述步骤2)中,所述网络以G(V,E)表示,其中,V表示网络结点的集合,网络中结点的编号为(1,2,...,V,...,V),V e (1,2,...,V,...,V),E表示网络连接的集合。每个个体都有V个基因,每个基因都代表了网络G中的一个结点。网络中结点V的邻居结点集N (V) = {p I结点P与结点V直接相连};
[0022]进一步,所述步骤3)中,适应度Q即为Newman提出的模块度函数Q ;
【权利要求】
1.基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法,其特征在于,是在计算机中依次按以下步骤实现的: 步骤(1),计算机初始化,设定以下参数: 复杂网络,用G(V,E)表示,V为结点V的集合,网络中结点V的编号为(1,2,...,V,...,V),V e (1,2,...,V,...,V),V 为结点 V 的总数,E 为边 e 的集合,e e (I, 2,..., e,..., E), E 为边 e 的总数; 基因,表示一个结点V ; 种群,用Pop表示,指的是复杂网络若干可能的社区划分结果,社区方法称为社区挖掘方法S,s为属于S中的一种划分方法,s e (I, 2,..., 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表示邻居结点; 步骤(2.4),随机选择步骤(2.3)中某个基因V的所述邻居结点集N(V) = {u}中的一个结点U'作为所述结点V在自身邻居节点集N(V) = {u}中的一个等位基因,用Pop (S,V)=u',表示个体Pop(s)中结点V在邻居节点集N(v) = {u}中的一个等位基因; 步骤(2.5),对种群Pop中的各个个体Pop(s)按步骤(2.1)~步骤(2.4)循环S次,完成种群初始化; 步骤(3)、对于一个设定的个体Pop (s),用一个网络模块度函数Q表示种群Pop对各个体Pop(S)的适应度,用Q表示一个复杂网络社区挖掘的充分度,所有社区内部相邻结点U,V实际连接边的数目越大,表示社区挖掘越充分,Q值也越大;
【文档编号】G06N3/12GK103745258SQ201310415022
【公开日】2014年4月23日 申请日期:2013年9月12日 优先权日:2013年9月12日
【发明者】杨新武, 李 瑞, 薛慧斌 申请人:北京工业大学