首页 > 代码库 > 图:centrality
图:centrality
【定义】Centrality:图中每个节点v的相对重要度c(v),重要度是什么可根据具体应用定义。
【估计方法】
Degree centrality
Betweenness centrality
Closeness centrality
Eigenvector centrality
PageRank及其他
通常,Centrality的估计有几种方法:
1. Degree centrality
计算公式:C(v)=degree(v)
备注:节点v处的边数直接作为centrality,若边是有向的,则可以有两个c(v)的定义:入度数和出度数
此定义也可视为到v距离为1的所有路径长度。
2. Betweenness centrality(Freeman Linton, 1977)
计算公式:C(v)=图中所有除节点v外的节点对之间经过v的最短路径数/图中所有除节点v外的节点对之间所有的最短路径数;
备注:衡量v作为路由器的功率。
计算复杂度:
1)Floyd-Warshall algorithm(也称Floyd’s algorithm, Roy-Warshall algorithm, Roy-Floyd algorithm, WFI algorithm,基于动态规划的计算任意两点间最短路径的算法,也可用于计算有向图的传递闭包),平均复杂度为theta(|V|^3),|V|为图中节点总数。
2)Johnson’s algorithm,也是计算最短路径的算法,在稀疏图中(有向、有边权),最坏情况下,O(|V|^2*Log|V|+|V|*|E|)
3)Brandes‘ algorithm (a faster algorithm for betweenness centrality, 2001), 在无权重(同权重)的图上,最坏情况下O(|V|*|E|)
3. Closeness centrality(Freeman, 1978; Opsahl et al., 2010; Wasserman and Faust, 1994)
计算公式:从v到所有其他节点的最短距离和的倒数。
备注1:这个centrality只能用于连通图,非联通图上会出现无穷大,然后所有节点的centrality都是0;
备注2:这个centrality可用于衡量一个节点将信息传播到其他节点的时间或者花费,能用来寻找图中的community leader。
修正1:Dangalchev(2006)对上述定义做了修正,将v到其他节点t的最短距离d(v,t)修正为2^(-d(v,t)),然后对除v之外的所有节点t的该值求和,作为centrality,使之能够用到非联通图上。
修正2:Opsahl(2010)和Boldi and Vigna(2013)做了另外一个修正,使得其能用到非联通图上,原来的定义中先对最短距离求和,然后求倒数,该修正中反过来,先对到每个节点的距离求倒数,在对倒数求和,作为cnetrality。
4. Eigenvector centrality
5. PageRank及其他
图:centrality