一种模块化结构网络的介数计算方法

文档序号:10489204阅读:1000来源:国知局
一种模块化结构网络的介数计算方法
【专利摘要】本发明公开了一种模块化结构网络的介数计算方法,包括以下步骤:步骤1:标注网络模块间的边和网关节点;步骤2:搜索并保存每个模块内的最短路径,传统方法计算模块内的节点及边介数并保存数据,标注每个模块内网关节点间的最短路径经过的节点及边;步骤3:组件中间层子网的ISN、搜索并保存中间层子网中网关节点间的最短路径;步骤4:以各模块及中间层子网已计算和保存的数据,计算来自不同模块节点间的介数。简化了介数的计算,提高了介数计算效率,且介数计算准确。
【专利说明】
一种模块化结构网络的介数计算方法
技术领域
[0001] 本发明涉及网络分析中的节点和边介数的计算,特别是模块化结构网络的介数计 算方法。
【背景技术】
[0002] 介数(Betweenness)包括点介数和边介数,用于测量图谱中节点(或边)在最短路 径中的重要性,被定义为网络中所有最短路径中经过该节点(或边)的路径的数目占最短路 径总数的比例,是分析网络的一种必备工具。其应用包括分析世界航空网络、社会网络、蛋 白质网络、通信网络,评估电网脆弱性,及增强恶意攻击下电网鲁棒性等。
[0003] 自1977年,弗里曼提出介数的概念(见文献[l]L.C.Freeman.A set of measures of centrality based on betweenness · Sociometry ,40( I): 35-41,1977 ·即弗里曼· 一套 基于介数的中心测量.《计量社会学》,40(I) :35-41,1977.)以来,不断有研究者提出介数计 算方法。布兰德斯采用节点依存对提出一种针对大规模网络的更快速的介数算法(见文献 [2]U.Brandes.A faster algorithm for betweenness centrality.Journal of Mathematical Sociology,25(2): 163-177,2001 ·即,布兰德斯·一种更快速的介数中心算 法.《数理社会学》,25(2): 163-177,2001),纽曼采用相似的迭代进程提出了一种快速算法, 并将其应用于分析科学合作网(见文献[3]M.E.J.Newman. Scientific collaboration.II. shortest path,weighted networks ,and centrality .Physical Review E,64(I): 016132,2001.即纽曼.科学合作网络.II.最短路径,权重网络及中心.《物 理评论E》,64(l) :016132,2001)。如网络流介数算法(见文献[4]C.Freeman,S.Borgatti, and D.White. Centrality in valued graphs:A measure of betweenness based on network flow. Social Networks ,13(2):141-154,1991.即,弗里曼,博尔加蒂,怀特·价值 图中心:一种基于网络流的介数测量方法.《社会网络》,13(2): 141-154,1991.)、随机行走 介数算法(见文献[5]M.E.J. Newman. A measure of betweenness centrality based on random walks · Social Networks,27( I): 39-54,2005 ·即,纽曼· 一种基于随机行走的介数 中心测量方法.《社会网络》27(1) :39-54,2005.)等一些变种的介数算法,都可以依据布兰 德斯算法做小调整进行计算介数(见文献[6]U.Brandes.On variants of shortest-path betweenness centrality and their generic computation.Social Networks,30(2): 136-145,2008. 即,布兰德斯.最短路径介数中心变异及它们的通用计算.《社会网络》,30 (2) :136-145,2008.)。然而,上述所有传统的介数计算算法都基于网络图中的全局结构信 息计算每个节点间的最短路径及介数,计算复杂度大;特别是针对大规模网(如电力网络、 全球航空网络、Internet、及大型的在线社会网络等)的介数计算,花费巨大。事实上,已知 的经典的最好最快的布兰德斯介数算法,运行时间为〇(匪),其中N、M分别为网络的节点和 边的总数目。
[0004]现实的大多数网络(如电力网络、通信网络、社会网络、航空网络及生物网络),都 具有模块结构。模块也可称为社区、簇或群体,被典型地称为具有很多节点的子网,在这些 子网内部节点连接紧密,而子网间连接稀疏。强连接(模块内部边)几乎不在其它不同社区 节点间的最短路径上,而弱连接(模块间的边)连接各社区并位于更多的路径上。对于这些 具有模块化结构的网络,使得利用其模块化结构的局部信息来简化网络介数的计算成为一 种必要。

【发明内容】

