精华内容
下载资源
问答
  • 网络算法与复杂性理论,图论及其应用经典书籍,目录完整清晰,非常适合自学。最小树、网络优化、最短路径问题、二部图的匹配、一般图的匹配,NP完全理论,近似算法等。
  • 现有的人工免疫网络分类算法大都存在两个缺陷:一是网络规模庞大、计算复杂;二是对抗原的一次递呈并不能保证获得全局最优分类器。该文提出了一种新的人工免疫网络分类算法,该算法利用每个类别对应单个B细胞的策略,...
  • 在目前复杂网络聚类算法中,基于Laplace特征值的谱聚类方法具有严密的数学理论和较高的精度,但受限于该方法对簇结构数量、规模等先验知识的依赖,难以实际应用。针对这一问题,基于Laplace矩阵的Jordan型变换,提出...
  • 主要将超网络的思想及理论方法应用复杂网络的社团区划研究,针对当前GN算法的一些不足,从超网络视角出发,结合标准化程度中心性理论方法,构建了一种新的复杂网络社团区划算法,通过算例对新算法进行了验证分析...
  • 例 四 终极情报网 问题描述 构 图 优 化 浅谈网络算法应用 缺点相对于其它图论算法来说它的模型更加 复杂编程复杂度也更高而且算法的系数较大 小 结 优点网络流模型可以容纳的要素很多特别是 权的类型众多不仅有...
  • 有效挖掘出复杂网络中隐藏的社区结构具有重要的理论研究意义和广泛的应用前景,目前已有多种关于社区挖掘算法和社区性质的研究,但还未见深入讨论结点间距离全局社区结构内在关系的工作。因此,深入研究了它们之间的...
  • 本发明涉及一种社区检测方法,具体说是一种复杂网络社区检测的方法。背景技术:过去几年中已有许多社区检测方法相继提出,其中应用最广泛的是基于模块度的最优化方法。然而,模块度最优化本质上是一个典型的NP难问题...

    d198cbf8dd08536cacc4e92217740a2f.gif

    本发明涉及一种社区检测方法,具体说是一种复杂网络社区检测的方法。

    背景技术:

    过去几年中已有许多社区检测方法相继提出,其中应用最广泛的是基于模块度的最优化方法。然而,模块度最优化本质上是一个典型的NP难问题,传统的确定性优化算法,如数学规划法、贪心算法、谱分析法及极值优化算法等,通常会有早熟收敛或收敛停滞现象。此外,随着真实世界网络规模和结构模糊性的增强,最优化过程中的极值退化问题变得更加严重,这就意味着在以指数增长的众多局部最优解中,找到全局最优社区划分变得更加困难,因此使检测所得社区结构的准确性和稳定性受到严重影响。

    近年来随机优化算法,尤其是进化算法(EvolutionaryAlgorithms,EAs),已被成功应用于模块度优化问题,如遗传算法(GeneticAlgorithm,GA)、粒子群优化算法(ParticleSwarmOptimization,PSO)、Memetic算法、蚁群优化算法、克隆选择和差分进化算法(DifferentialEvolution,DE)等。值得关注的是,基于EA的模块度优化方法由于具有强大的全局最优化能力,在多种检测问题上表现出显著优越性。此外,考虑到真实世界网络中的先验信息的获取较为困难,该类算法不需要任何先验信息(如社区数目)和特定数学模型。然而,尽管基于EA的模块度优化方法在多种网络社区检测问题上取得了令人满意的结果,但早熟收敛和极值退化的问题并没有得到充分的解决。

    为了克服上述问题并提高最优社区划分质量,应进一步提高基于EA的模块度优化算法的收敛性能。前期实验结果表明,基于EA的模块度优化算法的收敛性能主要取决于两个关键因素,首要因素也是最重要的因素是如何提高EA本身的全局收敛能力,另一因素是如何有效利用网络拓扑信息减少模块度优化过程中巨大的搜索空间。然而据我们所知,现有算法中通常将基本EAs直接作为优化策略而忽略其收敛能力,从而导致EAs的早熟收敛,获得的最优社区划分质量也较差。与此同时,尽管现有部分算法对EAs中的进化操作进行了改进,通过融合网络拓扑信息满足社区检测需求,但拓扑信息的不恰当使用破坏了全局最优社区划分的搜索空间。

    技术实现要素:

    针对现有技术的不足,本发明提出了一种复杂网络社区检测的方法,一方面,为了提高差分进化算法的全局收敛性能,重新设计了三个主要的进化操作,包括基于分类的自适应变异策略、动态自适应参数调整策略和基于历史信息的选择操作。另一方面,为更好地利用网络拓扑信息,提出了一种改进的基于邻域信息的社区调整策略,以保证在减少DE搜索空间的同时为全局最优社区划分提供足够的搜索空间。最后,提出新的基于DE的模块度优化算法CDEMO。

    为实现上述目的,本发明提供了一种复杂网络社区检测的方法,具体包括:提高差分进化算法的全局收敛性能的步骤;利用改进的基于邻域信息进行社区修正的步骤;基于分类差分进化算法的模块度优化方法。

    进一步的,提高DE算法的全局收敛性能的步骤,具体包括:

    (一)分类自适应差分类变异策略;

    (二)动态自适应参数调整;

    (三)基于历史信息的进行差分选择操作。

    进一步的,分类自适应差分类变异策略,具体操作如下:

    对于每一个目标个体Xi,t,如果其个体适应度值fi大于当前整个种群个体适应度值的平均数,则将其归类为优秀个体,在搜索空间的位置较为靠近全局最优解;因此,在Xi,t中好的基因被保留来强化个体周围的局部搜索,相应的变异向量Vi,t生成方式如下:

    Vi,t=Fi,t.Xpbesti,t+Wi,t.(Xr2,t-Xr3,t) (1)

    其中,Xpbesti,t代表个体Xi,t在前t代的历史最优解,用于增强个体探索能力;Xr2,t和Xr3,t是从种群中随机选择的两个不同个体,并且满足条件r2≠r3≠i;Fi,t和Wi,t是Xi的控制参数,其数值根据进化代数和Xi,t的个体适应度值动态调整;

    对于每一个目标个体Xi,t,如果其个体适应度值fi小于当前整个种群个体适应度值的平均数,则将其归类为较差个体,在搜索空间的位置与全局最优解较远;因此,加强其在种群中与优秀个体之间的交流以促进全局搜索,相应的变异向量Vi,t生成方式如下:

    Vi,t=Wi,t.Xr1,t+Ki,t.(Xgbest,t-Xi,t) (2)

    其中Xr1,t是从种群中随机选择的个体,并满足条件r1≠i;Xgbest,t表示当前迭代种群中的最优解,用于增强Xi,t的探索能力;Wi,t和Ki,t是Xi的控制参数,其数值根据进化代数和Xi,t的个体适应度值进行动态调整。

    进一步的,动态自适应参数调整:三个控制参数W,K,F,分别为变异过程中的随机成分、社会成分和认知成分;此外,交叉操作中也有一个关键的控制参数CR,用于确定每个试验个体ui,t中从变异个体Vi,t中继承的百分比;调整过程具体如下:

    1.根据个体的适应度值进行参数自适应调整:对较差个体,加强变异和交叉的程度,以便在进化过程中引入更多的方向性信息。因此,变异过程中的随机成分、社会成分以及交叉过程中的继承都增强,对应公式(2)中的W和K,以及交叉中的CR取值较大;相反,对于优秀个体来说,加强变异过程中的认知部分,参数调整应遵从相反的原则,对应于公式(1)中较大的F值和较小的W值。

    2.根据进化迭代次数动态自适应调整:在进化早期阶段,加强个体的探索能力,以确保在每个个体邻域内进行充分搜索。相反,在进化后期阶段,加强个体的开采能力,加强个体间的交流,加快整个群体的收敛。根据这一原则,进化过程中F,W,CR的取值逐渐减小,而K取值逐渐增大。

    基于上述原则,参数取值能够得到自适应地调整,进化过程中每个个体能够得到动态控制。具体操作过程如下所示:

    进一步的,基于历史信息的进行差分选择操作具体是:

    整个进化过程中生成的优秀解均将被保存在历史信息中,并用于后续进化操作。为实现这一目标,引入特殊种群pbest_pop,由种群中每个个体的历史最优解Xpbesti,t构成种群pbest_pop,并在初始化阶段生成,每个进化操作之后进行更新;对种群中每个个体Xi,t,如果其适应度值在某项进化操作过程中得到改善,那么新生成的个体将作为Xi,t的当前历史最优解,并保存到pbest_pop中;在每一代进化操作之后,pbest_pop中所有个体将替代种群pop中所有个体,并从pbest_pop中选择出当前最优解Xgbest,t。

    进一步的,利用改进的基于邻域信息进行社区修正的步骤具体是:若一节点满足社区修正条件,那么该节点将可能被重新置入所有其邻域节点所属社区中,且置入的概率与邻域社区的规模成正比。

    进一步的,基于分类差分进化算法的模块度优化算法具体是:

    S1:种群初始化;

    S1.1设置网络参数,包括节点数n,邻接矩阵adj,社区修正阈值δ;设置DE算法参数,包括个体维度D,种群大小NP,种群迭代次数t和最大迭代次数tmax;

    S1.2以社区标号的个体表示方式随机初始化种群pop;

    S2:识别并记录最优解

    S2.1识别并记录第t代种群pop中的最优个体Xgbest,t;

    S2.2识别并记录第t代种群pop中每个个体Xi,t的历史最优解Xpbesti,t;由所有种群个体的Xpbesti,t构建初始种群pbest_pop;

    S3:当种群迭代次数小于种群最大迭代次数时,种群迭代次数自加一,不满足条件则结束S3.1-S3.5的循环;

    S3.1通过自适应分类差分变异策略构建变异种群mutation_pop;

    当i的值为1到种群大小数值范围内,进行步骤a)到e)的循环,如果i的值不在1到种群大小数值范围内,则跳出步骤a)到e),结束循环;

    a)从种群pop中随机选取3个不同的个体Xr1,t,Xr2,t,Xr3,t;

    b)动态调整变异参数Fi,t、wi,t、Ki,t;

    c)根据适应度值Q对Xi,t进行分类;

    d)根据自适应分类差分变异策略生成变异个体Vi,t;

    e)计算Vi,t的模块度值并与Xi,t个体作比较,将较优个体保存在pbest_pop中;

    如果i大于NP,则跳步骤出a)到e)的循环;

    S3.2基于邻域信息进行社区修正;

    S3.3根据变异种群mutation_pop和种群pop构建交叉种群crossover_pop;

    当i的值为1到种群大小数值范围内,进行步骤a)到d)的循环,如果i的值不在1到种群大小数值范围内,则跳出步骤a)到d),结束循环;

    a)初始化交叉种群中第i个个体ui,t=xi,t;

    b)动态调整交叉参数CRi,t;

    c)通过从变异个体Vi,t继承社区信息来调整试验个体ui,t;

    d)计算ui,t的模块度值并与pbest_pop中第i个个体进行比较,保留较优值至pbest_pop;

    S3.4基于邻域信息进行社区修正;

    S3.5通过替换pbest_pop中的所有个体更新pop;

    S4:输出pop中的Xgbest,t作为最终的最优社区划分,否则返回第S3步。

    本发明由于采用以上技术方案,能够取得如下的技术效果:

    基于分类的自适应变异将作用于每一代种群中所有个体直到进化结束,因此每个个体的变异都能够得到有针对性的调整。一方面,可以加强优秀个体的探索能力,以增加在其邻域发现全局最优的可能性;另一方面,能够加强较差个体的开采能力,以加快其向全局最优化的搜索速度。总之,具有不同适应度特性个体的进化需求,可以通过新的变异策略得到更好的满足。在方向性信息的引导下,搜索过程中的盲目性可以有效地减少,而子代个体和最优解的质量也可以得到改善。且在进化过程中动态自适应调整每个个体的变异程度。还实现了整个进化过程中生成的优秀解均将被保存为历史信息,并用于后续进化操作。

    新修正策略能够有效减小搜索空间,还能够放宽社区修正时的限制,为全局最优解提供充足的搜索空间,从而更好地利用网络已知拓扑信息,并促进CDEMO算法的收敛。

    CDEMO算法可以有效地识别复杂网络的社区结构,提高最优社区划分的准确性、稳定性和可扩展性,包括那些具有非常模糊的社区结构的复杂网络。

    附图说明

    图1为基于分类的自适应差分进化算法流程图;

    图2为基于差分进化的模块度优化算法CDEMO流程图;

    图3为GN网络不同的zout值得到的CDEMO和其他算法的平均NMI值图;

    图4为LFR网络不同的μ值得到的CDEMO和其他算法的平均NMI值图;

    图5为CDEMO算法在Karate网络上的社区结构划分识别图;

    图6为CDEMO算法在Dolphin网络上的社区结构划分识别图;

    图7为CDEMO算法在Polbooks网络上的社区结构划分识别图;

    图8为CDEMO算法在Football网络上的社区结构划分识别图。

    具体实施方式

    为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

    实施例1

    本实施例提供了一种复杂网络社区检测的方法,具体包括:

    一、为提高DE算法的全局收敛性能,重新设计了三个主要的进化操作:

    (一)分类自适应差分变异策略

    改进措施主要包括以下几方面:

    1.利用当前种群最优解Xgbest,t和每个个体的历史最优解Xpbesti,t换随机选择的个体引导变异方向;

    2.提出并利用一种新的自适应分类机制来平衡具有不同适应性特征的个体的探索和开采能力;

    3.进化过程中每个个体的变异程度通过参数进行动态自适应调整。

    新变异策略具体操作描述如下:

    对于每一个目标个体Xi,t,如果其个体适应度值fi大于当前整个种群个体适应度值的平均数,则将其归类为优秀个体,在搜索空间的位置较为靠近全局最优解。因此,在Xi,t中好的基因应该被保留来强化个体周围的局部搜索,相应的变异向量Vi,t生成方式如下:

    Vi,t=Fi,t.Xpbesti,t+Wi,t.(Xr2,t-Xr3,t) (1)

    其中Xpbesti,t代表个体Xi,t在前t代的历史最优解,用于增强个体探索能力。Xr2,t和Xr3,t是从种群中随机选择的两个不同个体,并且满足条件r2≠r3≠i。Fi,t和Wi,t是Xi的控制参数,其数值根据进化代数和Xi,t的个体适应度值动态调整。

    对于每一个目标个体Xi,t,如果其个体适应度值fi小于当前整个种群个体适应度值的平均数,则将其归类为较差个体,在搜索空间的位置与全局最优解较远。因此,应加强其在种群中与优秀个体之间的交流以促进全局搜索,相应的变异向量Vi,t生成方式如下:

    Vi,t=Wi,t.Xr1,t+Ki,t.(Xgbest,t-Xi,t) (2)

    其中Xr1,t是从种群中随机选择的个体,并满足条件r1≠i。Xgbest,t表示当前迭代种群中的最优解,用于增强Xi,t的探索能力。Wi,t和Ki,t是Xi的控制参数,其数值根据进化代数和这Xi,t的个体适应度值动态调整。

    产生的有益效果:上述基于分类的自适应变异将作用于每一代种群中所有个体直到进化结束,因此每个个体的变异都能够得到有针对性的调整。一方面,可以加强优秀个体的探索能力,以增加在其邻域发现全局最优的可能性;另一方面,能够加强较差个体的开采能力,以加快其向全局最优化的搜索速度。总之,具有不同适应度特性个体的进化需求,可以通过新的变异策略得到更好的满足。在方向性信息的引导下,搜索过程中的盲目性可以有效地减少,而子代个体和最优解的质量也可以得到改善。

    (二)动态自适应参数调整

    三个控制参数W,K,F,分别对应于变异过程中的随机成分、社会成分和认知成分。此外,交叉操作中也有一个关键的控制参数CR,用于确定每个试验个体ui,t中从变异个体Vi,t中继承的百分比。

    1.根据个体的适应度值进行参数自适应调整。对较差个体,应该加强变异和交叉的程度,以便在进化过程中引入更多的方向性信息。因此,变异过程中的随机成分、社会成分以及交叉过程中的继承都应该增强,对应公式(2)中的W和K,以及交叉中的CR取值较大。相反,对于优秀个体来说,应该加强变异过程中的认知部分,参数调整应遵从相反的原则,对应于公式(1)中较大的F值和较小的W值。

    2.根据进化迭代次数动态自适应调整。在进化早期阶段,应该加强个体的探索能力,以确保在每个个体邻域内进行充分搜索。相反,在进化后期阶段,应该加强个体的开采能力,加强个体间的交流,加快整个群体的收敛。根据这一原则,进化过程中F,W,CR的取值逐渐减小,而K取值逐渐增大。

    基于上述原则,参数取值能够得到自适应地调整,进化过程中每个个体能够得到动态控制。具体操作过程如下所示:

    产生的有益效果:在进化过程中动态自适应调整每个个体的变异程度。

    (三)基于历史信息的差分选择操作

    整个进化过程中生成的优秀解均将被保存为历史信息,并用于后续进化操作。为实现这一目标,引入特殊种群pbest_pop,由种群中每个个体的历史最优解Xpbesti,t构成种群pbest_pop,并在初始化阶段生成,并在每个进化操作之后进行更新。对种群中每个个体Xi,t,如果其适应度值在某项进化操作过程中得到改善,那么新生成的个体将作为Xi,t的当前历史最优解,并保存到pbest_pop中。在每一代进化操作之后,pbest_pop中所有个体将替代种群pop中所有个体,并从pbest_pop中选择出当前最优解Xgbest,t。

    产生的有益效果:实现整个进化过程中生成的优秀解均将被保存为历史信息,并用于后续进化操作。

    改进差分进化算法收敛性测试:

    上述三项改进措施都是为了提高DE算法的全局收敛性,改进后算法流程图如图1所示。

    不同于标准DE算法,新变异操作中结合了更多的方向性信息,因此个体可以更有针对性地进行变异。此外,选择操作不放在交叉操作之后执行,而是通过在每项进化操作之后更新种群pbest_pop选择并保留优秀解。

    为了验证上述针对DE的改进措施,使用18个标准Benchmark函数对改进算法进行测试,其中f1-f5是单模态函数,f6-f14是基本多模态函数,f15-f16是扩展函数,而f17-f18是组合函数。表1提供了标准Benchmark函数的详细信息。

    改进后的DE算法与4个高效且广泛使用的DE算法模式进行性能对比,包括DE/rand/2/dir,DE/rand/1/bin,DE/current-to-best/2/bin和DE/best/1/bin。为便于比较,采用新变异策略和参数自适应调整策略的算法命名为

    DE_version1,而采用全部三项改进措施的DE算法命名为DE_version2。

    在实验过程中,所有算法在每个测试问题上采用同样的初始种群规模NP=100,同样的变量维度D=30,以及同样的终止准则Max_FEs=5.0e+0.5。此外,所有模式的DE算法中的参数F和CR都按照公式(5)和(6)所示的自适应方式进行调整。相关参数的取值范围为W∈[0.1,0.9],K∈[0.3,0.9],F∈[0.3,0.9],CR∈[0.1,0.9]。

    六种模式的DE算法在最优解精确度和鲁棒性方面进行性能比较。实验结果如表2所示,包括每项测试函数上30次独立运行求得最优解的平均值和标准差(括号内)。每项测试函数上的最优解用粗体显示。从表2中我们可以看到,DE_version1和DE_version2几乎在所有的测试函数上优于其他4种算法。DE_version2在50.0%的测试函数中成功收敛至真正的全局最优解,并在88.9%的测试函数上表现最优。上述结果证明,基于分类的自适应变异策略可以有效提高子代个体质量及最优解的精确性。此外,与DE_version1相比,DE_version2在精确度方面有明显改进,说明基于历史信息的新选择操作可以有效提高DE算法的全局收敛能力。

    上述实验结果说明本文提出的改进方法是成功有效的,能够有效提高原始标准DE算法的全局收敛性能,为复杂网络社区检测中的模块度优化问题提供了一种有效的全局最优化方法。

    二、为更好地利用网络拓扑信息,提出了一种改进的基于邻域信息的社区调整策略,以保证在减少DE搜索空间的同时为全局最优社区划分提供足够的搜索空间。

    对于改进后DE算法,为更好地利用网络拓扑信息,提出了一种改进的基于邻域信息的社区修正策略:

    为了避免这种对拓扑信息的不适当使用,CDEMO中提出了一种新的社区修正策略。若一节点满足社区修正条件,那么该节点将可能被重新置入所有其邻域节点所属社区中,且置入的概率与邻域社区的规模成正比。

    产生的有益效果:新修正策略与原策略一样能够有效减小搜索空间,而更重的是能够放宽社区修正时的限制,为全局最优解提供充足的搜索空间,从而更好地利用网络已知拓扑信息,并促进CDEMO算法的收敛。

    三、新的基于DE的模块度优化算法CDEMO

    (一)CDEMO算法,算法流程图如图2所示:

    1:种群初始化;

    1.1设置网络参数,包括节点数n,邻接矩阵adj,社区修正阈值δ。设置DE算法参数,包括个体维度D,种群大小NP,种群迭代次数t和最大迭代次数tmax;

    1.2以社区标号的个体表示方式随机初始化种群pop;

    2:识别并记录最优解

    2.1识别并记录第t代种群pop中的最优个体Xgbest,t;

    2.2识别并记录第t代种群pop中每个个体Xi,t的历史最优解Xpbesti,t。由所有种群个体的Xpbesti,t构建初始种群pbest_pop;

    3:当种群迭代次数小于种群最大迭代次数时,种群迭代次数自加一,不满足条件则结束S3.1-S3.5的循环;

    3.1通过自适应分类差分变异策略构建变异种群mutation_pop;

    当i的值为1到种群大小数值范围内,进行步骤a)到e)的循环,如果i的值不在1到种群大小数值范围内,则跳出步骤a)到e),结束循环。

    a)从种群pop中随机选取3个不同的个体Xr1,t,Xr2,t,Xr3,t;

    b)动态调整变异参数Fi,t、wi,t、Ki,t;

    c)根据适应度值Q对Xi,t进行分类;

    d)根据自适应分类差分变异策略生成变异个体Vi,t;

    e)计算Vi,t的模块度值并与Xi,t个体作比较,将较优个体保存在pbest_pop中;

    如果i大于NP,则跳步骤出a)到e)的循环;

    3.2基于邻域信息进行社区修正;

    3.3根据变异种群mutation_pop和种群pop构建交叉种群crossover_pop;

    当i的值为1到种群大小数值范围内,进行步骤a)到d)的循环,如果i的值不在1到种群大小数值范围内,则跳出步骤a)到d),结束循环。

    a)初始化交叉种群中第i个个体ui,t=xi,t;

    b)动态调整交叉参数CRi,t;

    c)通过从变异个体Vi,t继承社区信息来调整试验个体ui,t;

    d)计算ui,t的模块度值并与pbest_pop中第i个个体进行比较,保留较优值至pbest_pop;

    3.4基于邻域信息进行社区修正;

    3.5通过替换pbest_pop中的所有个体更新pop。

    4:如果满足停止标准则停止算法,输出pop中的Xgbest,t作为最终的最优社区划分,否则返回第3步。

    产生的有益效果:CDEMO算法可以有效地识别复杂网络的社区结构,提高最优社区划分的准确性、稳定性和可扩展性,包括那些具有非常模糊的社区结构的复杂网络。

    CDEMO算法性能测试:

    将通过实验验证新社区修改策略的有效性,并验证DE算法收敛性能提升是否有利于其在模块度优化中的应用。构建6种基于DE的模块度优化算法,命名为DEMO1-6。这些算法采用不同的DE算法(具有不同的试验个体生成策略)作为优化模块度的优化策略。DEMO1-4中分别应用不同的DE算法,包括

    DE/rand/2/dir,DE/rand/1/bin,DE/current-to-best/2/bin,DE/best/1/bin。DEMO5采用了一种广泛使用的随机变异策略,即节点社区归属以完全随机的方式进行调整。DEMO6将改进后的DE_version2作为优化策略。在DEMO6基础上结合之前提出的改进以提高算法的全局收敛性及在此基础上减少算法搜索空间并确保全局最优解搜索空间的新社区修改操作构建出CDEMO。

    所有算法在4个真实世界社交网络上进行测试,如表3所示,包括空手道俱乐部网络、海豚网络、美国政治图书网络和美国大学橄榄球网络。实验结果如表4所示,包括各个算法在每个测试网络上30次独立运行后所得模块度Q值的平均值和标准偏差。

    从表4我们可以清楚地看出,由于不同的收敛性,不同模式的DE算法在模块度优化问题上性能表现有较大差异。与DEMO3和DEMO4相比,DEMO1-2和DEMO5变异策略中的随机成分使其具有较强的探索能力,因此能够获得更好的Qavg和Qstd值。此外,在最优社区划分的精度和稳定性方面,DEMO6性能优于DEMO1-5,证明了DE算法的收敛性能提升有助于其在模块度优化中的应用。与DEMO6相比,CDEMO在Karate网络,Dolphin网络和PolBooks网络上获得更好的Qavg和Qstd值,所检测到社区的准确性得到进一步提升。

    基于上述测试结果我们可以得出结论,从提升DE算法全局收敛能力和提升拓扑信息使用效率两方面增强算法收敛性能,确实有助于提高模块度优化问题中最优社区划分的质量。

    四、社区检测性能测试

    1.实验设置

    在人工合成网络和真实世界社交网络上对CDEMO算法进行性能评估。CDEMO算法在MATLAB 7.0软件编程实现,并在使用奔腾双核2.5GHz处理器和2.0GB内存的Windows 7系统上进行实验。CDEMO中的参数设置如下:种群规模NP取值100,最大迭代次数tmax取值200,控制参数的值范围设置为,W∈[0.1,0.9],K∈[0.3,0.9],F∈[0.3,0.9],CR∈[0.1,0.9]。

    2.性能评价标准

    (1)模块度Q:对于未知社区结构的真实世界网络,通常用模块度函数作为性能指标衡量检测所得社区结构的显著程度。模块度定义如下:

    其中,M为网络总边数;A=(aij)n*n为网络邻接矩阵;ki和kj分别表示节点i和j的度;δ(i,j)表示节点i和节点j的社区归属关系,若二者归属于同一社区取值为1,否则取值为0。当Q取值大于0时表示网络中存在社区结构,大于0.3时表示网络的社区结构较为明显,Q取值越大说明社区结构越显著。尽管模块度存在分辨率限制问题,但仍是目前使用最广泛的社区划分质量衡量标准。

    (2)归一化互信息NMI:对于已知社区结构的人工合成网络,通常用NMI作为性能指标衡量检测所得社区划分与真实社区划分的逼近程度,计算公式如(8)所示。假设A是网络的真实社区划分,B是检测所得社区划分,定义混合矩阵C,其中行表示A中的社区划分,列表示B中检测的社区划分。元素Cij表示划分A中的第i个社区与划分B中的第j个社区相同的节点数目。根据C的定义,评价标准NMI定义如下:

    其中,N表示网络中的节点数目;CA和CB分别表示划分A和B中的社区数目;Ci为混淆矩阵C中第i行元素之和,代表划分A中第i个社区节点数目;Cj为混淆矩阵C中第j列元素之和,代表划分B中第j个社区节点数目。如果A和B完全相同,NMI取到最大值1,相反地,如果A和B完全不同,NMI取值为0。

    3.人工合成网络的实验结果

    在Lancichinetti等提出的扩展GN Benchmark网络上验证CDEMO算法的社区检测性能。每个GN网络中包含128个节点,分为4个社区,每个社区包含32个节点。每个节点与社区内部其他节点连边数目为Zin,而与社区外部节点连边数目的为Zout,二者之和等于节点度的16。Zout取值越大,节点与社区外部节点的连边越多,网络社区结构越不明显,对检测算法的检测性能要求越高。

    CDEMO算法在Zout取值逐渐递增的9个不同GN网络上测试,根据每个网络上算法独立运行30次所得NMI的平均值衡量算法的精确性和稳定性,并与10种典型的模块度优化算法进行对比(包括CNM,GN,GATHB,ECGA,LGA,MA,UMDA,MOEA/D-Net,DECD和IDDE)),实验结果如图3所示。

    从图3可以看出,当Zout≦3时所有算法都能取得最优NMI值,即成功检测到GN网络的社区结构。然而,随着Zout的逐渐递增,网络的社区结构变得更加模糊也更难识别,所有算法所得NMI值都逐渐降低。值得注意的是,CDEMO算法检测结果始终优于其他10种算法,尤其是当Zout>后,这说明CDEMO算法在计算机合成网络的社区检测上更加精确和稳定。

    为进一步测试CDEMO算法的可扩展性能,将其在混合参数μ逐渐增大的更大规模的LFR Benchmark网络上进行测试实验。LFR网络的节点度分布为幂律分布且社区规模大小可变,因此更接近真实世界网络特性。网络混合参数μ决定社区内节点与其他社区节点之间共享边的数量,其数值越大对应网络社区结构越模糊。实验中使用μ取值从0增至0.7的间隔0.1的8个LFR网络,每个LFR网络包含1000个节点,社区规模取值范围为[10,50],每个节点的平均度为20,最大度为50。在每个LFR网络上,CDEMO算法独立运行30次,同CNM,GATHB,MOGA-Net,MPSOA,ECGA,UMDA,MOEA/D-Net和DECD 8种算法进行比较,利用NMI度量检测所得社区结构的精确性和稳定性,实验结果如图4所示。

    从图4我们可以注意到,和其他模块度优化算法相比,CDEMO算法能够在8个LFR网络上获得最优的NMI值。当μ<0.2时CDEMO算法的性能优势并不明显,而随着μ值的递增,CDEMO算法的精确性和稳定性上的优势逐渐凸显。上述实验结果表明,CDEMO在人工合成网络的社区检测问题上具有较好的准确性、稳定性和可扩展性。

    4.真实世界网络实验结果

    在表3所示的真实世界社交网络上验证CDEMO算法性能,并采用16种模块识别算法与CDEMO进行性能对比。将对比算法分为三组:第一组包含6种传统的确定性模块度优化算法,包括Fast Nm,CNM,GN,BGLL,MSFCM,FMM/H1;第二组包含4种基于GA的模块度优化算法,包括GATHB,MOGA-Net,ECGA,and MOEA/D-Net;最后一个组包含5种基于PSO和DE的模块度优化算法,包括Meme-Net,MODPSO,DECD,CCDECD和IDDE。所有算法在每个测试网络上独立运行30次,并利用模块度Q度量最优社区划分质量,表5-7记录CDEMO和其他对比算法所得最优Q值。

    表5-7中的实验结果表明,尽管所有算法都能够识别出真实网络中的社区结构,且第一类别中的算法性能并无较大差异,但基于EA的模块度优化算法相比较于传统的确定性模块度优化算法具有明显的优越性。在基于EA的算法中,DECD、CCDECD、IDDE和CDEMO所获得的Q值相对较高,证明了基于DE优化策略的优越性。尽管基于PSO的模块度优化算法(Meme-Net和MODPSO)可以检测到Karate网络的最优社区,但它们在其他网络上的表现不尽如人意。与DECD、CCDECD和IDDE相比,只有CDEMO算法总是能得到最优的Q值,尤其是在Dolphin和Polbooks网络上。

    图5-8显示了CDEMO算法在4个真实世界社交网络中检测到的最优社区划分结果。实验结果表明,除了人工合成网络外,CDEMO算法也能有效地识别真实社交网络的社区结构,与多种前沿有效的模块度优化算法相比更准确、更稳定,由此也进一步证明了算法整体收敛性能提高的有效性和先进性。

    下面对本实施例中涉及的7个表进行介绍:

    表1 Benchmark函数详细信息

    表1 Benchmark函数详细信息(续)

    表2.DE算法收敛性能比较

    表3.Benchmark真实世界网络特性

    表4.DE算法模块度优化性能比较

    表5 Fast Nm CNM、GN、BGLL、MSFCM和FMM/H1在真实世界网络上的最优Q值

    表6 GATHB、MOGA-Net、ECGA以及MOEA/D-Net在真实世界网络上的最优Q值

    表7 Meme-Net、MODPSO、DECD、CCDECD和IDDE在真实世界网络上的最优Q值

    以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

    展开全文
  • 1.2 函数参数 2 1.2.1 传值参数 2 1.2.2 模板函数 3 1.2.3 引用参数 3 1.2.4 常量引用参数 4 1.2.5 返回值 4 1.2.6 递归函数 5 1.3 动态存储分配 9 1.3.1 操作符new 9 1.3.2 一维数组 9 1.3.3 异常处理 ...
  • 论文研究-能力权力:大规模复杂网络重要节点识别的二重异质指标及算法.pdf, 为快速识别大规模复杂网络中的重要节点,本研究将人类社会普遍存在的两类不平等映射为节点...
  • 讲述了c++的各种使用的数据结构和算法,对于初学者和已经入门的都很有帮助,里面的内容有 目 录 译者序 前言 第一部分 预备知识 第1章 C++程序设计 1 1.1 引言 1 1.2 函数参数 2 1.2.1 传值参数 2 1.2.2 模板函数 ...
  • 数据结构算法与应用-C++语言描述 目 录 译者序 前言 第一部分 预备知识 第1章 C++程序设计 1 1.1 引言 1 1.2 函数与参数 2 1.2.1 传值参数 2 1.2.2 模板函数 3 1.2.3 引用参数 3 1.2.4 常量引用参数 4 ...
  • 网络簇结构是复杂网络最普遍和最重要的拓扑属性之一,网络聚类问题就是要找出给定网络中的所有类簇.有很多实际应用问题可被建模成网络聚类问题.尽管目前已有许多网络聚类方法被提出,但如何进一步提高聚类精度,特别是...
  • 1.2 函数参数 2 1.2.1 传值参数 2 1.2.2 模板函数 3 1.2.3 引用参数 3 1.2.4 常量引用参数 4 1.2.5 返回值 4 1.2.6 递归函数 5 1.3 动态存储分配 9 1.3.1 操作符new 9 1.3.2 一维数组 9 1.3.3 异常处理 10 ...
  • 本书是关于计算机科学工程领域的基础性研究科目之一——数据结构与算法的专著。 本书在简要回顾了基本的C++ 程序设计概念的基础上,全面系统地介绍了队列、堆栈、树、图等基本数据结构,以及贪婪算法、分而治之...
  • 通过对两个标准集的测试表明:OSVR算法与SVMTorch算法相比具有可在线序列输入,生成支持向量机少和泛化性能强的优点。 (2) 在分析和了解工业过程软测量原理的基础上,将支持向量机方法引入蒸煮过程纸浆的Kappa值软...
  • 1.2 函数参数 2 1.2.1 传值参数 2 1.2.2 模板函数 3 1.2.3 引用参数 3 1.2.4 常量引用参数 4 1.2.5 返回值 4 1.2.6 递归函数 5 1.3 动态存储分配 9 1.3.1 操作符new 9 1.3.2 一维数组 9 1.3.3 异常处理 10 1.3.4 ...
  • 复杂网络理论应用于文本挖掘技术,构造基于词汇共现性关系的词汇概念复杂网络,对文本词汇的重要性指标进行计算分析,挖掘文本中主题的关键词。在计算词汇重要性指标时,综合考虑目标词汇的频率以及其相邻节点的...
  • 李士勇编著的《智能优化算法原理与应用》主要介绍模糊逻辑推理算法、神经网络学习算法、遗传算法、模拟退火算法、忌算法、人工免疫算法、人工蚁群算法、微粒群算法、混沌优化算法、量子优化算法,以及智能优化算法在...

    1f2827448268c63f6526f906e6d48bc8.png

    智能优化算法是指通过计算机软件编程模拟自然界、生物界乃至人类自身的长期演化、生殖繁衍、竞争、适应、自然选择中不断进化的机制与机理,从而实现对复杂优化问题求解的一大类算法的统称。李士勇编著的《智能优化算法原理与应用》主要介绍模糊逻辑推理算法神经网络学习算法遗传算法、模拟退火算法、忌算法、人工免疫算法、人工蚁群算法、微粒群算法、混沌优化算法、量子优化算法,以及智能优化算法在函数优化、聚类分析、系统辨识、路径规划、航迹规划等方面的应用。

    《智能优化算法原理与应用》可作为高校自动化、计算机、系统工程、管理工程、人工智能等相关专业研究生学习用书,也可供相关专业的科研人员及工程建设人员学习参考。

    第1章 绪 论

    1.1 最优化问题的描述

    1.2 函数优化问题

    1.3 组合优化问题

    1.4 最优化问题的智能优化求解方法

    1.5 智能优化算法的实质――智能逼近

    第2章 模糊逻辑推理算法

    2.1 模糊集合与模糊逻辑

    2.2 模糊关系与模糊矩阵

    2.3 模糊语言与模糊推理

    2.4 可加性模糊系统

    2.5 模糊系统的逼近特性

    2.6 模糊系统的万能逼近定理

    第3章 神经网络学习算法

    3.1 电脑与人脑

    3.2 神经细胞的结构与功能

    3.3 人工神经元的基本特性

    3.4 人工神经网络及其特点

    3.5 神经网络的结构及其分类

    3.6 前向网络

    3.7 BP网络的非线性映射能力

    3.8 神经网络应用_

    第4章 进化算法与遗传算法

    4.1 生物的进化与遗传

    4.2 进化算法的分类

    4.3 遗传算法1

    4.4 基本遗传算法及其在函数优化中的应用

    4.5 遗传算法的模式定理

    4.6 GA的收敛性分析

    4.7 GA的特点及其应用领域

    第5章 模拟退火算法

    5.1 sA的基本思想

    5.2 固体退火过程的统计力学

    5.3 模拟退火模型

    5.4 Metmpolis算法与组合优化问题

    5.5 sA的主要操作及实现步骤

    5.6 用SA求解TSP问题的例子

    第6章 禁忌搜索算法

    6.1 引言

    6.2 组合优化中的邻域概念

    6.3 局部搜索算法

    6.4 禁忌搜索的一个例子

    6.5 禁忌搜索中的主要操作及参数

    6.6 用禁忌搜索算法求解车间调度问题

    第7章 人工免疫算法

    7.1 人工免疫系统

    7.2 人工免疫算法的免疫学基础

    7.3 免疫应答中的学习与优化原理

    7.4 免疫算法

    第8章 人工蚁群算法

    8.1 群智能的概念

    8.2 蚂蚁社会及信息系统

    8.3 蚂蚁的觅食行为

    8.4 蚁群觅食策略的优化机制

    8.5 人工蚁与真实蚁的异同

    8.6 蚂蚁系统模型的建立

    8.7 基本蚁群算法的实现步骤

    8.8 基本(标准)蚁群算法流程

    第9章 微粒群优化算法

    9.1 PSO算法的提出

    9.2 基本微粒群算法

    9.3 PSO算法步骤

    9.4 PsO算法的改进及应用

    0章 混沌优化算法

    10.1 混沌现象和混沌学

    10.2 L0gistic映射

    10.3 从倍周期分支到混沌

    10.4 区间映射与混沌

    10.5 混沌中的规律性

    10.6 Lyapunov指数

    10.7 奇异吸引子

    10.8 混沌优化方法

    1章 量子优化算法

    11.1 量子比特

    11.2 量子逻辑门

    11.3 Gmver量子搜索算法

    11.4 量子遗传算法

    11.5 实数编码双链量子遗传算法

    2章 智能优化算法的工程应用

    12.1 基于RBF神经网络优化自适应模糊导引律

    12.2 带有成长算子遗传算法在辨识与优化中的应用

    12.3 改进的免疫克隆算法在函数优化中的应用

    12.4 蚁群算法在聚类分析中的应用

    12.5 蚁群算法在机器人路径规划中的应用

    12.6 改进的蚁群算法在巡航导弹航迹规划中的应用

    12.7 混沌量子免疫算法及其在连续优化问题中的应用

    参考文献

    免费电子书下载及分享请加以下QQ群:

    509b9a3b923953dcdc17d7f4bbb9cf34.png

    展开全文
  • 基于模块度优化的重叠社团检测算法研究与应用 中文摘要 近几年大数据人工智能持续发展变得越来越高效在日常生活中也 得到了广泛的应用网络承载着庞大而复杂的数据信息其内部结构的研究无 疑蕴含着丰富的信息量和强大...
  • 1.2 函数参数 2 1.2.1 传值参数 2 1.2.2 模板函数 3 1.2.3 引用参数 3 1.2.4 常量引用参数 4 1.2.5 返回值 4 1.2.6 递归函数 5 1.3 动态存储分配 9 1.3.1 操作符new 9 1.3.2 一维数组 9 1.3.3 异常处理 10 1.3.4 ...
  • 2015-12-17晚,复习,甚是无聊,阅《复杂网络算法与应用》一书,得知最小生成树问题(Minimum spanning tree)问题。记之。  何为树:连通且不含圈的图称为树。  图T=(V,E),|V|=n,|E|=m,下列关于树的说法等价: ...

      2015-12-17晚,复习,甚是无聊,阅《复杂网络算法与应用》一书,得知最小生成树问题(Minimum spanning tree)问题。记之。

      何为:连通且不含圈的图称为树。

      图T=(V,E),|V|=n,|E|=m,下列关于树的说法等价:

    1. T是一个树。
    2. T无圈,且m=n-1。
    3. T连通,且m=n-1。
    4. T无圈,但每加一新边记得到唯一一个圈。
    5. T连通,但任舍去一边就不连通。
    6. T中任意两点,有唯一道路相连。

     

      何为生成树:若图G=(V,E)的生成子图是一棵树,则称该树为图G的生成树,也称支撑树,简称为图G的数。图G中属于生成树的边称为数枝(Branch)。

      何为最小生成树:连通图G=(V,E),每条边上有非负权L(e)。一棵树上所有树枝权的总和,称为这个生成树的权。具有最小权的生成树称为最小生成树,也就是说最小支撑树,简称最小树。

      私以为,两种算法其实都是贪心,所以需要严格的证明。由于最近时间零散、数学久置未学、对算法领域没有系统了解。所以不进行深入探讨(也就是说证明),仅以一个简单实例做一个入门级的了解。

      Prim算法:

      给定连通赋权图G=(V,E,W),其中W为邻接矩阵,设两个集合P和Q,其中P用于存放G的最小生成树中的节点,集合Q存放G的最小G的最小生成树中的边。另集合P的初值为P={v1}(假设构造最小生成树时从v1出发),集合Q的初值为P={空集}。

      (1)P = {v1},Q = {空集};

      (2)while P ~= Q

        找到最小边pv,其中p∈P,v∈V-P;

        P = P + {v};

        Q = Q + {pv};

        end

       Kruskal算法

      (1)选e1∈E(G),使得w(e1) = min(选e1的权值最小)。

      (2)e1,e2,...,ei已选好,则从E(G)-{e1,e2,...,ei}中选取ei+1,使得G[{e1,e2,...,ei,ei+1}]中无圈,且,w(ei+1) = min。

      (3)直到选得en-1为止。

      以下是问题:

    一个乡有9个自然村,其间道路及各道路长度如图所示,各边上数字代表距离。问如何架设电线最短。
    

      

    预输入:

    1 A = zeros(9);
    2 A(1,2:9) = [2 1 3 4 4 2 5 4];
    3 A(2,[3, 9]) = [4 1];
    4 A(3, 4) = 1;
    5 A(4, 5) = 1;
    6 A(5, 6) = 5;
    7 A(6, 7) = 2;
    8 A(7, 8) = 3;
    9 A(8, 9) = 5;

     

    Prim算法实现:

     1 A = A+A';
     2 A(A==0) = Inf;
     3 P = zeros(1, 9);
     4 P(1,1) = 1;
     5 V = 1:9;
     6 V_P = V - P;
     7 link = zeros(8,2);
     8 k=1;
     9 while k<9
    10     p = P(P~=0);
    11     v = V_P(V_P~=0);
    12     pv = min(min(A(p,v)));
    13     [x, y] = find(A==pv);
    14     for i=1:length(x)
    15         if  any(P==x(i)) && any(V_P==y(i))集合判断,关键!
    16             P(1,y(i)) = y(i);
    17             V_P = V - P;
    18             link(k, :) = [x(i), y(i)];
    19             k = k+1;
    20             break;
    21         end
    22     end
    23 end

    输出:

    >> link
    link =
         1     3
         3     4
         4     5
         1     2
         2     9
         1     7
         7     6
         7     8

     

    Kruskal算法实现:

     1 A = sparse(A');
     2 A(A==0) = Inf; 3 B = sparse(9, 9);
     4 link = graphallshortestpaths(B, 'directed', false);
     5 while sum(sum(link)) == Inf%如果不连通,则和无穷大
     6     ind = find(A==min(min(A)));
     7     [x, y] = ind2sub(size(A), ind);%寻找最短边
     8     for i=1:length(x)
     9         if link(x(i), y(i))==Inf%判断是否连通,关键!!
    10             B(x(i), y(i)) = A(x(i), y(i));
    11             A(x(i), y(i))=Inf;%取差集
    12         end
    13     end
    14     link = graphallshortestpaths(B, 'directed', false);
    15 end

    输出:

    B =
       (2,1)        2
       (3,1)        1
       (7,1)        2
       (9,2)        1
       (4,3)        1
       (5,4)        1
       (7,6)        2
       (8,7)        3

     

    所以结果是:

      

    (算法实现写于2015-12-18)

      下一步工作,用其他语言实现,复杂度分析,深入论证算法正确性

      另外,代码中使用了graphallshortestpaths函数,这是最短路径的问题。关于最短路径将在下一篇讲述。其实MATLAB有关于求求最小生成树的函数graphminspantree,关于这一套函数,将结合官网资料,以后做梳理。

     1  A = sparse(A');
     2 >> graphminspantree(A)
     3 ans =
     4    (2,1)        2
     5    (3,1)        1
     6    (7,1)        2
     7    (9,2)        1
     8    (4,3)        1
     9    (5,4)        1
    10    (7,6)        2
    11    (8,7)        3

      如此,可直接求得最小生成树。

    转载于:https://www.cnblogs.com/zhaoyu1995/p/5055186.html

    展开全文
  • 1.2 函数参数 2 1.2.1 传值参数 2 1.2.2 模板函数 3 1.2.3 引用参数 3 1.2.4 常量引用参数 4 1.2.5 返回值 4 1.2.6 递归函数 5 1.3 动态存储分配 9 1.3.1 操作符new 9 1.3.2 一维数组 9 1.3.3 异常处理 10 1.3.4 ...
  • 本书是关于计算机科学工程领域的基础性研究科目之一——数据结构与算法的专著。 本书在简要回顾了基本的C++ 程序设计概念的基础上,全面系统地介绍了队列、堆栈、树、图等基本数据结构,以及贪婪算法、分而治之...
  • 本书是关于计算机科学工程领域的基础性研究科目之一——数据结构与算法的专著。 本书在简要回顾了基本的C++ 程序设计概念的基础上,全面系统地介绍了队列、堆栈、树、图等基本数据结构,以及贪婪算法、分而治之...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,018
精华内容 407
关键字:

复杂网络算法与应用