system: [SYSTEM]

user: 3. 网络拓扑控制算法 无线传感器局域网络是自组形成的，每个微型传感器通过定时发射无线信号探知邻近的传感器，建立邻接关系。传感器之间的拓扑形式有多种：扁平(flat)拓扑结构 [ 4 ] [ 24 ] [ 29 ] [ 31 ] [ 32 ] ，层次型结构 [ 7 ] - [ 22 ] [ 30 ] [ 35 ] ，块状结构。扁平拓扑结构中，除了网络汇聚结点外其余的每个结点同属一个等级，彼此自由地依据地理位置及其发射功率的建立邻接关系。层次型结构中，除了网络汇聚结点外其余的结点之间有隶属关系，可能属于不同的层次，结点只将数据传送给自己的上层结点，同一个结点的所在层次可能动态变化。块状结构中，传感器按它们所处的地理位置，分成不同的区域(类似于有线网络中的自治系统)，相邻区域的传感器之间的信息传递类似于有线网络中选择的BGP (Border Gateway Protocol)发言人(BGP发言人往往就是BGP边界路由器)，隶属于扁平拓扑结构，参见图1，图2。 3.1. 扁平拓扑结构 在非层次型拓扑结构的无线传感器局域网中，每个结点处于同等的地位，针对不同的待优化特性，数据传送时选取路由的方式不同。 图1. 单跳与多跳网络 图2. 层次与扁平结构 考虑到传感器网络中传感器结点的能量一直处于动态变化之中，以网络寿命极大化、能耗极小化为准绳，蔡钊等 [ 4 ] 用博弈论的思想提出了一种WSN拓扑控制算法。构建了势博弈的拓扑控制PGTC (Potential Game Topology Control)模型(N， P， u(x))，其中结点域N、策略域P、效用函数u(x)。定义最短潜在寿命、结点度值各为主要与次要效用函数，并且以最短潜在寿命为博弈的势函数。在策略域P中，主要与次要效用函数协作下设计出能效最佳的算法。理论分析得出纳什均衡点为势函数取得最大值的点，也是优化问题的最优解，即帕累托最优解。传感器的控制过程与转发过程具有可分离性，让传感器结点具有一定的计算功能(让簇头携带其中的调度模块，进行路径的分配)，宛考等 [ 6 ] 对于软件定义网络系统中的调度算法设计了新的算法，使得调度算法与网络实体的运行状态的信息收集和评价体系的权值选择相分离，达到网络中过程控制与数据收集、整理、融合相分离。传感器结点执行传输数据的之前，利用其控制过程，将结点的状态信息添加到待转发的数据中，对数据流进行融合、分类，传感器结点依据网络中的状态信息参数选择最短路径进行数据转发，达到减少能耗的目标。Miguel Sepulcre等 [ 24 ] 针对无线传感器网络中各结点处于同一层次的情况进行研究。设计多路径路由协议，采用具有自适用的、随机线性的路径编码的方法选择最佳路由。每个结点的窗口大小为某固定值，为确保服务质量，任何一对结点之间均有两条以上的路径信息。杨訸等 [ 29 ] 讨论了WSNs结点调度算法，从感知覆盖与通信覆盖两者权衡考虑，尽量减少冗余的传感器结点。设计了在蜂窝式拓扑结构的网络中，添加桥梁“结点”去填补“空洞”现象，使得整个网络达到全“通信覆盖”和全“感知覆盖”。信俊昌等 [ 31 ] 依据过滤思想设计了一种滑动窗口轮廓的查询(数据丢弃原则，丢弃数据减少传输的数据量，达到延长生存时间)算法，负载较高且剩余能量较低的结点构成轮廓。轮廓中的结点是影响网络生命活力的关键因此，算法持续地维护滑动窗口的轮廓查询，有选择地从轮廓中选择支配结点得到支配集和覆盖集，建立完整的网络拓扑结构。滑动窗口中存储一定数量的待传递的数据，这些数据经过滤后传送，分布式地、自适用地选择轮廓中的结点及传输路径，进而执行结点的存储转发功能。彭颖等 [ 34 ] 分析了移动网络中基于最优停止理论的数据传输能耗优化策略，考虑了单信道中数据生成速率与传输延时已知的情况下，信道质量随着时间变化。信道质量的变化依据信道增益函数周期性服从某种规律(如Rayleigh分布、Rician分布)，在给定数据传输率情况下，以数据传输能耗最小为目标考虑了数据的发送与停止的时间，选择最佳的发送与停止时间。 3.2. 层次型结构 在层次型网络拓扑结构的无线传感器局域网中，隶属不同的层次的结点有：汇聚结点(基站)、簇头结点、普通结点等，不同的簇区域将整个网络划分成若干部分，每个簇中的数据传给汇聚结点之前，由簇头收集。 在静态的传感器网络(即：传感器一旦布置好，就不再发生位置改变)中，簇头结点百分比的期望值确定，首先通过自适用算法选择簇头，然后网络中其余的结点自适用地加入某一个簇区域，形成非簇头结点、簇头结点、汇聚结点这样三个层次的拓扑结构。W.R. Heinzelman [ 9 ] 等针对第一通信模型，提出了基于簇分层的LEACH (Low energy adaptive clustering hierarchy)算法。算法分成二步完成：第一步建簇阶段，第二步稳定阶段，数据在网络中依次进行存储与转发；之后重复第一、第二步的动作，直至网络生命终结。建簇阶段：簇头选择与簇成员确定过程。簇头的生存时间动态变化，每个结点独立地、分布式地参与竞选簇头。竞选簇头时，给结点n (n代表任意一个结点)定义一个阈值T(n)，同时为结点n分配一个(0， 1)范围的随机数p；若p小于T(n)，则结点n成为簇头；被选上为簇头的结点n将自己为簇头的信息广播通知其他结点，同时重置T(n) = 0，在后续选择中结点n不再被选为簇头。簇成员确定过程：非簇头结点根据信号的强弱选择一个簇头，并加入该簇。重复这种方式，直到有足够的簇头，所有簇区域能够将整个无线传感器网络覆盖为止。 T(n)定义为簇头结点百分比的期望值P、当前轮次、非簇头结点的百分比的函数，具体如下： T ( n ) = { P 1 − P × mod ( r ， 1 / P ) ， n ∈ G 0 ， O t h e r w i s e (1) 其中，r是当前轮次，G是在的1/P轮中非簇头结点的集合。若每轮产生一个簇头结点，mod (r， 1/P)则代表在第r次重复中成为簇头的结点数目，G是在最后的1/P轮中非簇头结点的集合。 结点n的初始能量为E n _max 、剩余能量(也称为当前能量)为E n _current 。E n _current 的值与结点n选为簇头呈 正相关，故在T(n)的计算中加入E n _current 的影响因子 E n _ c u r r e n t E n _ max ；经过多次选择簇头后，E n _current 变得很小时 重置T(n)，认为结点的剩余能量多或未成为簇头的结点成为簇头的可能性更大，T(n)的计算增加影响因子 E n _ c u r r e n t E n _ max 、 ( r s d i v 1 P ) ( 1 − E n _ c u r r e n t E n _ max ) [ 12 ] 。 调整了T(n)为： T ( n ) = { P 1 − P × mod ( r ， 1 / P ) ⋅ E n _ c u r r e n t E n _ max ， n ∈ G 0 ， O t h e r w i s e (2) 或 T ( n ) = { P 1 − P × mod ( r ， 1 / P ) • [ E n _ c u r r e n t E n _ max + ( r s d i v 1 P ) ( 1 − E n _ c u r r e n t E n _ max ) ] ， n ∈ G 0 ， O t h e r w i s e (3) 其中：G为在P轮未成为簇头的结点集合，r s 为结点n没有成为簇头的连续循环次数，当r s 接近于或等 于 1 P 时，将重置阈值为初始阈值。当节点n成为簇头，将r s 重置为0。 LEACH算法确实比非层次结构的平面多跳路由算法更优，仿真实验表明，它延长了的网络生命周期 [ 9 ] 。LEACH算法只考虑了各传感器具有相同能量和性能的网络，没有考虑微型传感器能量有差异的情况；LEACH算法选取簇头结点具有随机性，导致簇头分布在网络中可能不均匀；LEACH算法是基于单跳的路由算法，即簇头直接将信息传递给汇聚结点，没有考虑通信的代价。针对这些情况，研究工作者改进了LEACH算法，改进的LEACH的算法有C-LEACH (Centralized LEACH) [ 12 ] 、 MODLEACH (Modified LEACH) [ 13 ] 、Stable Election LEACH [ 14 ] 、MH-LEACH (Multi hop LEACH) [ 15 ] 、Two Level-LEACH (Two levels LEACH) [ 16 ] [ 17 ] [ 18 ] 、V-LEACH (Vice-LEACH) [ 19 ] [ 20 ] [ 21 ] ，仿真实验比较了LEACH算法及相关算法的性能，进行了相应的参数分析 [ 10 ] [ 11 ] 。 C-LEACH [ 12 ] 算法中引入了中心结点，中心结点(汇聚结点充当)收集了所有结点的地理位置、剩余能量等信息，确定簇头结点。C-LEACH得到了均匀分布的簇头，但是只支持簇头结点到汇聚结点的单跳路由方式。 MODLEACH [ 13 ] 算法对更换簇头的方式进行了改进，不需要在每个轮次中进行簇头的更换，只在其能量小于阈值时才进行换新；Stable Election (heterogeneous) LEACH [ 14 ] 算法，依据结点的初始能量分为两类：正常结点和高级结点，高级结点有更多机会成为簇头；MH-LEACH (Multi hop LEACH) [ 15 ] 算法在处理数据转发时，设计簇头不是直接将数据发送给基站，而是将它交付给位于到BS (Base Station)的路径上的传感器结点，然后再传给基站。M. Usha1等 [ 16 ] 综述LEACH算法的优点与不足，比较了改进算法与LEACH算法，Z. Fui等 [ 17 ] 从能量均衡角度改进了LEACH算法，在部分簇区域引入了第二簇头负责数据接收与数据融合，簇头负责发送数据，达到平衡能量消耗，延长网络寿命。增加第二簇头的簇区，簇头或者离汇聚结点较远，或者剩余能量在本簇中较少。Two Level-LEACH [ 18 ] 算法设计了两个簇头：第一簇头和第二簇头，将任务划分为两个组成部分：数据收集与数据传输，第一簇头用于传送数据，而第二簇头用于收集数据。改进的算法V-LEACH [ 19 ] [ 20 ] [ 21 ] 进行簇头选择时，选出了簇头和副簇头，副簇头在簇头失效时充当簇头，完成簇头的任务。Nigam， G. K.等 [ 30 ] 研究了用粒子群PSO (particle swarm optimization)优化LEACH的PSO-LEACH算法。 无线传感器网络的HEED (A Hybrid， Energy-Efficient Distributed clustering approach)算法 [ 22 ] 着眼于分层思想，认为无线传感器网络中的簇头结点与汇聚结点以一跳的形式进行数据传输不可取，将分散无线传感器网络中的结点划分成若干个簇，每个簇选取一个簇头，簇头负责与汇聚结点的数据通信。分层次、多侧面的方式选取簇头，选择时考虑主次两个因素：主要因素是结点当前的剩余能量与初始能量的百分比，次要因素是簇内的结点之间的通信耗能，以平均最小可达能量为衡量准则。 HEED算法中剩余能量较多的结点具有较大的当选概率，在结点分布相对密集的区域，结点成为簇头的概率较大。HEED算法可以有效控制簇头的分布，使其分布尽量均勾，也让能耗尽可能均匀地在网络区域内进行，避免局部结点失效影响网络寿命。算法选取簇头时，既利用了剩余能量信息，也利用了网络结点通信开销信息。HEED要消耗能量进行每次的簇头选择；此外，在进行数据通信时，先将数据从源点传到本簇区域的簇头，簇头利用路由路径传到汇聚结点。路由路径从源点到汇点，除两端的端结点外，其余的中间结点(也称为中继结点)均为簇头。路径的选择时忽视了中继结点的情况，没有考虑由于每个簇中的内部结点相对固定可能引起的“能量洞”问题。 匡哲君 [ 7 ] 对于静态布局的无线传感器网络，从消除“能量洞”的角度出发，提出了对HEED算法的改进，即基于角色成员关系的分簇算法(A role， energy-efficient， membership clustering， 简称REEM)。考虑角色、关系两个方面：从簇关系考虑，有成员结点与非成员结点两种；从结构层次来划分：有汇聚点，中继点和源点三种角色，同一层次与同簇不同层次的结点角色有着内在联系的。簇的内结点有中继点和源点两种角色，不同角色凭借自身拥有的能量来进行转换(汇聚结点剩余能量 > 中继结点剩余能量 > 源点剩余能量)，路由选择时未被选中的中继点处于休眠状态，所以中继点在休眠状态与工作状态之间转换。 Xu [ 36 ] 等研究了GAF (Geographical adaptive fidelity)算法，以结点的地理分布为依据进行簇划分，簇是由地理分布上的某一正方形区域中的结点所组成；每一个簇随机选择出一个结点作为簇头，相邻区域的两个簇之间的结点通过簇头可以相互通信。GAF算法不能使能量在网络中均匀消耗。Gulnaz Ahmed [ 37 ] 等依据能量的多少将簇区域区分为：正常能量簇区域、高能量簇区域和超高能量簇区域，相应的簇头也分成三类，设计了基于层次的簇算法SEED (Sleep-awake Energy Efficient Distributed)。不过，簇头与汇聚点之间的信息传递是单跳到达的。表1给出了一些有代表性的算法及其特性，跳数指簇头到汇聚点的跳数，n是网络中的结点数量。 Table 1 Several typical algorithms and their feature 特性vs算法 跳数 中心结点 簇头选择 副簇头vs第二簇头 结点初始能量 通信 代价 时间复 杂度 集中式vs分布式 LEACH 1 无 每轮次重选 无 相同 不考虑 O(n) 分布式 C-LEACH 1 有 每轮次重选 无 相同 不考虑 O(n) 集中式 MODLEACH 1 无 每轮次有条件重选 无 相同 不考虑 分布式 Stable Election LEACH 1 无 每轮次重选 无 不同，分普通结点与高级结点 不考虑 O(n) 分布式 MH-LEACH 多跳 无 每轮次重选 无 相同 不考虑 O(n) 分布式 Two Level-LEACH 2 无 每轮次重选 第二簇头 相同 不考虑 O(n) 分布式 V-LEACH 1 无 每轮次重选 副簇头 相同 不考虑 O(n) 分布式 HEED 多跳 无 每轮次重选 无 相同 考虑 O(n) 分布式 REEM 多跳 无 每轮次重选 无 相同，但依据不同的剩余能量将结点分成不同的角色 考虑 O(n) 分布式 GAF 多跳 有 不清楚 无 相同 不考虑 未给出 集中式 表1. 一些典型算法与其特性