[0005] 有鉴于此,为克服已有网络介数的计算需要网络全局结构信息,复杂度大的不足, 本发明提出一种针对模块化网络的仅需模块结构局部信息的、计算效率更高的介数计算方 法。
[0006] 本发明通过以下技术手段解决上述问题:
[0007] 一种模块化结构网络的介数计算方法,包括以下步骤:
[0008] 步骤1:网络模块间的边和网关节点的标注:
[0009] 对已知模块化结构的网络,标注每条连接不同模块的边,并标注每条连接不同模 块的边两端的节点为网关节点;如果网络的模块化结构事先未知,使用现有网络模块结构 探测算法探测网络的模块化结构;
[0010] 步骤2:每个模块内的最短路径搜索、介数计算、数据保存及节点标注:
[0011] 以传统介数算法搜索每个模块内节点的最短路径并计算每个模块内节点及边介 数,保存以网关节点为源节点的数据集:前驱表Ps(v)、从源节点开始的路径长度dG s(v)、从 源节点开始到节点V的最短路数〇s(v)、及介数依存度Ss(V),标注来自不同模块的网关节点 间最短路径经过的节点和边;
[0012] 步骤3:中间层子网的组建、路径搜索及数据保存:
[0013] 首先以步骤1中标注的网络模块间的边和网关节点和步骤2中标注的来自不同模 块的网关节点间最短路径经过的节点和边组建中间层子网,然后搜索中间层子网的来自不 同模块的网关节点间的最短路径,并保存以网关节点为源节点的数据集:前驱表Ps(V)、从 源节点开始的路径长度dGs(v)、从源节点开始到节点V的最短路数〇s(v);
[0014] 步骤4:来自不同模块的节点间的介数计算:
[0015] 以步骤2和步骤3中保存的各模块及中间层子网数据搜索来自不同模块内的节点 间的最短路径,并计算该路径经过的节点和边的介数,当所有节点间的最短路径搜索及所 有最短路径上的节点和边介数计算累加完,结束。
[0016] 进一步地,步骤4的具体过程如下:
[0017] 分解计算最短路径和所有最短路径上的节点和边的介数累加量:来自任意两个不 同模块Ca、Cb的任意两个节点s、t间的最短路径长度dG(s,t)、所有最短路径上的节点V和边 eu, V的介数累加量Λ VB (V),Δ EB (eu, V),可分解在Ca、I SN、Cb三个模块内求解:
[0018] dG(s,t) = {dG(s,ga,i)+dG(ga,i,gb,j)+dG(gb,j,t)}min (1)
[0019]其中,SlgaJECwga, i,gb,jE ISN,gb,j,teCb,ga,i、gb,j 分别为模块 Ca、Cb的网关节 点,i = l,2,…,n、j = l,2,…,m分别为模块Ca、Cb中的网关节点编号;
[0020]当节点V和边eu,v位于模块Ca时,这些节点和边的介数累加指数Δ VB(V),Δ EB (eu,v),分别为:
[0021] (4)
[0022] (5)
[0023] 其中,〇st、%a,i' ?私,贱/、分别为网络中从节点s到1:、8到8£1,:1、8£1,:1到81^、区1^ 到t的最短路径的总条数,为从节点s到节点ga>1的最短路径通过节点V的条数占总 的从节点S到节点ga,i的最短路径数的比例,σ\(/α.?( β??,ι;)为最短从节点S到节点ga, i的最短路 径通过边%¥的条数占总的从节点S到节点ga>1的最短路径数的比例;类似地,当节点或边位 于ISN和Cb内时,相应的节点和边的介数累加指数AVB(V),AEB(eu,v)也可由相应的等式 (4)和(5)得到;当所有节点间的最短路径搜索及所有最短路径上的节点和边介数计算累加 完,结束。
[0024]本发明提出了一种构建中间层子网(ISN)的方法,同时,本发明利用网络的模块化 结构和中间层子网(ISN),提出了一种分层分模块搜索网络最短路径并简化介数计算的方 法,简化了介数的计算,提高了介数计算效率,且介数计算准确。
【附图说明】
[0025] 图1是模块化结构网络的介数计算方法框图;
[0026] 图2是中间层子网的组建关系示意图;
[0027]图3是二部图匹配示意图;
[0028]图4是来自不同模块的节点间的路径计算及节点和边介数的累加框图;
[0029]图5是计算后的节点介数示意图;
[0030]图6是计算后的边介数示意图;
[0031]图7是计算效率与网络模块数据的关系示意图。
【具体实施方式】
[0032] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合附图和具体 的实施例对本发明的技术方案进行详细说明。
[0033] 如图1所示,模块化结构网络的介数计算方法步骤如下:
[0034] 步骤1:网络模块间的边和网关节点的标注,具体过程如下:
[0035] 对已知模块化结构的网络G,标注每条连接不同模块的边,并标注每条连接不同模 块的边两端的节点为网关节点;如果网络的模块化结构事先未知,使用现有网络模块结构 探测算法探测网络的模块化结构;
[0036] 步骤2:每个模块内的最短路径搜索、介数计算、数据保存及节点标注,具体过程如 下:
[0037] 以传统介数算法(如见文献[2 ] U · Br ande s · A fas t er a I gor i thm for betweenness centrality.Journal of Mathematical Sociology,25(2):163-177,2001. 艮P,布兰德斯.一种更快速的介数中心算法.《数理社会学》,25(2): 163-177,2001)搜索每个 模块内节点的最短路径并计算每个模块内节点及边介数,保存以网关节点为源节点的数据 集:前驱表Ps(V)、从源节点开始的路径长度dGs(v)、从源节点开始到节点v的最短路数 〇s (V)、及介数依存度Ss(V),标注来自不同模块的网关节点间最短路径经过的节点和边;
[0038] 步骤3:中间层子网(ISN Intermediary Subnet)的组建、路径搜索及数据保存,具 体过程如下:
[0039] 如图2所示,首先以步骤1中标注的网络模块间的边和网关节点和步骤2中标注的 来自不同模块的网关节点间最短路径经过的节点和边组建中间层子网。然后搜索中间层子 网的来自不同模块的网关节点间的最短路径,并保存以网关节点为源节点的数据集:前驱 表P s(V)、从源节点开始的路径长度dGs(V)、从源节点开始到节点V的最短路数〇s( v);
[0040] 步骤4:来自不同模块的节点间的介数计算,具体过程如下:
[0041] 来自任意两个不同模块Ca、Cb的任意两个节点s、t间的最短路径长度可分为以下三 部分求解:
[0042] dG(s,t) = {dG(s,ga,i)+dG(ga,i,gb,j)+dG(gb,j,t)}min (1)
[0043] 其中,dG(s,t)为节点s和t间最短路径长度,ClG(Sju)为节点s和ga>1间最短路径 长度,dG(ga,i,gb, j)为节点ga,i和gb, j间最短路径长度,dG(ga,i,gb, j)为节点gb, j和t间最短路 径长度,ga, i、gb, j分别为模块Ca、Cb的网关节点,i = 1,2,…,η、j = 1,2,…,m分别为模块Ca、Cb 中的网关节点编号。
[0044] 如图3所示,将源节点s到目的节点t的最短路径问题可转化为一个无向的由二部 (GVa,GVb)组成的二部图匹配问题,并有任意一个匹配均满足等式(1)。假设这个二部图GV的 匹配集S包含有X个元素,很显然,X的值位于0与nm之间,其中nm是完全匹配时的匹配数,如 果从源节点s到目的节点t的最短路径存在,则X的值远大于0。假设X k=Ig^gbj是匹配集 S中的任意一个匹配,从源节点s到目的节点t的并且经过Xk的最短路径数O st(Xk)可获得如 下:
[0045] aSt(xIi) = aStiiJuJidb,/) = asga,iaiia,it^9h,jJ = σχ?α^σ?α^.βΒ,;σ3?,??' ^
[0046] 其中〃5*^:_、,他 j·、分别为网络中从节点 S到 t、S到 ga,i、ga,i至 ljgb,j、gb,j到 t 的最短路径的总条数,%Ω,? J·)从节点ga, i到节点t的最短路径通过节点gb, j的条数占总的
从节点S到节点ga>1的最短路径数的比例。这样,从源节点S到目的节点t的最短路径总条数 可得:
[0047] (3)
[0048] 相应地,对那些经过从源节点s到目的节点t且经过的任性匹配的Xk的最短路径的 节点和边来说,它们的介数计算可划分为三个部分:第一部分是从S到ga, i,第二部分为ga, i 到gb,j,第三部分gb,j到t。节点V和边eu,v位于位于第一部分时,这些节点和边的介数累加指 数 AVB(V),AEB(eu,v),分别为:
[0049] (4)
[0050] (5)
[0051] 类似地,当节点或边位于第二部分和第三部分时,相应的节点和边的介数累加指 数ΔVB(V),ΔEB(eu,v)也可由相应的等式(4)和(5)得到。
[0052] 特别地,网关节点的累加的介数中心指数Δ VB(ga, i)和Δ VB(gb, j),从等式⑶和 (4)可推出如下:
[0053]
(6)
[0054] 当遍历完整个匹配集后,这个阶段的那些位于从源节点s到目的节点t的最短路径 上的节点和边,其介数累加也完成了。
[0055]终止条件:当所有节点间的最短路径搜索及所有最短路径上的节点和边介数计算 累加完,结束。
[0056] 以中国河南省220KV以上电力系统网络为例,进一步说明本发明。该网络由310各 节点和932条边组成,节点代表发电站或传输站点,边代表这些节点间的联络线。
[0057] 图5和图6分别为该网络中每个点和边介数计算结果,本发明的模块化网络的介数 计算方法与传统计算方法的计算结果是一致的。
[0058] 如图7所示,在该网络规模(节点及边的数目)不变的情况下,随着划分的电力模块 数目增大,本发明的模块化网络的介数计算方法的计算时间越来越小;当电力模块数达到 最大的数目9时,传统的方法的计算时间为1031ms,本发明的模块化网络的介数计算方法的 计算时间为497ms,计算效率提高了 51.8 %。
[0059] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【主权项】
1. 一种模块化结构网络的介数计算方法,其特征在于,包括W下步骤: 步骤1:网络模块间的边和网关节点的标注: 对已知模块化结构的网络,标注每条连接不同模块的边,并标注每条连接不同模块的 边两端的节点为网关节点;如果网络的模块化结构事先未知,使用现有网络模块结构探测 算法探测网络的模块化结构; 步骤2:每个模块内的最短路径捜索、介数计算、数据保存及节点标注: W传统介数算法捜索每个模块内节点的最短路径并计算每个模块内节点及边介数,保 存W网关节点为源节点的数据集:前驱表Ps(v)、从源节点开始的路径长度dGs(V)、从源节点 开始到节点V的最短路数〇s(V)、及介数依存度Ss(V),标注来自不同模块的网关节点间最短 路径经过的节点和边; 步骤3:中间层子网的组建、路径捜索及数据保存: 首先W步骤1中标注的网络模块间的边和网关节点和步骤2中标注的来自不同模块的 网关节点间最短路径经过的节点和边组建中间层子网,然后捜索中间层子网的来自不同模 块的网关节点间的最短路径,并保存W网关节点为源节点的数据集:前驱表Ps(v)、从源节 点开始的路径长度dGs(v)、从源节点开始到节点V的最短路数〇s(v); 步骤4:来自不同模块的节点间的介数计算: W步骤2和步骤3中保存的各模块及中间层子网数据捜索来自不同模块内的节点间的 最短路径,并计算该路径经过的节点和边的介数,当所有节点间的最短路径捜索及所有最 短路径上的节点和边介数计算累加完,结束。2. 根据权利要求1所述的模块化结构网络的介数计算方法,其特征在于,步骤4的具体 过程如下: 分解计算最短路径和所有最短路径上的节点和边的介数累加量:来自任意两个不同模 块Ca、Cb的任意两个节点S、t间的最短路径长度dG (S,t)、所有最短路径上的节点V和边eu, V的 介数累加量A VB(V),Δ邸(eu, V),可分解在Ca、ISN、CbS个模块内求解: dG(s,t) = {dG(s,ga,i)+dG(ga,i,gb,j)+dG(gb,j,t)}min (1) 其中,S,ga,iECa,ga,i,gb,jEISN,gbJ,tECb,ga,i、gb,j分别为模块Ca、Cb的网关节点,i = 1,2,…,n、j = l,2,…,m分别为模块Ca、Cb中的网关节点编号; 当节点V和边eu,v位于模块Ca时,运些节点和边的介数累加指数Δ VB(V),Δ邸(eu,v),分 别为:其中,〇st、GWa.i、%1,觀,尸口化'分别为网络中从节点S到t、S到ga,i、ga,i菌Jgb,j、gbj菌Jt的 最短路径的总条数,句。,,〇)为从节点巧Ij节点ga,i的最短路径通过节点V的条数占总的从节 点S到节点ga,i的最短路径数的比例,为最短从节点S到节点ga,i的最短路径通过 边eu,v的条数占总的从节点S到节点ga,i的最短路径数的比例;类似地,当节点或边位于ISN 和Cb内时,相应的节点和边的介数累加指数AVB(v),ΔΕΒ(θυ,ν)也可由相应的等式(4)和 (5)得到;当所有节点间的最短路径捜索及所有最短路径上的节点和边介数计算累加完,结 束。
【文档编号】G06F19/00GK105844080SQ201610148436
【公开日】2016年8月10日
【申请日】2016年3月16日
【发明人】李稳国, 李勇, 谭益, 曹家, 曹一家, 张志鹏
【申请人】湖南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1