本发明涉及一种网络连通性能的动态优化方法。
背景技术:
人类的生活和生产活动依赖于大量自然界及人造的复杂系统,对于一个给定系统,其各组件之间的联系和交互模式可以用网络表示,系统的各个组件可以抽象成网络中的顶点,组件间的联系抽象成边。
网络整体的连通性能在较大程度上体现出对载体的传输和服务能力,因此受到许多应用领域,如internet、交通网络、贸易网络等领域的广泛关注。目前对网络连通性的考量通常集中在对网络中某项指标(度、介数等)较高的节点进行蓄意攻击和对所有节点随机攻击这两种情形下节点间实际存在边和所有可能边的比例关系(参考banks等人2015年发表在ecologyletters上的综述)。
针对于网络连通性能的动态变化,目前的研究多集中在随机增加边或受到外在因素牵引产生的网络演化,以及演化后对网络整体鲁棒性的影响。例如,foti等人(j.econ.dyn.control,2013)考虑了增加边以后网络在面对随机攻击和蓄意攻击时鲁棒性的变化,而在其贸易网络中边的增加是受经济政策影响的。网络连通性能的改善较多考量边的统计特性和绝大多数节点间的连通性,且边的增加具有随机性。目前的技术缺乏主动和针对性的优化,亦缺乏增加边的优选方式。
技术实现要素:
为了解决网络连通性能的针对性优化问题,本发明结合节点间最短路径的鲁棒性来评估节点间连通性的最差情形,提供待增边的优选方式,实现网络连通性能的动态优化。
为了实现上述技术目的,本发明的技术方案是,一种网络最差连通性能的动态优化方法,包括以下步骤,
步骤一:计算网络直径并获取直径对应的节点对集合;
步骤二:根据步骤一所得到的节点对集合,统计每一节点对间的最短路径条数,得到与节点对相对应的最短路径数集合;
步骤三:根据步骤二中获取的最短路径数集合,对步骤一中所得的节点对集合进行约简,获取连通性最差情形下的节点对;依据约简后的集合中元素的个数判断是否执行优化;
步骤四:根据步骤三所得的判断结果中的执行优化情形,随机选取步骤三所得集合中的数个节点对,分别增加一条直连边,由此产生新的网络;然后重新回到步骤一,依此循环,实施动态优化。
所述的方法,所述的步骤一中计算网络直径并获取直径对应的节点对集合的步骤为:
步骤1:计算网络中任意两个节点间最短路径的长度;
dij=min{p1i→j,p2i→j,...,pni→j}
其中dij代表节点i到节点j(i<j)最短路径的长度,n为从节点i到节点j的最短路径的数目统计值,pki→j表示从节点i到节点j的第k条路径的长度值,即第k条路径经过的边的数目;{p1i→j,p2i→j,...,pni→j}为节点i到节点j的所有路径长度值的集合。
步骤2:计算网络直径;
根据步骤一中步骤1所得的两节点间最短有向路径的长度,计算网络中任意两节点间最短路径长度的最大值,即直径:
d=maxdij
其中d代表网络的直径;maxdij表示任意两节点间最短路径长度的最大值。
步骤3:获取直径对应的节点对集合;
根据步骤一中步骤2所得的直径,求直径对应的节点对集合,步骤为:
u={(i,j)|dij=d}
其中u表示直径对应的节点对集合,(i,j)表示满足条件dij=d的节点对。
所述的方法,所述的步骤二中得到与节点对相对应的最短路径数集合的步骤为:
根据步骤一中步骤3获取的节点对集合,统计每一节点对间的最短路径条数,得到与节点对相对应的最短路径数集合,步骤为:
v={mij|(i,j)∈u}
其中mij表示节点对(i,j)相对应的最短路径数集合;v表示mij的集合。
所述的方法,所述的步骤三中对节点对集合进行约简并判断是否进行优化的步骤为:
步骤1:获取连通性最差情形下的节点对;
根据步骤一中步骤3所得的节点对集合,抽取最短路径仅为1条的节点对,步骤为:
u′={(i,j)|mij=1}
其中u′表示对u约简后的节点对集,mij=1表示节点对(i,j)之间的最短路径仅为1条;在此情形下,节点对间边的最小割集为1,破坏路径上任意一个节点和边都会导致网络直径的增加,使得网络最差连通性能恶化。
步骤2:判断是否进行优化;
根据步骤三中步骤1所得的节点对集合,依据集合中元素的个数来判断是否进行优化,步骤为:
其中(card(u′)≥1)
所述的方法,所述的步骤四中执行优化的步骤为:
根据步骤三中步骤2需要执行优化的情形进行优化,步骤为:
随机选择u′中t个节点对(i,j),用一条边直连;其中,t<card(u′);此处,给与优化实施者一定的自由度来依据实际情形选定每次优化的新增边数。
本发明通过比较节点间连通的最差情形,对网络连通性能实施主动优化。与现有技术相比,边的增加更具针对性,从改善节点对间连接鲁棒性的角度改善了网络连通性能的最差情形,规避了最差情形下蓄意攻击或随机攻击某些节点所带来的影响,以防最差情形变得更糟。优化的过程中可能导致网络直径的缩小,从而亦可能达到优化最差连通性的目的。
本发明的动态优化方法不仅适用于边不含方向和权值的简单网络,同样也适用于有向网络和加权网络。有向网络中步骤一的条件改为i≠j即可。针对于加权网络,将边的权值转化为路径长度来计算即可。因此,本发明可以广泛应用于大量实际复杂系统,如internet、交通网络等网络,为光纤路由布局、新增航线、轨道等实施提供重要参考依据。
下面结合附图对本发明作进一步说明。
附图说明
图1为为本发明的流程图。
图2为本发明中的复杂网络示意图。
图3为本发明的执行优化的示意图。
具体实施方式
参见图1,图1为本发明的流程图。以下举例说明本发明的具体实施过程。
实施例1:随机网络最差连通性能的动态优化
1)获取复杂网络
本实施例中对于一个50个节点的随机复杂网络,记为dn。网络表示为dn=(v,e),其中v为节点的集合,e为节点间边的集合。v中包含的节点为{v1,v2,…,v50}。在网络中,节点v1-v9、v1-v18、v1-v20、v1-v34、v3-v6、v5-v12、v5-v16、v5-v37、v5-v47、v6-v45、v7-v6、v8-v37、v9-v29、v11-v21、v11-v24、v12-v13、v12-v15、v13-v41、v14-v18、v14-v23、v16-v21、v16-v23、v18-v30、v18-v31、v21-v9、v21-v24、v21-v35、v22-v10、v22-v21、v23-v30、v23-v32、v25-v6、v26-v11、v26-v24、v26-v47、v27-v36、v27-v45、v28-v5、v28-v20、v29-v18、v30-v37、v31-v9、v31-v34、v32-v3、v32-v6、v32-v36、v32-v41、v33-v47、v34-v7、v34-v27、v34-v32、v34-v42、v35-v13、v35-v31、v35-v47、v36-v11、v36-v28、v36-v39、v36-v48、v37-v7、v37-v12、v37-v21、v37-v24、v37-v27、v37-v33、v37-v42、v37-v43、v38-v1、v38-v2、v38-v43、v39-v31、v40-v4、v40-v5、v40-v27、v40-v30、v40-v33、v40-v49、v41-v4、v41-v46、v42-v8、v42-v32、v42-v44、v42-v45、v43-v8、v43-v9、v43-v47、v43-v48、v44-v39、v45-v38、v46-v28、v46-v33、v47-v14、v47-v34、v47-v45、v48-v42、v49-v44、v50-v3、v50-v30、v50-v43之间存在一条无向无权边,其他节点间无连接。
图2为本发明的实施例1中,依据节点之间的连接获取到的复杂网络示意图。
2)计算网络的直径及对应节点对集合
网络直径定义为网络中任意两个可及节点之间最短路径长度的最大值。首先计算网络中任意两个节点间最短路径的长度。以节点对(v1,v2)之间最短路径的长度计算为例,它们之间存在的最短路径为v1~v38~v2,其中最短的路径包含2条边,因此长度为2。依次计算其他任意两节点间最短路径的长度,然后在所有长度值中求最大值。此处求得最大值为6,即为网络的直径大小。对应的节点对集合为{(v2,v10),(v3,v10),(v4,v10),(v10,v25),(v10,v49),(v25,v29)}。
2)统计长度为直径的最短路径条数,获取最短路径数集合
先求节点对(v2,v10)间最短路径的条数,从节点v2沿着边行走,限定行走边数为6,走到节点v10,可得到3条最短路径。依次求得节点对(v3,v10),(v4,v10),(v10,v25),(v10,v49),(v25,v29)间最短路径的条数,分别为6条、6条、1条、6条、20条。获取的最短路径数集合为{6,6,1,6,20}。
3)约简节点对集合并判断集合中元素
抽取最短路径数仅为1的节点对,集合{(v2,v10),(v3,v10),(v4,v10),(v10,v25),(v10,v49),(v25,v29)}被约简为{(v10,v25)}。判断集合中元素的个数,此时超过1个,因此执行下一步的优化。
4)随机选取集合中的数个节点对,新建直连边
此处,约简后的集合中只剩一个元素,故提取1个节点对,即(v10,v25),对网络新增一条无向无权边v10-v25,形成一个新的网络。
图3为本发明的实施例1中执行优化的示意图。
5)新一轮优化
计算新网络的直径及对应节点对,求得直径为6,对应节点对集合为{(v10,v49)}。获取的最短路径数集合为{9}。抽取最短路径数仅为1的节点对,得到一个空集合。判断集合中元素的个数,小于1个,因此优化结束。
以上是对网络最差性能动态优化的一个例子分析。