Newman快速算法实际上是基于贪婪算法思想的一种凝聚算法【1】。贪婪算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法【2】。社区发现(Community Detection)算法用来发现网络中的社区结构,也可以视为一种广义的聚类算法【4】。基于模块度优化的社团发现算法是目前研究最多的一类算法,由Newman等首先提出模块度Q 值是目前使用最广泛的优化目标【3】。Newman算法可以用于分析节点数达100万的复杂网络【1】
Newman快速算法将每个节点看作是一个社团,每次迭代选择产生最大Q值的两个社团合并,直至整个网络融合成一个社团。整个过程可表示成一个树状图,从中选择Q值最大的层次划分得到最终的社团结构。该算法的总体时间复杂度为O(m(m+n))【3】。
-
汪小帆. 复杂网络理论及其应用[M]. 清华大学出版社, 2006. P184 ~185
-
贪心法 - 维基百科,自由的百科全书
-
骆志刚, 丁凡, 蒋晓舟,等. 复杂网络社团发现算法研究新进展[J]. 国防科技大学学报, 2011, 33(1):47-52.
-
Community Detection 算法 - peghoty - CSDN博客
-
模块度(Modularity)与Fast Newman算法讲解与代码实现 - 博客频道 - CSDN.NET
-
科学网—Girvan-Newman社群发现算法 - 毛进的博文
-
模块度 - 维基百科,自由的百科全书
Newman快速算法实际上是基于贪婪算法思想的一种凝聚算法【1】。贪婪算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法【2】。社区发现(Community Detection)算法用来发现网络中的社区结构,也可以视为一种广义的聚类算法【4】。基于模块度优化的社团发现算法是目前研究最多的一类算法,由Newman等首先提出模块度Q 值是目前使用
NP-hard问题
介绍NP困难之前要说到P问题和NP问题,P问题是在多项式时间内可以被解决的问题,而NP问题是在多项式时间内可以被验证其正确性的问题。 NP困难(NP-hardness, non-deterministic polynomial-time hardness)问题是计算复杂性理论中最重要的复杂性类之一。如果所有NP问题都可以多项式时间归约到某个问题,则称该问题为NP困难。
进化
算法
进化
算法
(英语:Evolutionary Algorithm )是人工智能中进化计算的子集。进化
算法
启发
function
New
Chrom = reclin(OldChrom, XOVR);
% Identify the population size (Nind) and the number of variables (Nvar)
贪心
算法
是一种常见的
算法
思想,它在每一步选择中都采取在当前状态下最好或最优的选择,从而希望导致结果是全局最好或最优的
算法
。贪心
算法
通常用来解决那些具有最优子结构性质的问题,即问题的最优解可以通过一系列局部最优的选择来达到。
举个例子,假设你要在一条路上走到终点,每次只能向前走一步,每一步都有不同的收益,你的目标是获得最大的总收益。这个问题就可以使用贪心
算法
来解决,每一步都选择当前收益最大的方向前进,最终就能得到全局最优解。
但是需要注意的是,并不是所有问题都适合使用贪心
算法
,因为贪心
算法
只考虑当前状态下的最优解,而不考虑未来可能出现的情况。因此,在使用贪心
算法
时,需要仔细分析问题,确定问题是否具有最优子结构性质,并且需要证明贪心选择的正确性。