多目标遗传算法中文
- 格式:doc
- 大小:178.12 KB
- 文档页数:8
遗传算法多目标优化
### 引言遗传算法是一种模拟自然选择的优化算法。
它是以自然界中的“遗传进化”为模型的一种非常有效的搜索方法。
它结合了经典的遗传算法和计算智能技术,模拟自然界的“遗传进化”的规律,从而解决复杂的优化问题。
本文将介绍遗传算法多目标优化的基本概念,并介绍一些常见的应用。
### 什么是遗传算法多目标优化遗传算法多目标优化是一种基于遗传算法的多目标优化算法,它是一种用于解决多目标优化问题的算法。
这种算法通过模拟进化过程来搜索最优解,它针对给定的多目标优化问题,通过模拟自然选择、遗传变异、种群演化等进化机制,对优化变量进行搜索,以获得最优解。
### 遗传算法多目标优化的应用遗传算法多目标优化算法可以用于解决各种复杂的优化问题,如机器学习、控制系统设计、计算机视觉、经济学应用、模式识别等。
例如,在机器学习中,可以使用遗传算法多目标优化算法来优化神经网络的参数,以获得最优的学习性能。
在控制系统设计中,可以使用遗传算法多目标优化算法来优化控制系统的参数,以获得最佳的控制性能。
在计算机视觉中,可以使用遗传算法多目标优化算法来优化图像处理算法的参数,以获得最佳的图像处理性能。
### 结论遗传算法多目标优化是一种有效的多目标优化算法,它可以用于解决复杂的优化问题,广泛应用于机器学习、控制系统设计、计算机视觉、经济学应用、模式识别等领域。
遗传算法多目标优化在现代的科学和技术发展中,多目标优化(MOP)已经成为一个重要的研究主题,其在各种领域中都有着广泛的应用。
多目标优化是一种以多个目标为基础而研究优化问题的技术。
与传统的优化技术相比,它更强调在优化过程中要尽可能提高向两个或多个目标优化的能力,从而实现最佳值。
遗传算法是一种基于类比生物进化机制的多目标优化方法,它以人工输入的事物作为“基因”,经过一系列的生物学化学反应过程,实现一种“进化”的算法。
它的基本特性是使用启发式算法和复杂的搜索机制相结合,使其能够根据目标函数的复杂性快速迭代搜索,从而避免搜索范围的局限性,有效地解决多目标优化问题。
首先,遗传算法多目标优化包括两个步骤:选择算子和变异算子。
常用的选择算子有轮盘赌选择、随机选择、排名法和赌轮法这四种。
而常用的变异算子有反转算子、交换算子、位移算子和置乱算子等。
其次,遗传算法多目标优化的优势在于能够很好地解决多目标优化问题,其中有三个主要优点:1)算法搜索范围不受限制;2)算法动态地优化多个目标;3)算法能够有效抗噪声。
此外,遗传算法多目标优化还有一些其他优点,如它能够有效地处理多维度、多约束、非线性和不确定性等问题,使其应用范围越来越广泛。
最后,近年来遗传算法多目标优化已经取得了许多突破性的进展,如双层遗传算法(PGA)、多样性遗传算法(MGA)、单独优化算法(SOA)和分布式遗传算法(DNA)等。
其中双层遗传算法是一种基于种群的遗传算法,能够有效地搜索整个空间;多样性遗传算法是一种改进的遗传算法,注重并加强种群的多样性,以提高优化效果;单独优化算法是一种基于概率的遗传算法,能够有效地优化同时具有多个目标函数的多维搜索空间;分布式遗传算法是利用一系列远程计算机协同运行来优化计算问题的算法。
这些算法都能够有效解决多目标优化问题,使其在实际问题中得到广泛应用。
总而言之,遗传算法多目标优化是一种有效的多目标优化方法,它具有搜索范围不受限制、动态优化多个目标和有效抗噪声等特点,能够有效解决多目标优化问题。
多目标遗传算法里面的专业名词1.多目标优化问题(Multi-Objective Optimization Problem, MOP):是指优化问题具有多个相互冲突的目标函数,需要在不同目标之间找到平衡和妥协的解决方案。
2. Pareto最优解(Pareto Optimal Solution):指对于多目标优化问题,一个解被称为Pareto最优解,如果不存在其他解能在所有目标上取得更好的结果而不使得任何一个目标的结果变差。
3. Pareto最优集(Pareto Optimal Set):是指所有Pareto最优解的集合,也称为Pareto前沿(Pareto Front)。
4.个体(Domain):在遗传算法中,个体通常表示为一个潜在解决问题的候选方案。
在多目标遗传算法中,每个个体会被赋予多个目标值。
5.非支配排序(Non-Dominated Sorting):是多目标遗传算法中一种常用的个体排序方法,该方法将个体根据其在多个目标空间内的优劣程度进行排序。
6.多目标遗传算法(Multi-Objective Genetic Algorithm, MOGA):是一种专门用于解决多目标优化问题的遗传算法。
它通过模拟生物遗传和进化的过程,不断地进化种群中的个体,以便找到多个目标下的最优解。
7.多目标优化(Multi-Objective Optimization):是指优化问题具有多个目标函数或者多个约束条件,需要在各个目标之间取得平衡,找到最优的解决方案。
8.自适应权重法(Adaptive Weighting):是一种多目标遗传算法中常用的方法,用于动态调整不同目标之间的权重,以便在不同的阶段能够更好地搜索到Pareto前沿的解。
9.支配关系(Dominance Relation):在多目标优化问题中,一个解支配另一个解,指的是在所有目标上都至少不差于另一个解,并且在某个目标上能取得更好的结果。
多目标多约束优化问题算法多目标多约束优化问题是一类复杂的问题,需要使用特殊设计的算法来解决。
以下是一些常用于解决这类问题的算法:1. 多目标遗传算法(Multi-Objective Genetic Algorithm, MOGA):-原理:使用遗传算法的思想,通过进化的方式寻找最优解。
针对多目标问题,采用Pareto 前沿的概念来评价解的优劣。
-特点:能够同时优化多个目标函数,通过维护一组非支配解来表示可能的最优解。
2. 多目标粒子群优化算法(Multi-Objective Particle Swarm Optimization, MOPSO):-原理:基于群体智能的思想,通过模拟鸟群或鱼群的行为,粒子在解空间中搜索最优解。
-特点:能够在解空间中较好地探索多个目标函数的Pareto 前沿。
3. 多目标差分进化算法(Multi-Objective Differential Evolution, MODE):-原理:差分进化算法的变种,通过引入差分向量来生成新的解,并利用Pareto 前沿来指导搜索过程。
-特点:对于高维、非线性、非凸优化问题有较好的性能。
4. 多目标蚁群算法(Multi-Objective Ant Colony Optimization, MOACO):-原理:基于蚁群算法,模拟蚂蚁在搜索食物时的行为,通过信息素的传递来实现全局搜索和局部搜索。
-特点:在处理多目标问题时,采用Pareto 前沿来评估解的质量。
5. 多目标模拟退火算法(Multi-Objective Simulated Annealing, MOSA):-原理:模拟退火算法的变种,通过模拟金属退火的过程,在解空间中逐渐减小温度来搜索最优解。
-特点:能够在搜索过程中以一定的概率接受比当前解更差的解,避免陷入局部最优解。
这些算法在解决多目标多约束优化问题时具有一定的优势,但选择合适的算法还取决于具体问题的性质和约束条件。
遗传算法学习--多⽬标优化中的遗传算法在⼯程运⽤中,经常是多准则和对⽬标的进⾏择优设计。
解决含多⽬标和多约束的优化问题称为:多⽬标优化问题。
经常,这些⽬标之间都是相互冲突的。
如投资中的本⾦最少,收益最好,风险最⼩~~多⽬标优化问题的⼀般数学模型可描述为:Pareto最优解(Pareto Optimal Solution)使⽤遗传算法进⾏求解Pareto最优解:权重系数变换法:并列选择法:基本思想:将种群全体按⼦⽬标函数的数⽬等分为⼦群体,对每⼀个⼦群体分配⼀个⽬标函数,进⾏择优选择,各⾃选择出适应度⾼的个体组成⼀个新的⼦群体,然后将所有这些⼦群体合并成⼀个完整的群体,在这个群体⾥进⾏交叉变异操作,⽣成下⼀代完整群体,如此循环,最终⽣成Pareto最优解。
如下图:排列选择法:基于Pareto最优个体的前提上,对群体中的各个个体进⾏排序,依据排序进⾏选择,从⽽使拍在前⾯的Pareto最优个体将有更⼤的可能性进⼊下⼀代群体中。
共享函数法:利⽤⼩⽣境遗传算法的技术。
算法对相同个体或类似个体是数⽬加⼀限制,以便能够产⽣出种类较多的不同的最优解。
对于⼀个个体X,在它的附近还存在有多少种、多⼤程度相似的个体,是可以度量的,这种度量值称为⼩⽣境数。
计算⽅法:s(d)为共享函数,它是个体之间距离d的单调递减函数。
d(X,Y)为个体X,Y之间的海明距离。
在计算出⼩⽣境数后,可以是⼩⽣境数较⼩的个体能够有更多的机会被选中,遗传到下⼀代群体中,即相似程度较⼩的个体能够有更多的机会被遗传到下⼀代群体中。
解决了多⽬标最优化问题中,使解能够尽可能的分散在整个Pareto最优解集合内,⽽不是集中在其Pareto最优解集合内的某⼀个较⼩的区域上的问题。
混合法:1. 并列选择过程:按所求多⽬标优化问题的⼦⽬标函数的个数,将整个群体均分为⼀些⼦群体,各个⼦⽬标函数在相应的⼦群体中产⽣其下⼀代⼦群体。
2. 保留Pareto最优个体过程:对于⼦群体中的Pareto最优个体,不让其参与个体的交叉和变异运算,⽽是直接保留到下⼀代⼦群体中。
复杂多目标问题的优化方法及应用一、前言复杂多目标问题是指在优化过程中存在多个目标函数,这些目标函数之间可能存在冲突或矛盾,因此需要寻找一种合适的方法来解决这类问题。
本文将介绍复杂多目标问题的优化方法及应用。
二、复杂多目标问题的优化方法1. 多目标遗传算法(MOGA)多目标遗传算法是一种常用的优化方法,它基于遗传算法,并通过引入多个适应度函数来解决多目标问题。
MOGA 通过保留 Pareto 前沿(Pareto front)上的解来实现优化。
Pareto 前沿是指无法再找到更好的解决方案,同时保证了所有目标函数都得到了最佳优化。
2. 多目标粒子群算法(MOPSO)多目标粒子群算法也是一种常用的优化方法,它基于粒子群算法,并通过引入多个适应度函数来解决多目标问题。
MOPSO 通过维护一个Pareto 最优集合来实现优化。
Pareto 最优集合是指所有非支配解构成的集合。
3. 多目标差分进化算法(MODE)差分进化算法是一种全局搜索算法,它通过不断地更新种群的参数来寻找最优解。
MODE 是一种基于差分进化算法的多目标优化方法,它通过引入多个适应度函数来解决多目标问题。
MODE 通过维护一个Pareto 最优集合来实现优化。
4. 多目标蚁群算法(MOTA)蚁群算法是一种模拟自然界中蚂蚁寻找食物的行为的算法,它通过不断地更新信息素来寻找最优解。
MOTA 是一种基于蚁群算法的多目标优化方法,它通过引入多个适应度函数来解决多目标问题。
MOTA 通过维护一个 Pareto 最优集合来实现优化。
三、复杂多目标问题的应用1. 工程设计在工程设计中,往往需要考虑多个因素,如成本、效率、可靠性等。
使用复杂多目标问题的优化方法可以帮助工程师在保证各项指标达到要求的情况下,尽可能地减少成本或提高效率。
2. 市场营销在市场营销中,往往需要同时考虑销售额、市场份额和品牌知名度等指标。
使用复杂多目标问题的优化方法可以帮助企业在提高销售额的同时,尽可能地提高市场份额和品牌知名度。
多目标遗传算法的应用研究在实际问题中,我们常常需要同时满足多个目标才能获得最优的结果。
而传统的单目标优化算法往往只能考虑一个目标,难以解决多目标优化问题。
为了解决这个问题,多目标遗传算法被广泛应用于实际问题中。
多目标遗传算法(Multi-Objective Genetic Algorithm,MOGA)是一种求解多维实数域上多目标优化问题的进化算法。
在MOGA中,优化目标有两个或者以上,相互之间一般存在冲突。
MOGA通过维护一个多目标种群,提供一组非劣解来解决多目标问题。
MOGA主要包含两个模块:多目标编码与多目标适应度函数。
在多目标编码中,将每个解表示为一个个体,每个个体有一个表示方式,称作染色体。
在多目标适应度函数中,返回每个个体的适应度值向量。
适应度值向量是多维的,每个维度表示一个优化目标。
在MOGA的具体实现中,常用的方法是保持解集的多样性和收敛性。
通过保持解集的多样性,保证种群不会出现过早收敛现象,即固定在一个特定点上,而使最终得到的结果不太好。
通过保持解集的收敛性,使算法不仅仅只能产生分裂的解集,而是能产生收敛的解集,使得算法得到的结果更加准确和逼近最优解。
MOGA已经广泛应用于实际问题中,例如工程设计、化学制品设计、生物信息学、金融和交通等领域。
以下是一些MOGA的应用案例:在工程设计领域,MOGA可用于构建高效的空气流场优化算法,通过优化飞行器的气动外形设计,改善其性能,使其速度更快、起飞更快、更易操控。
在化学制品设计方面,MOGA可以帮助化学工程师设计合成具有多个特定性质的化学物质。
MOGA可以同时优化化学物质的多个性质,如反应速度、稳定性、产量等。
在生物信息学领域,MOGA可以用于优化基因的特性,这对于研究基因的功能和识别病毒有重要意义。
在金融和交通领域,MOGA可以用于风险管理、资产组合优化、交通规划等。
总之,MOGA是一个非常有用的优化算法,对于解决多目标优化问题具有重要的实际意义。
matlab 多目标遗传算法-回复什么是多目标遗传算法?多目标遗传算法(MOGA)是一种优化算法,用于解决具有多个冲突目标的问题。
它是基于遗传算法(GA)的扩展,通过使用遗传操作和群体进化的方式,寻求寻找一组非支配解,这些解在所有目标函数中都具有最佳的性能。
MOGA的基本原理是模拟进化过程,其中每个解被表示为一个染色体(二进制串或实数编码)并作为群体中的个体。
算法迭代进行,通过进行选择、交叉和变异操作,优化个体的适应度值。
MOGA是一种帕累托前沿方法,其目标是找到最佳的解集合,并呈现在决策者面前的“帕累托前沿”上,以提供多个潜在解决方案供选择。
这些解决方案称为非支配解,因为它们之间没有一个解支配另一个解。
MOGA 的目标是在平衡解的多样性和收敛性之间找到最佳权衡。
MOGA的流程如下:1. 初始化种群:根据问题的约束和变量范围,随机生成一组个体作为初始种群。
2. 计算适应度:分别计算每个个体的适应度值,通常使用目标函数来评估个体的性能。
3. 非支配排序:根据个体的适应度值,对种群进行非支配排序,将个体分为不同的层级。
4. 计算拥挤度:通过计算个体在适应度空间中的密度来评估个体的多样性,以便选择最优个体。
5. 更新种群:根据选择、交叉和变异操作,生成新的个体,并替换旧的个体,形成下一代种群。
6. 终止检测:根据预设条件(迭代次数、达到收敛等)判断是否终止算法。
7. 输出结果:将最终的非支配解集输出作为问题的解决方案。
MOGA的优点之一是可以处理多个冲突的目标函数,这在实际问题中是非常常见的情况。
它能够为决策者提供多个选项,让其根据自己的偏好选择最适合的解决方案。
另外,MOGA还能够进化出多样化的解集,因此能够提供更多的信息来支持决策过程。
然而,MOGA也存在一些挑战和限制。
首先,MOGA通常需要更多的计算资源和时间,特别是在目标函数复杂的问题中。
其次,MOGA可能会生成大量的非支配解,决策者需要根据自己的需求和偏好进行选择。
多目标遗传算法
多目标遗传算法(Multi-Objective Genetic Algorithm, MOGA)是一种模拟自然进化的建模方法,被广泛应用于解决复杂的优化优化问题,特别是多目标优化问题。
此算法类似于遗传算法,它利用遗传演化算法和对抗性进化算法来搜索和优化不同的目标。
MOGA借鉴了生物学中心脏进化理论,以及模拟自然进化的思想,并用于解决复杂的多目标优化问题。
MOGA在多目标优化中的主要思想是在一个全局搜索空间中调节和优化目标变量之间的权衡关系,而不是在单个搜索空间中调节和优化它们。
MOGA将搜索空间划分为多个子空间,每个子空间由一组相关的变量组成,它们分别定义了多个有限目标函数。
MOGA使用多种搜索方法,如进化策略分箱搜索(ESE)、贪婪搜索(FST)以及地图网络搜索(MCS)来搜索每个子空间,以找出优化结果。
特别是,MOGA针对复杂的多目标优化问题提出了一种多层次优化方法。
这在很大程度上减少了传统搜索空间中搜索的计算成本,并改善了算法的可缩放性。
MOGA还结合使用了不同的使用了不同的技术来改进算法,从而提高搜索效率和储备越来越多的优化解决方案。
MOGA在互联网领域极具应用价值,如在多样化内容发布中,MOGA可以帮助互联网公司优化及管理用户的体验。
MOGA还可用于优化网络的资源分配,已让网络资源得到有效的利用,从而提高网络的处理效率。
此外,MOGA还可用于评估网络上各类型数据的相对价值,从而优化市场定价,提升公司营收收入。
总而言之,多目标遗传算法是一种可以实现复杂优化问题解决的有用工具,特别是在互联网领域,MOGA可以帮助公司解决各种复杂的优化问题,最大化营收和改善用户体验。
一种在复杂网络中发现社区的多目标遗传算法Clara Pizzuti摘要——本文提出了一种揭示复杂网络社区结构的多目标遗传算法。
该算法优化了两个目标函数,这些函数能够识别出组内节点密集连接,而组间连接稀疏。
该方法能产生一系列不同等级的网络社区,其中解的等级越高,由更多的社区组成,被包含在社区较少的解中。
社区的数量是通过目标函数更佳的折衷值自动确定的。
对合成和真实网络的实验,结果表明算法成功地检测到了网络结构,并且能与最先进的方法相比较。
关键词:复杂网络,多目标聚类,多目标进化算法1、简介复杂网络构成了表示组成许多真实世界系统的对象之间关系的有效形式。
协作网络、因特网、万维网、生物网络、通信传输网络,社交网络只是一些例子。
将网络建模为图,节点代表个体,边代表这些个体之间的联系。
复杂网络研究中的一个重要问题是社区结构[25]的检测,也被称作为聚类[21],即将一个网络划分为节点组,称作社区或簇或模块,组内连接紧密,组间连接稀疏。
这个问题,如[21]指出,只有在建模网络的图是稀疏的时候才有意义,即边的数量远低于可能的边数,否则就类似于数据簇[31]。
图的聚类不同于数据聚类,因为图中的簇是基于边的密度,而在数据聚类中,它们是与距离或相似度量紧密相关的组点。
然而,网络中社区的概念并未严格定义,因为它的定义受应用领域的影响。
因此,直观的理解是同一社区内部边的数量应该远多于连接图中剩余节点的边的数量,这构成了社区定义的一般建议。
这个直观定义追求两个不同的目标:最大化内部连接和最小化外部连接。
多目标优化是一种解决问题的技术,当多个相互冲突的目标被优化时,成功地找到一组解。
通过利用帕累托最优理论[15]获得这些解,构成了尽可能满足所有目标的全局最优解。
解决多目标优化问题的进化算法取得成功,是因为它们基于种群的特性,同时产生多个最优解和一个帕累托前沿[5]的优良近似。
因此,社区检测能够被表述为多目标优化问题,并且帕累托最优性的框架可以提供一组解对应于目标之间的最佳妥协以达到最优化。
事实上,在上述两个目标之间有一个折衷,因为当整个网络社区结构的外部连接数量为空时,那它就是最小的,然而簇密度不够高。
在过去的几年里,已经提出了许多方法采用多目标技术进行数据聚类。
这些方法大部分在度量空间[14], [17],[18], [28], [38], [39], [49], [51]聚集目标,虽然[8]中给出了分割图的一个方法,并且在[12]中描述了网络用户会议的一个图聚类算法。
本文中,一个多目标方法,名为用于网络的多目标遗传算法(MOGA-Net),通过利用提出的遗传算法发现网络中的社区。
该方法优化了[32]和[44]中介绍的两个目标函数,它们已被证实在检测复杂网络中模块的有效性。
第一个目标函数利用了community score的概念来衡量对一个网络进行社区划分的质量。
community score值越高,聚类密度越高。
第二个目标函数定义了模块中节点fitness的概念,并且反复迭代找到节点fitness总和最大的模块,以下将这个目标函数称为community fitness。
当总和达到最大时,外部连接是最小。
两个目标函数都有一个正实数参数控制社区的规模。
参数值越大,找到的社区规模越小。
MOGA-Net利用这两个函数的优点,通过有选择地探索搜寻空间获得网络中存在的社区,而不需要提前知道确切的社区数目。
这个数目是通过两个目标之间的最佳折衷自动确定的。
多目标方法的一个有趣结果是它提供的不是一个单独的网络划分,而是一组解。
这些解中的每一个都对应两个目标之间不同的折衷,并对应多种网络划分方式,即由许多不同簇组成。
对合成网络和真实网络的实验表明,这一系列帕累托最优解揭示了网络的分层结构,其中簇的数目较多的解包含在社区数目较少的解中。
多目标方法的这个特性提供了一个很好的机会分析不同层级的网络和研究不同模块化水平的社区。
本文组织如下,在下一节定义社区的概念,规范化社区检测问题。
第三节描述社区检测的主要方法。
第四节将社区检测问题公式化为一个多目标优化问题。
第五节描述了该方法,采用基因表示,变异操作的使用。
第六节给出该方法用于合成网络和真实网络的结果,以及与一些最先进方法的对比。
最后,在第七节讨论多目标方法的优点,得出结论。
2、社区定义一个网络N 能被模型化为一个图G=(V,E),其中V 是一系列客体,被称作节点或顶点,E 是一系列连接,被称作边,这是连接了V 中的两个元素。
网络中的一个社区(也被称作簇或模块)是一组相互连接密度较高的顶点(即一个子图),并且组与组之间连接密度较低。
社区的这个定义相当模糊,并且在密度这个概念上没有达成一致。
[48]中介绍了一个更为正式的定义,通过考量一个一般的节点i 的度k i ,定义ijj i A k ∑=,这里A 是G 的邻接矩阵。
如果节点i 到节点j 之间有一条边,那么矩阵A 的(i ,j )位置上为1,否则为0。
假设G S ⊂,节点i 属于G 的子图S ,i 的度分成两部分,)()()(S k S k S k out i in i i +=这里,∑∈=S j ij in i A S k )(,是i 与S 中其他节点相连的边的数量。
∑∉=Sj ij out i A k ,是i 与网络其余部分节点相连的边的数量。
如果S i S k S k out i in i ∈∀>),()(,则子图S 称为强社团。
如果∑∑∈∈>S i Si out i in i S k S k)()(,则子图S 称为弱社团。
因此,在一个强社区中,每个节点在社区内与图中剩余部分相比,连接更多。
在一个弱社区中,子图内节点内度的总和大于节点外度的总和。
接下来,我们采用弱社区的概念,因此一个社区被看作一系列节点,它们的内部连接的数量高于不同簇之间外部连接的数量。
3、相关工作来自不同领域例如物理学,统计学,数据挖掘,进化计算的许多不同算法已经被提出用来检测复杂网络中社区。
被采用的这些方法可以被概括地归为三类:分层分裂方法,分层凝聚方法[31],以及优化方法。
分层分裂方法从完整的网络开始,检测连接不同社区的边,并移除它们。
这些方法的例子可以在[3],[25],[35],[41],[42]和[48]。
分层凝聚方法将每个节点看成一个社区,然后递归地合并相同的社区,直到得到整个图[4],[34],[40],[45],[47],[58]。
优化方法定义了一个目标函数将图划分为子图,并且尝试将这个目标最大化从而获得网络的最佳分割[1],[32],[53]。
在这些优化方法中,有几种方法通过利用进化技术已经成熟。
尤其[18],[20],[26],[29],[34],[44],[55]运用了遗传算法。
许多其他的方法利用多目标进化算法在度量空间来分割图或者聚集对象[8], [12],[14], [17], [28], [38], [39], [49], [51]。
接下来,我们首先回顾一下来自物理和数据挖掘领域的主要建议,然后报告一个多目标进化聚类方法的描述。
A.复杂网络的社区检测一些研究人员研究了社区检测问题,最先进建议的完整描述已经超出了本文的范围。
复杂网络社区识别方法广泛而详细的概述可以在[6],[21],[23]中找到。
检测社区最著名的算法是由Newman 和Girvan[25]提出的。
该方法通过删除边来反复地分裂网络。
通过利用中间性的测量来选择被移除的边。
以边的中间性为基础的想法来源于观察到的:如果两个社区通过几条社区间的边连接,那么从一个社区的顶点到另一个社区的顶点的所有路径,必须要通过这些边。
路径决定了计算边所得的中间性分值,通过计算穿过每条边的所有路径,并且删除得分值最高的边,网络内部的连接被破坏。
重复这个过程,并且将网络划分为更小的部分,直到没有边剩余。
同一作者[42]提出了一个基于不同的中间性测量值的分层分裂方法。
在这篇文章中,Newman 和Girvan 指出需要通过一个算法得出网络划分质量的测量值。
出于这个目的,他们引入了模块度的概念。
通俗地讲,模块度就是如果不考虑社区结构而边随机,社区内边的比例与边比例的期望值之差(模块度的正式定义是在下一节中)。
数值接近1表明社区结构明显。
因此,该算法计算某网络的每个分立社区的模块度,并且作者表明,当社团结构先验已知,高数值的模块度密切对应预期的网络划分。
Newman[40]认为因为高数值的模块度对应好的网络划分,找到网络可能最佳划分的方法就是优化它。
因此,他提出一个分层凝聚方法用于搜寻模块度的最优值。
Newman 注意到,彻底搜寻所有可能的划分方式以获得模块度的最优值,对于由超过20个顶点构成的复杂网络来说是难以实现的,因此需要近似方法。
他提出一个贪婪方法,连接社区使得模块度值产生最大增值。
基于相同策略的一个更快的方法在[4]中由Clauset ,Newman 和Moore 描述。
Blondel et al .[3]提出了一个方法划分大型网络,也是基于模块度优化。
该算法由两个阶段组成,反复迭代,直到没有得到进一步改善。
起初,网络中的每个节点都认为是一个社区。
然后,对每个节点i ,考虑它所有相邻的节点j ,并且计算将i 从它所在的社区移除以及将它增加到j 所在的社区后的模块度增益。
将节点放置在增益为正且最大时的社区中。
如果没有社区有正的增益,i 保留在它原来的分组中。
重复第一阶段直到没有节点可以移动来改善模块度。
第二阶段建立一个网络,其中已有的社区当作一个新的节点,如果有一条边在属于a 社区的节点和属于b 社区的节点之间,那么在ab 两个社区之间有连接。
新的社区能够被加权,在这种情况下,ab 之间边的重量就是相应社区节点之间的连接的权重之和。
在这一点上,可以重复该方法,直到无法做更多的改变以提高模块度。
算法返回所有发现的不同等级的聚类。
Pons 和Latapy [45]介绍了一个名为Walktrap 的分层凝聚算法,用于计算网络的社区结构。
该方法是基于图的随机游动,并且认为随机游动倾向于困在图中密集连接的部分。
两个节点之间距离的新定义是利用随机游动的性能引入的,并且这个定义可以推广到计算两个社区之间的距离。
算法从图的划分开始,其中每个节点是一个社区,然后合并两个相邻的社区(即至少有一个公共边),将两个顶点之间距离的平方值的均值以及它的社区最小化。
重新计算社区之间的距离,重复先前的步骤,直到所有的节点属于同一社区。
为了选出最佳划分,采用Newman 和Girvan 的模块度标准。
Pujol et al .[47]提出一个分层凝聚算法,将光谱分析和模块度优化结合获得网络社区识别的效率和准确度。
他们利用Pons 和Latapy [45]所采用的随机游动的相同概念产生网络的初始分区,然后运用分层凝聚方法反复连接两个社区。