全文HTML
--> --> -->假设网络的目标状态s(t)满足:
接下来, 提出本文要研究的问题, 即优化(2)式左端项. 当网络的受控节点数
定理1[1] 假设网络拓扑结构用图G表示. 图G的节点集为
其次, 假设通过初步筛选之后剩余了n个节点, 在这n个节点中满足不等式(5)的节点组合, 理论上有
牵制控制多个节点算法最优
需要说明的是, 筛选条件(11)式计算简单, 仅需要知道节点的度即可. 而筛选条件(10)式计算量相对大些, 还需要计算受控节点集的内部连边数, 比筛选条件(11)式准确程度更高. 所以在实际仿真中, 可以结合两者实现计算复杂度和精准程度上的平衡, 也可以只采用其中的一个式子. 基于以上实现过程, 现将选取多个牵制节点的算法列出如下.
算法1
步骤1 选择度排名前l的节点当作初始控制节点, 然后计算其特征值
步骤2 将
步骤3 递归计算剩余节点中的满足条件(11)的节点组合;
步骤4 在第3步的基础上, 计算剩余节点中的满足条件(10)的节点组合;
步骤5 逐个计算剩余节点组合对应的删后矩阵的
4.1.算法初步应用和最优控制节点集的讨论
例1 考虑参数设置为N = 1000, q = 5的一个BA无标度网络, 该网络以5个节点的环状图作为初始网络, 每次增加一个新的节点, 且依照度优先连接策略连接到网络中已有的q个节点上. 生成的BA网络见图1. 根据本文的算法, 将受控节点数l从2增加到4, 来观察最优受控节点集的情况. 节点的度排序情况见表1.图 1 生成的BA网络. 不同颜色代表节点的度的大小, 红色表示度大的节点, 蓝色表示度小的节点
Figure1. A generated BA network. Different colors represent different node-degrees in the network; nodes in red have relative large degrees, and nodes in blue have small degrees.
节点的度 | 128 | 122 | 103 | 98 | 87 | 86 | 75 | 63 | 60 | 58 | 53 | 51 | 51 | 49 | 47 | 43 | 42 |
节点编号 | 2 | 11 | 3 | 18 | 1 | 9 | 4 | 8 | 14 | 31 | 21 | 17 | 10 | 63 | 34 | 20 | 13 |
表1节点度排序及节点编号(BA网络, N = 1000, q = 5)
Table1.Degree ordering and node numbering in a BA network with N = 1000 and q = 5.
牵制控制两个节点, 即l = 2的情况. 如果枚举法需计算499500次998阶矩阵的最小特征值. 根据算法1, 首先选择节点集合{2, 11}控节点集, 计算此时的
牵制控制三个节点, 即l = 3情况. 如果采用枚举法需计算166167000次997阶矩阵的最小特征值. 根据算法1, 首先选择节点集合{2, 11, 3}作为初始的受控节点集合, 计算此时的
牵制控制四个节点, 即l=4情况. 根据算法1, 首先选择节点集合{2, 11, 3, 18}作为初始的受控制节点集, 计算此时的
从上面的实验结果可以看出, 当受控节点数由少变多时, 比如从控制3个节点增加到控制4个节点时, 最优受控节点组合分别是{2, 3, 18}、{2, 11, 18, 9}, 优化的受控节点集合不是在控制3个节点的优化组合上加上一个节点, 而是在原有的基础上有所删减、有所变化的节点集合. 这就说明, 当受控节点数目l增加时, 最优受控节点集不能通过贪心选点策略得出.
2
4.2.算法1减少优化$\lambda_{1}\left( L_{N-l}\right)$ 的计算量的有效性分析
为了客观评价本文算法减少计算量的效果, 这里给出两个指标:首次筛选剩余节点n(算法1第二步), 度筛选后剩余节点组合R(算法1第三步). 这两个指标能体现算法1在筛选中的效果. 这两个指标的计算结果均为10次重复实验取平均.1) 首次筛选剩余节点数n相关仿真结果及分析
用n表示首次筛选(算法1第二步)后剩余的节点数, 实验结果在表2中列出. n是一个重要的指标, 它很大程度决定了本文算法的计算复杂度, 因为
网络参数 | l = 2 | l = 3 | l = 4 | l = 5 | l = 6 |
NW: N = 1000, P = 0.05 | 3.9 | 11.9 | 30.3 | 51.0 | 89.1 |
NW: N = 1000, P = 0.025 | 11.3 | 27.9 | 53.4 | 132.9 | 216.1 |
BA: N = 1000, q = 10 | 5.7 | 13.2 | 18.6 | 22.1 | 38.4 |
BA: N = 1000, q = 8 | 6.7 | 14.2 | 22.5 | 51.2 | 176.3 |
BA: N = 1000, q = 5 | 7.1 | 15.3 | 67.1 | 177.5 | 1000 |
BA: N = 1000, q = 3 | 10.2 | 55.7 | 1000.0 | 1000.0 | 1000.0 |
表2通过步骤2筛选后的剩余节点数n
Table2.Number of remaining nodes n after Step 2 in Algorithm 1.
2) 剩余节点的组合数量R相关仿真结果及分析
用R表示通过算法1第三步筛选后的节点组合数量. 指标R是
网络参数 | l = 2 | l = 3 | l = 4 | l = 5 | l = 6 |
NW: N = 1000, P = 0.05 | 5.1 | 33.3 | 216.1 | 1136.5 | 4245.8 |
NW: N = 1000, P = 0.025 | 18.2 | 215.6 | 1009.5 | 1.1 × 104 | 4.7 × 104 |
BA: N = 1000, q = 10 | 3.3 | 11.5 | 34.3 | 163.1 | 1801.6 |
BA: N = 1000, q = 8 | 6.3 | 16.3 | 83.8 | 233.5 | 2583.7 |
BA: N = 1000, q = 5 | 21.6 | 69.5 | 306.5 | 2203.8 | 2.4 × 104 |
BA: N = 1000, q = 3 | 25.3 | 307.3 | 4376.2 | 2.2 × 105 | 4.5 × 106 |
表3通过步骤3筛选后剩余节点的组合数量R
Table3.Number of combinations R of remaining nodes after Step 3 in Algorithm 1.
2
4.3.本文算法与其他选点策略的对比
本节将对当前常用牵制控制选点策略与本文算法运用在实际网络中, 进行算法选点效果的对比. 首先介绍当前常用选点策略. 1)度选点算法. 依据节点度排序来选择受控节点, 该算法无需额外计算量, 故通常在控制多个节点时, 采用度选点算法比较方便. 2) BC (betweenness centrality[14])选点策略. 该策略基于介数中心度选点, 旨在找出位于网络的重要路径上的节点. 3) K-shell算法[22], 选取K-core值大的节点. 4)最近提出的基于ESI指标的算法[19]. 5)本文算法, 筛选计算出最优将以上5种策略运用在实际网络Dolphin网络及Email网络[23]中, 不同策略所得的选点及相应的
受控 节点数 | 度算法 | BC算法 | K-shell算法 | ESI算法 | 本文算法 |
l = 2 | (15, 46) ${\lambda _1} = 0.1001$ | (37, 2) ${\lambda _1} = 0.1376$ | (19, 30) ${\lambda _1} = 0.0828$ | (15, 38) ${\lambda _1} = 0.0995$ | (15, 18) ${\lambda _1} = 0.2549$ |
l = 3 | (15, 46, 38) ${\lambda _1} = 0.1053$ | (37, 2, 41) ${\lambda _1} = 0.2344$ | (19, 30, 46) ${\lambda _1} = 0.0935$ | (15, 38, 46) ${\lambda _1} = 0.1053$ | (15, 14, 46) ${\lambda _1} = 0.3664$ |
l = 4 | (15, 46, 38, 52) ${\lambda _1} = 0.1064$ | (37, 2, 41, 38) ${\lambda _1} = 0.2511$ | (19, 30, 46, 52) ${\lambda _1} = 0.0950$ | (15, 38, 46, 51) ${\lambda _1} = 0.1069$ | (62, 14, 46, 2) ${\lambda _1} = 0.4662$ |
l = 5 | (15, 46, 38, 52, 34) ${\lambda _1} = 0.1072$ | (37, 2, 41, 38, 8) ${\lambda _1} = 0.2710$ | (19, 30, 46, 52, 22) ${\lambda _1} = 0.0960$ | (15, 38, 46, 51, 39) ${\lambda _1} = 0.1078$ | (15, 38, 52, 18, 14) ${\lambda _1} = 0.5399$ |
表4不同算法在Dolphin网络中的选点及
Table4.Node-selections and the corresponding
受控 节点数 | 度算法 | BC算法 | K-shell算法 | ESI算法 | 本文算法 |
l = 2 | (105, 333) ${\lambda _1} = 0.0881$ | (333, 105) ${\lambda _1} = 0.0881$ | (299, 389) ${\lambda _1} = 0.0383$ | (105, 42) ${\lambda _1} = 0.0879$ | (105, 23) ${\lambda _1} = 0.0894$ |
l = 3 | (105, 333, 16) ${\lambda _1} = 0.1169$ | (333, 105, 23) ${\lambda _1} = 0.1243$ | (299, 389, 424) ${\lambda _1} = 0.0392$ | (105, 42, 333) ${\lambda _1} = 0.1202$ | (105, 333, 23) ${\lambda _1} = 0.1243$ |
l = 4 | (105, 333, 16, 23)${\lambda _1} = 0.1518$ | (333, 105, 23, 578) ${\lambda _1} = 0.1490$ | (299, 389, 424, 552) ${\lambda _1} = 0.0494$ | (105, 42, 333, 16) ${\lambda _1} = 0.1481$ | (105, 333, 23, 42) ${\lambda _1} = 0.1535$ |
l = 5 | (105, 333, 16, 23, 42) ${\lambda _1} = 0.1801$ | (333, 105, 23, 578, 76) ${\lambda _1} = 0.1774$ | (299, 389, 424, 552, 571) ${\lambda _1} = 0.0520$ | (105, 42, 333, 16, 76) ${\lambda _1} = 0.1770$ | (105, 333, 23, 42, 41) ${\lambda _1} = 0.1843$ |
表5不同算法在Email网络中的选点及
Table5.Node-selections and the corresponding
图 2 在4种不同算法下Dolphin网络的选点情况 (a)度算法选点情况; (b) BC算法选点情况; (c) ESI算法选点情况; (d)本文算法选点情况
Figure2. Visualization of nodes selections on the Dolphin network underfour strategies (
图 3 在4种不同算法下Email网络的选点情况 (a) 度算法选点情况; (b) BC算法选点情况; (c) ESI算法选点情况; (d) 本文算法选点情况
Figure3. Visualization of nodes selections on the Email network under four strategies: (a) Using the degree-based pinning scheme; (b) using the BC-based pinning scheme; (c) using the ESI-based pinning scheme; (d) using our proposed algorithm.
在上述仿真中可见, 本文算法相较于其他算法, 能计算出控制节点数较少情况下(l ≤ 6)的最优控制节点集, 一定程度上填补了准确找出最优受控节点算法的空缺. 但本文算法针对控制节点较多情况, 尽管能够一定程度上缩减计算量, 但剩余计算量仍然较大, 难以直接计算.