买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:重庆邮电大学
摘要:本发明涉及基于扰动粒子群优化的SDWSN能耗均衡路由算法,属于无线传感器网络领域。该算法首先通过考虑节点的剩余能量、位置和能量均衡信息,利用改进的扰动粒子群优化算法选择簇头,并依据节点距基站距离、节点剩余能量和邻居节点个数将整个网络动态划分为大小不等的簇。其次,采用每周期一轮全局分簇和k轮局部簇头更新方式来节省分簇时的能量消耗。最后,在多跳路由建立时,传感器控制服务器采用集中式方式根据链路能耗、节点剩余能量和簇内节点数等因素构建最短路由树。本发明能有效节约能量和均衡网络能耗、延长网络的生命周期。
主权项:1.基于扰动粒子群优化的软件定义无线传感器网络SDWSN能耗均衡路由方法,其特征在于:该方法包括以下步骤:S1:传感器控制服务器根据扰动粒子群优化算法进行簇头选择和分簇;S2:簇头根据Dijkstra算法确定的最短路径进行数据传输;S3:传感器控制服务器计算传感器节点的剩余能量和传输距离信息,每周期进行一轮全局分簇和k轮局部簇头更新;S4:簇头接收传感器控制服务器的指令,采用时分复TDMA方式,对簇内成员节点的数据进行聚合,并通过簇间多跳的方式将聚合后的数据发送给基站;所述步骤S1中的簇头选择由传感器控制服务器完成;传感器控制服务器选择具有更多剩余能量以及更好位置的节点作为簇头;具体的选择算法如下:通过考虑节点的剩余能量、距传感器控制服务器的距离、距邻居节点的距离以及节点剩余能量的均衡程度,定义适应度函数:f=α1f1+α2f2+α3f3+α4f41 其中,为普通节点的平均剩余能量;为簇头的平均剩余能量;为簇头到传感器控制服务器的平均欧式距离;为普通节点到传感器控制服务器的平均距离;|CN|为簇头的个数;|ON|为普通节点的个数;为簇头到其邻居节点集平均距离的均值;为普通节点到其邻居节点集平均距离的均值;ECNj为簇头CNj的剩余能量;参数α1,α2,α3,α4决定各因素对适应度函数贡献的比值,且α1+α2+α3+α4=1;步骤如下:S101:首先,对优化问题和算法参数初始化;创建一定数量的粒子,每个粒子代表问题的初始解即选出的一组簇头;设粒子数量为m,种群X={x1,x2,…,xm},第i个粒子的位置矢量为xi={xi1,xi2,…,xin},速度矢量vi={vi1,vi2,…,vin},n代表问题的维数即簇头个数;由式1计算每个粒子的适应度,粒子对应的个体最优解pi={pi1,pi2,…,pin},所有粒子找到的全局最优解pg={pg1,pg2,…,pgn};S102:更新速度和位置矢量;标准粒子群算法的速度和位置更新公式分别为: 其中vij是第i个粒子速度矢量的第j维值,为避免粒子飞出搜索空间,被约束在区间[-vmax,vmax],i=1,2,...,m,j=1,2,...,n;t为当前迭代次数;c1,c2为加速因子,设置为2.0;r1,r2是服从U0,1均匀分布的随机数;ω为惯性权值,从0.9到0.4线性递减,其大小决定粒子前一次迭代的速度对本次迭代粒子速度的影响程度;对标准的粒子群算法进行改进,首先将全局最优粒子gbest用方差可调的正态随机分布进行扰动,得到新的全局最优粒子gbest’,待更新的粒子向扰动后的全局最优粒子学习,然后用进化停滞步数t0作为触发条件对个体最优值进行随机扰动,进一步增加迭代后期群体的多样性,使算法跳出局部最优解;极值扰动算子与改进的速度更新公式为: 其中表示施加扰动后,第t次迭代全局最优粒子的第j维分量,新的全局最优粒子由正态随机分布产生,表示正态扰动的幅度半径σ1σ2σ3,T为最大迭代次数;S103:根据式1计算每个粒子的适应度,对粒子进行评价,更新个体最优值和全局最优值;返回到步骤S102:进行循环,利用式9和式7更新粒子的速度和位置,直到达到最大迭代次数,当前最优解即选为簇头。
全文数据:基于扰动粒子群优化的SDWSN能耗均衡路由算法技术领域[0001]本发明属于无线传感器网络中的路由协议领域,涉及基于扰动粒子群优化的SDWSN能耗均衡路由算法。背景技术[0002]传统的无线传感器网络WSN,wirelesssensornetworks大多专用于单个感测任务的场景,这种特定于应用的WSN在网络部署后,其节点行为和由这些节点所提供的网络功能难以发生改变,导致网络资源利用率低、策略更改困难和网络难于管理等问题。软件定义网络SDN,software-definednetwork是一种新型的网络架构,它将传统的网络架构解親成应用、控制、基础设施三层分离架构,从而带来网络应用可编程、集中式控制、网络设备开销少等好处。SDN在WSN中的应用产生了软件定义无线传感器网络(50胃5化8^切^-definedwireIesssensornetworks,SDWSN由软件定义传感器节点组成,可根据实时感测请求按需加载不同的程序,动态地重新配置其功能和属性。SDWSN利用了SDN的优点,有机的整合了网内节点的分布式管理机制,实现全网统一的网络管理控制,从而提高WSN的能量利用效率,可有效解决上述问题。[0003]Luo等人第一次将SDN与WSN结合来解决无线传感器网络中的一些固有问题。Gante等人提出了一种基于基站的集中式控制平面的智能无线传感器网络,可实现简单的重配置,以解决传统传感器网络中的资源管理问题。但缺少具体的通信策略、造成基站的成本上升。Huang等人提出了一种SDWSN原型,以提高环境监控WSN的适应性和能量效率。在SDWSN中,能量高效的路由算法是研究的热点。LiM等人提出了用于软件定义传感器网络SDSN的联合路由和资源控制JRRC协议,考虑SDSN中路由协议在动态环境的自适应性重新排列路由并实时为新应用和网络服务分配资源以最大化系统吞吐量。Han和Ren提出了一种基于SDN的分簇路由协议,主节点作为整个网络的控制器可以对转发节点进行控制,当转发节点出现能量耗尽、故障等状况时,簇头可以随时调整转发策略,改变转发路径。[0004]在WSN中,LEACH是经典的分簇路由协议,根据一定的概率随机选取节点作为簇头节点,通过簇头的轮换来均衡网络能耗。然而簇头选择的随机性会导致能量过低的节点也可能被选为簇头。HEED依据节点的剩余能量来随机选取一部分候选簇头,然后根据簇内能量消耗代价竞争产生最终簇头使选出的簇头更均匀能量较高。但单跳通信方式导致其用在大规模监控区域时能耗过高。采用多跳方式的均匀分簇网络中,靠近基站的簇头会由于较多的参与数据转发而使其能量快速耗尽。EEUC采用非均匀分簇的方法使得靠近基站的簇拥有较少的成员节点,从而可以节省能量供簇间数据转发使用,均衡了簇头能耗。DEBUC利用节点剩余能量构造的计时广播机制代替EEUC中的竞争机制,节省了簇头竞争时所消耗的能量。但簇头选择采用概率和门限值会导致能量较小节点的无效竞争,且能够继续工作的簇头还需重新分簇造成能量浪费。IPSOCH利用中继节点分担簇头能耗,考虑节点剩余能量和距离信息利用改进的粒子群优化算法选择簇头和中继节点,有效的提高了能量使用效率。然而,在SDWSN的范例中,路由功能在逻辑上集中在控制器上。传统的WSN路由协议采用分布式算法在节点上运行,分簇和路由选择过程需要进行大量的信息交换,增加了网络负担,消耗大量能量,而基于软件定义的WSN中的路由协议如NWPSO-based、SDUCR其簇头能量消耗不均衡,导致能量利用率低、网络生存时间短等问题。发明内容[0005]有鉴于此,本发明的目的在于提供基于扰动粒子群优化的SDWSN能耗均衡路由算法,在已有的SDWSN架构下,通过考虑节点的剩余能量、位置和能量均衡信息选择簇头,并引入扰动改进了PSO的搜索性能,依据节点距基站距离、节点剩余能量和邻居节点个数将整个网络动态划分为大小不等的簇。同时,采用每周期一轮全局分簇和k轮局部簇头更新方式来节省频繁分簇时的能量消耗。在多跳路由建立时,传感器控制服务器采用集中式方式根据链路能耗,节点剩余能量和簇内节点数构建最短路由树。[0006]为达到上述目的,本发明提供如下技术方案:[0007]基于扰动粒子群优化的SDWSN能耗均衡路由算法,包括以下步骤:[0008]SI:传感器控制服务器根据扰动粒子群优化算法进行簇头选择和分簇;[0009]S2:簇头根据Dijkstra算法确定的最短路径进行数据传输;[0010]S3:传感器控制服务器计算传感器节点的剩余能量和传输距离等信息,每周期进行一轮全局分簇和k轮局部簇头更新;[0011]S4:簇头接收传感器控制服务器的指令,采用时分复用(TimeDiviSionMultipleAccess,TDMA方式,对簇内成员节点的数据进行聚合,并通过簇间多跳的方式将聚合后的数据发送给基站。[0012]进一步,所述步骤Sl中的簇头选择由传感器控制服务器完成;传感器控制服务器选择具有更多剩余能量以及更好位置的节点作为簇头;[0013]设在全网范围内随机部署N个软件定义传感器节点,根据应用的需要被分为η个簇,簇头节点集合为CNClusterHeadNode=ICN1,CN2,···,CNj,…CNn},普通传感器节点的集合为ONOrdinaryNode={0Ni,0N2,···,0Ni,…CNn-π};[0014]采用一阶无线电通信能耗模型,向距离为d的目标节点发送一个k比特的数据包消耗的能量为:[0015]![0016]式中,Eeiec表示收发1比特数据时电路的功耗系数,,efs、emp为分别为自由空间和多径衰落的能耗常数;[0017]传感器节点接收k比特数据消耗的能量为:[0018]ERx=Eeleck⑵[0019]数据聚合也会消耗一定的能量,用Eda表示聚合单位比特数据所消耗的能量;[0020]设传感器节点的通信半径为R,在tPSOEB路由算法中,节点Ni的邻居节点集合为:[0021]NNiNeighborNode={Nj|Nj是Ni的邻居节点,dNi,Nj〈R},其中dNi,Nj表示Ni与Nj的欧式距离;[0022]为选出最佳的簇头,定义适应度函数:[0023]f=aifi+a2f2+a3f3+a4f43[0028]其中,,为普通节点的平均剩余能量;为簇头的平均剩余能量;为簇头到传感器控制服务器的平均欧式距离;,,为普通节点到传感器控制服务器的平均距离;|cn|为簇头的个数;|〇N|为普通节点的个数;为簇头到其邻居节点集平均距离的均值;丨为普通节点到其邻居节点集平均距离的均值;ECNj为簇头CNj的剩余能量;[0029]适应度函数的定义基于以下几个因素考虑,适应度函数越小,表明选出的簇头越好,其中fl表示选择剩余能量高的节点作为簇头;f2表示选择距离传感器控制服务器较近的节点担任簇头,距离控制服务器越近,传输数据消耗的能量越少;f3表示选择距离邻居节点较近的节点作为簇头,距离邻居节点越近,则簇内能量消耗越少;f4表示选择剩余能量均衡程度高的节点作为簇头,剩余能量越均衡,越容易避免网络空洞;参数C^a2W3,Ct4决定四个因素对适应度函数贡献的比值,且αι+α2+α3+α4=1;[0030]步骤如下:[0031]SlOl:首先,对优化问题和算法参数初始化;创建一定数量的粒子,每个粒子代表问题的初始解即选出的一组簇头;设粒子数量为m,种群X={χι,Χ2,…,Xm},第i个粒子的位置矢量为Xi={xil,Xi2,…,Xin},速度矢量Vi={vil,Vi2,M_,Vin},n代表问题的维数即簇头个数;由式⑶计算每个粒子的适应度,粒子对应的个体最优解Pi={pil,Pi2,…,Pin},所有粒子找到的全局最优解Pg={Pgl,Pg2,…,Pgn};[0032]S102:更新速度和位置矢量;标准粒子群算法的速度和位置更新公式分别为:89[0035]其中Vij是第i个粒子速度矢量的第j维值,为避免粒子飞出搜索空间,被约束在区间[-Vmax,Vmax],i=l,2,...,m,j=l,2,...,n;t为当前迭代次数;C1,C2为加速因子,设置为2.0;η,r2是服从U0,1均匀分布的随机数;ω为惯性权值,从〇.9到0.4线性递减,其大小决定粒子前一次迭代的速度对本次迭代粒子速度的影响程度;[0036]对标准的粒子群算法进行改进,首先将全局最优粒子gbest用方差可调的正态随机分布进行扰动,得到新的全局最优粒子gbest’,待更新的粒子向扰动后的全局最优粒子学习,然后用进化停滞步数to作为触发条件对个体最优值进行随机扰动,进一步增加迭代后期群体的多样性,使算法跳出局部最优解;极值扰动算子与改进的速度更新公式为:11[0039]其中表示施加扰动后,第t次迭代全局最优粒子的第j维分量,新的全局最优粒子由正态随机分布产生,表示正态扰动的幅度半径O1M2M3,T为最大迭代次数;[0040]S103:根据式3计算每个粒子的适应度,对粒子进行评价,更新个体最优值和全局最优值;返回到步骤S102:进行循环,利用式(11和式9更新粒子的速度和位置,直到达到最大迭代次数,当前最优解即选为簇头。[0041]进一步,所述步骤Sl中的分簇具体为:[0042]综合考虑簇头到传感器控制服务器的距离、簇头的剩余能量及其邻居节点的个数来计算簇半径,计算公式如下:[0044]其中,β2,β3是参数控制因子,=I;dCNj,CS为簇头CNj到传感器控制服务器CS的距离;dCS,MF为传感器控制服务器距较近的监控区域边界的距离;Cl1为监控区域的长度;Emax为所有簇头剩余能量的最大值;|NNjI为簇头CNj邻居节点的个数;INN|min为所有簇头邻居节点个数的最小值;Rmax为预先定义的最大竞争半径;[0045]簇头CNj的成员节点集为:MNj={Ni|Ni是CNj的成员节点,ddCNjKRc};Rc为簇头的克争半径;[0046]传感器控制服务器根据扰动粒子群算法选出簇头后,由式(12计算出每个簇头的竞争半径,若在一个簇头竞争半径范围内出现另一个簇头,则选择剩余能量多的节点作为此区域的簇头,另一个节点自动成为普通节点;位于簇头竞争半径范围内的邻居节点即成为簇成员节点,对于那些可能并不在所有选出簇头竞争半径内的节点,选择加入距它最近的簇头;控制服务器得到簇头集合和簇成员集合后生成簇头通知包,发送到对应的簇头,簇头收到通知包后生成与之相对应的流表项,并产生相对应的簇成员通知包,发送到相对应的簇成员节点;簇头根据传感器控制服务器下发的指令指示簇内节点执行相应的任务,并为簇内所有普通节点构建TDM调度;[0047]进一步,所述步骤S3中的簇头更新方式具体为:[0048]tPSOEB算法采用每周期一轮全局分簇和动态的k轮局部簇头更新;在以上分簇阶段完成后,传感器控制服务器依据当前分簇情况,在每个簇内选出作为代理簇头的节点,代理簇头的选择依据簇内节点的适应度来决定;适应度的计算公式为:[0050]其中,为簇内成员节点的平均剩余能量;EONi为节点ONi的剩余能量;dONiCS为节点0到传感器控制服务器的距离;为簇内成员节点到控制服务器距离的平均值;为节点ONi至Ij簇内成员节点的平均距离;为簇内成员节点到簇内其余节点平均距离的均值;[0051]如果簇内节点ONi的适应度小于λI倍当前簇头节点的适应度,则该成员节点作为代理簇头;一个簇内代理簇头的个数即为该簇局部簇头更新的次数;设簇Cj中代理簇头的个数为,则全网的局部簇头更新次数为:[0052]14[0053]进一步,所述步骤S2具体为:[0054]传感器控制服务器选出全网的簇头后,利用收集到的簇头的能量信息、位置信息、分簇后簇内普通节点数和任务的Qos需求信息,以自己为根节点采用Dijkstra算法构建最短路由树;[0055]若dCNi,CNj〈SCNi.Rc,则簇头CNi可一跳与簇头CNj通信,其中δ是使簇头CNi有相邻簇头的最小正整数;dCNi,CNj为簇头CNi与CNj的距离;[0056]为构建最短路径树,传感器控制服务器首先通过集中式的最小跳路由发现,得到网络中所有可用链路集合;其过程为,首先引入一个距离阈值TDmax,若簇头与控制服务器的距离小于阈值则采用单跳方式传输数据,找到所有可一跳与控制服务器通信的簇头集合CNlhcip,将这些单跳链路加入总可用链路,重复这一过程,找到所有可一跳与CNlhcit^I信的簇头集合,将所得单跳链路加入总可用链路,直至网络中所有簇头都能通过一跳或多跳将数据发送给控制服务器;[0057]为找出最佳路由路径,链路权值设定为:[0058]15:[0059]其中,ωij表示链路CNi,CNj的权值;EcCNi,CNj表示链路CNi,CNj传输一个数据包所消耗的能量;ECNj表示下一跳簇头CNj的剩余能量;|MNjI表示下一跳簇头CNj的成员节点数:I表示所有可一跳与CN1通信的簇头的成员节点数均值;链路权值由链路能量消耗,下一跳簇头的剩余能量以及下一跳簇头的成员节点数决定;链路能耗越大、簇头剩余能量越低、簇内成员节点数越多,ω^的取值就越大,簇头CNj要负责数据转发的概率越小,从而节省自身能量,达到整个网络的能量均衡;传感器控制服务器由式(15得到每条链路的权值后,采用Dijkstra算法计算出每个簇头传输数据的最优路径,生成对应簇头的流表项并发送给相对应的簇头,多跳路由建立。[0060]本发明的有益效果在于:采用基于软件定义的无线传感器网络架构,将控制平面从数据转发平面中分离出来,通过集中的控制服务器来实现网络资源的灵活调配,网络中的节点只需按流表进行数据转发,无需进行路由计算,节省了能量消耗;通过一轮全局分簇和K轮局部簇头轮换来均衡网络中节点的能量消耗,有助于延长网络的生命周期;采用集中式的算法调取网络中的有用信息用于路由计算,更容易得到全局优化的解。附图说明[0061]为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:[0062]图1为多任务软件定义无线传感器网络;[0063]图2为网络生命周期随簇头个数的变化;[0064]图3为各种路由算法存活节点数对比;[0065]图4为网络能耗对比;[0066]图5为本发明流程图。具体实施方式[0067]下面将结合附图,对本发明的优选实施例进行详细的描述。[0068]1网络模型与能耗模型[0069]1.1网络模型[0070]网络模型如图1所示,其由在基站处实现的传感器控制服务器CSsensorcontrolserver和一组随机分布在监测区域的软件定义传感器节点组成,且具有如下性质:[0071]1考虑一组感测目标如温度、湿度等,随机分布在SDWSN的监测区域内。每个软件定义传感器节点配备具有不同感测能力的多个传感器,可同时执行多个任务;2传感器控制服务器可根据执行任务的不同,为传感器节点分配对应的程序来重新编程一些传感器节点;3每个传感器节点具有相同的初始能量,存储容量和通信能力。当作为簇头时,具有相同的数据聚合能力;4每个传感器节点能量有限,一旦部署后无法替换电池,每个节点被分配有唯一的ID,部署后可获取其位置;5传感器节点和控制服务器一经部署后不能随意移动,节点的发射功率均能够进行自动调整。[0072]1.2能耗模型[0073]本发明采用一阶无线电通信能耗模型,向距离为d的目标节点发送一个k比特的数据包消耗的能量为:[0074]1[0075]式中,Eeiec表示收发1比特数据时电路的功耗功耗系数,,efs、emp为自由空间和多径衰落的能耗常数。[0076]传感器节点接收k比特数据消耗的能量为:[0077]ERx=Eeleck2[0078]数据聚合也会消耗一定的能量,用Eda表示聚合单位比特数据所消耗的能量。[0079]2tPS0EB路由算法[0080]如图5所示,本路由协议分两个阶段,包括簇的建立以及数据传输阶段,这两个阶段周期性地执行。簇建立初始阶段,传感器控制服务器向全网广播一条消息,所有节点根据收到消息的信号强度计算与控制服务器的距离,并调整发射功率,将自己的能量、位置等信息发送给控制服务器,控制服务器综合网络的信息和业务需求选出簇头,划分大小不同的簇,并计算出最佳路由,然后将选出的簇头信息以及路由信息发送给相应簇头,簇头接收控制服务器的指令,指示所在簇区域内的节点完成相应的任务。在数据传输阶段,簇内节点将所感测的数据发送给簇头,簇头将数据聚合后按照传感器控制服务器所做的路由决策进行数据传输。[0081]2.1基于扰动粒子群优化的簇头选择算法[0082]簇头的选择对路由算法的性能至关重要,为了节省传感器节点的能量,簇头的选择由传感器控制服务器完成。由节点的能耗模型可知,传感器节点消耗的能量与传输的数据量以及传输的距离有关。因此,传感器控制服务器应选择具有更多剩余能量以及更好位置的节点作为簇头。[0083]设在全网范围内随机部署了N个软件定义传感器节点,根据应用的需要被分为了η个簇,定义簇头节点集合为CNClusterHeadNode=ICN1,CN2,…,CNj,."CNrJ,普通传感器节点的集合为ONOrdinaryNode={0Ni,0N2,···,0Ni,."CNN-n}〇[0084]设传感器节点的通信半径为R,在tPSOEB路由算法中,节点Ni的邻居节点集合为:[0085]NNiNeighborNode={Nj|Nj是Ni的邻居节点,dNi,Nj〈R},其中dNi,Nj表示Ni与Nj的欧式距离。[0086]为了选出最佳的簇头,定义适应度函数:[0087]f=aifi+a2f2+〇3f3+a4f43[0092]其中,1为普通节点的平均剩余能量;为簇头的平均剩余能量;为簇头到传感器控制服务器的平均欧式距离为普通节点到传感器控制服务器的平均距离;|cn|为簇头的个数;|〇N|为普通节点的个数为簇头到其邻居节点集平均距离的均值为普通节点到其邻居节点集平均距离的均值;ECNj为簇头CNj的剩余能量。[0093]适应度函数的定义基于以下几个因素考虑,适应度函数越小,表明选出的簇头越好,其中fl表示选择剩余能量高的节点作为簇头;f2表示选择距离传感器控制服务器较近的节点担任簇头,距离控制服务器越近,传输数据消耗的能量越少;f3表示选择距离邻居节点较近的节点作为簇头,距离邻居节点越近,则簇内能量消耗越少;f4表示选择剩余能量均衡程度高的节点作为簇头,剩余能量越均衡,越容易避免网络空洞。参数C^a2W3,α4决定四个因素对适应度函数贡献的比值,且a1+a2+a3+a4=l。本发明采用改进的扰动粒子群优化算法来选择簇头。[0094]粒子群优化算法ParticleSwarmOptimization是一种群体智能算法,根据对环境的适应度将群体中的个体移动到更好的区域,经过不断迭代来找到优化问题的解。因其简单高效,收敛速度快,可用来进行簇头的选择。但标准的粒子群优化算法容易陷入局部最优,导致选出来的簇头并非全网最优。因此,本发明对PSO进行改进,提出一种基于扰动粒子群优化的簇头选择算法。步骤如下:[0095]1首先,对优化问题和算法参数初始化。仓Il建一定数量的粒子,每个粒子代表问题的初始解即选出的一组簇头。设粒子数量为m,种群乂={11^2,一,},第1个粒子的位置矢量为Xi={xil,B2,…,Xin},速度矢量Vi={vil,Vi2,…,Vin},n代表问题的维数即簇头个数。由式⑶计算每个粒子的适应度,粒子对应的个体最优解Pi={pil,Pi2,…,Pin},所有粒子找到的全局取优角牛Pg={pgl,Pg2,…,Pgn}。[0096]2更新速度和位置矢量。标准粒子群算法的速度和位置更新公式分别为:⑻.9[0099]其中Vlj是第i个粒子速度矢量的第j维值,为了避免粒子飞出搜索空间,通常被约束在区间[-¥111£«,¥111£«]间,1=1,2,...,1]1,」=1,2,...,11;1:为当前迭代次数;31,02为加速因子,通常设置为2.0;ri,r2是服从U0,1均匀分布的随机数;ω为惯性权值,从〇.9到0.4线性递减,其大小决定了粒子前一次迭代的速度对本次迭代粒子速度的影响程度。[0100]标准的粒子群算法由于群体中所有粒子都向同一个全局最优粒子学习,很容易因学习强度过大,群体多样性的丢失而使群体进化停滞,陷入局部最优。本发明对其进行改进,提出一种扰动粒子群优化算法,首先将全局最优粒子gbest用方差可调的正态随机分布进行扰动,得到新的全局最优粒子gbest’,待更新的粒子向扰动后的全局最优粒子学习。然后用进化停滞步数to作为触发条件对个体最优值进行随机扰动,进一步增加迭代后期群体的多样性,使算法跳出局部最优解。极值扰动算子与改进的速度更新公式为:[0103]其中’表示施加扰动后,第t次迭代全局最优粒子的第j维分量,新的全局最优粒子由正态随机分布.)产生,,表示正态扰动的幅度半径O1M2M3,T为最大迭代次数;本发明仿真中σ分别为0.4,0.001,10Λ在算法运行的不同时期,给全局最优解施加大小不同的领域扰动,很好的增加了群体多样性。TQ,tQ为进化停滞步数,To为其阈值,U0,1为均匀随机函数。引入扰动使粒子探索超出搜索轨迹定义的区域,更容易跳出局部最优。[0104]3根据式3计算每个粒子的适应度,对粒子进行评价,更新个体最优值和全局最优值。返回到步骤2进行循环,利用式(11和式⑼更新粒子的速度和位置,直到达到最大迭代次数,当前最优解即选为簇头。[0105]2.2簇头竞争半径的大小[0106]本发明综合考虑簇头到传感器控制服务器的距离、簇头的剩余能量及其邻居节点的个数来计算簇半径,计算公式如下:[0107]x12[0108]其中βι,β2,β3是参数控制因子,Pdft^3=UdCNhCS为簇头CNj到传感器控制服务器CS的距离;dCS,MF为传感器控制服务器距较近的监控区域边界的距离;Cl1为监控区域的长度;Emax为所有簇头剩余能量的最大值;|NNjI为簇头CNj邻居节点的个数;INN|min为所有簇头邻居节点个数的最小值;Rmax为预先定义的最大竞争半径。[0109]簇头CNj的成员节点集为:MNj={Ni|Ni是CNj的成员节点,ddCNjKRc};Rc为簇头的克争半径。[0110]传感器控制服务器根据扰动粒子群算法选出簇头后,由式(12计算出每个簇头的竞争半径,若在一个簇头竞争半径范围内出现另一个簇头,则选择剩余能量多的节点作为此区域的簇头,另一个节点自动成为普通节点。位于簇头竞争半径范围内的邻居节点即成为簇成员节点,对于那些可能并不在所有选出簇头竞争半径内的节点,选择加入距它最近的簇头。控制服务器得到簇头集合和簇成员集合后生成簇头通知包,发送到对应的簇头,簇头收到通知包后生成与之相对应的流表项,并产生相对应的簇成员通知包,发送到相对应的簇成员节点。与DEBUC等协议相比,簇的建立去除了簇头竞争过程,节省了能量。簇头根据传感器控制服务器下发的指令指示簇内节点执行相应的任务,并为簇内所有普通节点构建TDM调度。[0111]为了避免频繁分簇,tPSOEB算法采用每周期一轮全局分簇和动态的k轮局部簇头更新。在以上分簇阶段完成后,传感器控制服务器依据当前分簇情况,在每个簇内选出可以作为代理簇头的节点,代理簇头的选择依据簇内节点的适应度来决定。适应度的计算公式为:13[0113]其中:为簇内成员节点的平均剩余能量;EONi为节点ONi的剩余能量;dONiCS为节点ON1到传感器控制服务器的距离:为簇内成员节点到控制服务器距离的平均值丨为节点ONi至Ij簇内成员节点的平均距离;为簇内成员节点到簇内其余节点平均距离的均值。[0114]如果簇内节点ONi的适应度小于λλ多1倍当前簇头节点的适应度,则该成员节点可作为代理簇头。一个簇内代理簇头的个数即为该簇局部簇头更新的次数。设簇Cj中代理簇头的个数为I,则全网的局部簇头更新次数为:[0115]14[0116]分簇阶段完成后进入数据传输阶段,普通节点根据TDMA调度向簇头发送数据,节点通过传感器控制服务器发送的同步脉冲保证时间同步。簇头收集簇内所有普通节点的感测数据,进行数据聚合后,经多跳方式将聚合数据发送给传感器控制服务器,下面说明多跳路由的建立。[0117]2.3多跳路由的建立[0118]传感器控制服务器选出全网的簇头后,利用收集到的簇头的能量信息、位置信息、分簇后簇内普通节点数、任务的Qos需求等信息,以自己为根节点采用Dijkstra算法构建最短路由树。路由的建立采用集中式算法在传感器控制服务器处运行,去除了簇头广播发现邻居簇头以及计算最佳中继节点的过程,节省了能量的消耗。[0119]若dCNi,CNj〈SCNi.R。,则簇头CNi可一跳与簇头CNj通信,其中δ是使簇头CNi有相邻簇头的最小正整数。dCNi,CNj为簇头CNi与CNj的距离。[0120]为构建最短路径树,传感器控制服务器首先通过集中式的最小跳路由发现,得到网络中所有可用链路集合。其过程为,首先引入一个距离阈值TDmax,若簇头与控制服务器的距离小于阈值则采用单跳方式传输数据,找到所有可一跳与控制服务器通信的簇头集合CNlhcip,将这些单跳链路加入总可用链路,重复这一过程,找到所有可一跳与CNlhcit^I信的簇头集合,将所得单跳链路加入总可用链路,直至网络中所有簇头都能通过一跳或多跳将数据发送给控制服务器。[0121]为了找出最佳路由路径,链路权值设定为:[0122]⑸[0123]其中,ωij表示链路CNi,CNj的权值;EcCNi,CNj表示链路CNi,CNj传输一个数据包所消耗的能量;ECNj表示下一跳簇头CNj的剩余能量;|MNjI表示下一跳簇头CNj的成员节点数:j表示所有可一跳与〇通信的簇头的成员节点数均值。链路权值由链路能量消耗,下一跳簇头的剩余能量以及下一跳簇头的成员节点数决定。链路能耗越大、簇头剩余能量越低、簇内成员节点数越多,ω^的取值就越大,簇头CNj要负责数据转发的概率越小,从而节省自身能量,达到整个网络的能量均衡。传感器控制服务器由式(15得到每条链路的权值后,采用Dijkstra算法计算出每个簇头传输数据的最优路径,生成对应簇头的流表项并发送给相对应的簇头,多跳路由建立。[0124]2.4tPS0EB算法工作步骤[0125]1传感器控制服务器根据扰动粒子群优化算法进行簇头选择和分簇。[0126]2簇头根据Dijkstra算法确定的最短路径进行数据传输。[0127]3传感器控制服务器计算传感器节点的剩余能量和传输距离等信息,每周期进行一轮全局分簇和k轮局部簇头更新。[0128]4簇头接收传感器控制服务器的指令,构建TDM调度,对簇内成员节点的数据进行聚合,并通过簇间多跳的方式将聚合后的数据发送给基站。[0129]3仿真结果与分析[0130]为了验证所提协议的有效性,在MATLAB中进行了仿真,仿真参数如表1所示。通过无线传感器网络的生命周期和网络总能耗的变化来衡量算法的性能。[0131]表1仿真实验的参数设置[0133]首先,比较不同簇头个数对网络生命周期的影响,如图2所示,增加簇头的数量可以使得划分的集群更小,簇头管辖的成员节点数减少且成员节点距簇头的距离缩短,从而使簇内的能量消耗降低。但传感器控制服务器远离网络,如果更多的节点被选作簇头,簇头与传感器控制服务器通信的能耗将会增加。另外,簇头的任务之一是融合所管辖区域内成员节点的感测数据,消除错误数据减少冗余信息,如果选择过多的簇头,那么相似的感测数据可能会传输给不同的簇头,导致部分冗余的信息发送给传感器控制服务器造成能量浪费。因此,对于给定网络存在一个最优簇头数使得能量效率最高,本场景中最优簇头数为18。[0134]为了验证本发明所提tPSOEB算法的性能,将本发明算法与LEACH、EEUC、DEBUC以及IPSOCH对比,通过网络的生命周期来验证4种协议的能量效率。图3显示了存活节点数随仿真时间的变化情况。[0135]可以看出同LEACH协议相比EEUC、DEBUC、IPSOCH以及本发明所提算法都显著提高了网络的生命周期,这是因为他们都采用多跳通信的方式,节省了簇头的能量消耗。同时,本发明算法不管是以第一个节点失效还是以最后一个节点失效的时间来衡量都比LEACH、EEUC、DEBUC以及IPSOCH算法滞后,这是因为本发明引入了软件定义的架构,采用集中式的算法,将网络拓扑的划分和路由决策都交由传感器控制服务器来进行,网络中的簇头无需进行路由计算,大大减少了簇头的能量消耗。此外,传感器控制服务器在选择簇头和分簇时,使用tPSO来改进对PSO的搜索,充分考虑了节点的剩余能量和距离信息,产生了更好的网络聚类结构,由于普通节点与其簇头之间的距离较短,所以节点的能量消耗减少。[0136]图4对比了5种算法每轮过后剩余总能量的变化,可以看出本发明算法具有较小的坡度,波动较小且生存时间更长,表明本发明算法相对于LEECH、EEUC、DEBUC和IPSOCH算法能耗速度较慢且能耗较小,很好地均衡了网络中所有节点的能量消耗,从而延长网络生命周期。[0137]在本发明中,为软件定义的无线传感器网络提出了一种能量高效的路由算法。传感器控制服务器采用集中式的算法调取网络中节点信息用于集群划分和路由计算。根据网络中节点的剩余能量、位置和能量均衡信息,利用扰动粒子群算法来优化簇头的选择,同时依据节点距基站距离、节点剩余能量和邻居节点个数将网络动态划分为大小不同的簇以均衡簇头的能耗,使数据传输距离短且整个网络能耗小。路由计算综合考虑链路能耗、节点剩余能量和成员节点数构建最短路径树,通过簇内单跳,簇间多跳方式进行数据传输。仿真结果表明,所提出的路由算法能够显著延长网络寿命。[0138]最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。
权利要求:1.基于扰动粒子群优化的软件定义无线传感器网络(Software-definedWirelessSensorNetworks,SDWSN能耗均衡路由算法,其特征在于:该算法包括以下步骤:Sl:传感器控制服务器根据扰动粒子群优化算法进行簇头选择和分簇;S2:簇头根据Dijkstra算法确定的最短路径进行数据传输;S3:传感器控制服务器计算传感器节点的剩余能量和传输距离信息,每周期进行一轮全局分簇和k轮局部簇头更新;S4:簇头接收传感器控制服务器的指令,采用时分复用(TimeDivisionMultipleACCesS,TDMA方式,对簇内成员节点的数据进行聚合,并通过簇间多跳的方式将聚合后的数据发送给基站。2.根据权利要求1所述的基于扰动粒子群优化的SDWSN能耗均衡路由算法,其特征在于:所述步骤Sl中的簇头选择由传感器控制服务器完成;传感器控制服务器选择具有更多剩余能量以及更好位置的节点作为簇头;具体的选择算法如下:通过考虑节点的剩余能量、距传感器控制服务器的距离、距邻居节点的距离以及节点剩余能量的均衡程度,定义适应度函数:f=aifi+a2f2+a3f3+a4f4I其中,为普通节点的平均剩余能量;%簇头的平均剩余能量I为簇头到传感器控制服务器的平均欧式距离;.为普通节点到传感器控制服务器的平均距离;|cn|为簇头的个数;|〇N|为普通节点的个数为簇头到其邻居节点集平均距离的均值;为普通节点到其邻居节点集平均距离的均值;ECNj为簇头CNj的剩余能量;参数ai,a〗,a3,a4决定各因素对适应度函数贡献的比值,且a1+a2+a3+a4=1;步骤如下:SlO1:首先,对优化问题和算法参数初始化;仓Ij建一定数量的粒子,每个粒子代表问题的初始解即选出的一组簇头;设粒子数量为m,种群X={X1,X2,…,xm},第i个粒子的位置矢量为Xi={xil,B2,…,Xin},速度矢量Vi={vil,Vi2,…,Vin},n代表问题的维数即簇头个数;由式(1计算每个粒子的适应度,粒子对应的个体最优解Pi={pil,Pi2,…,Pin},所有粒子找到的全局最优解Pg={pgl,Pg2,"_,pgn};S102:更新速度和位置矢量;标准粒子群算法的速度和位置更新公式分别为:㈣⑺其中Vlj是第i个粒子速度矢量的第j维值,为避免粒子飞出搜索空间,被约束在区间[-Vmax,Vmax],i=l,2,...,m,j=l,2,...,n;t为ξ!ξ|如迭代次数;Cl,C2为加速因子,设置为2.O;η,r2是服从U0,1均匀分布的随机数;ω为惯性权值,从〇.9到0.4线性递减,其大小决定粒子前一次迭代的速度对本次迭代粒子速度的影响程度;对标准的粒子群算法进行改进,首先将全局最优粒子gbest用方差可调的正态随机分布进行扰动,得到新的全局最优粒子gbest’,待更新的粒子向扰动后的全局最优粒子学习,然后用进化停滞步数to作为触发条件对个体最优值进行随机扰动,进一步增加迭代后期群体的多样性,使算法跳出局部最优解;极值扰动算子与改进的速度更新公式为:其中表示施加扰动后,第t次迭代全局最优粒子的第j维分量,新的全局最优粒子由正态随机分布)产生,表示正态扰动的幅度半径O1M2M3,T为最大迭代次数;S103:根据式(1计算每个粒子的适应度,对粒子进行评价,更新个体最优值和全局最优值;返回到步骤S102:进行循环,利用式9和式7更新粒子的速度和位置,直到达到最大迭代次数,当前最优解即选为簇头。3.根据权利要求1所述的基于扰动粒子群优化的SDWSN能耗均衡路由算法,其特征在于:所述步骤Sl中的分簇具体为:综合考虑簇头到传感器控制服务器的距离、簇头的剩余能量及其邻居节点的个数来计算簇半径,计算公式如下:其中,β2,β3是参数控制因子,仏+此+枷=I;dCNj,CS为簇头CNj到传感器控制服务器CS的距离;dCS,MF为传感器控制服务器距较近的监控区域边界的距离;Cl1为监控区域的长度;Emax为所有簇头剩余能量的最大值;|NNjI为簇头CNj邻居节点的个数;INN|min为所有簇头邻居节点个数的最小值;Rmax为预先定义的最大竞争半径;簇头CNj的成员节点集定义为:丽j={NiINi是CNj的成员节点,dNi,CNjRC};Re为簇头的克争半径;传感器控制服务器根据扰动粒子群算法选出簇头后,由式(10计算出每个簇头的竞争半径,若在一个簇头竞争半径范围内出现另一个簇头,则选择剩余能量多的节点作为此区域的簇头,另一个节点自动成为普通节点;位于簇头竞争半径范围内的邻居节点即成为簇成员节点,对于那些可能并不在所有选出簇头竞争半径内的节点,选择加入距它最近的簇头;控制服务器得到簇头集合和簇成员集合后生成簇头通知包,发送到对应的簇头,簇头收到通知包后生成与之相对应的流表项,并产生相对应的簇成员通知包,发送到相对应的簇成员节点;簇头根据传感器控制服务器下发的指令指示簇内节点执行相应的任务,并为簇内所有普通节点构建TDM调度。4.根据权利要求1所述的基于扰动粒子群优化的SDWSN能耗均衡路由算法,其特征在于:所述步骤S3中的簇头更新的方式具体为:基于扰动粒子群优化的能耗均衡路由算法(extremumdisturbedparticleswarmoptimizationbasedenergy-balancedroutingalgorithm,tPSOEB米用每周期一轮全局分簇和动态的k轮局部簇头更新;在以上分簇阶段完成后,传感器控制服务器依据当前分簇情况,在每个簇内选出作为代理簇头的节点,代理簇头的选择依据簇内节点的适应度来决定;适应度的计算公式为:其中%簇内成员节点的平均剩余能量;EONi为节点ONi的剩余能量;dONi,CS为节点0到传感器控制服务器的距离;为簇内成员节点到控制服务器距离的平均值:为节点〇^到簇内成员节点的平均距离;为簇内成员节点到簇内其余节点平均距离的均值;如果簇内节点ONi的适应度小于λ倍当前簇头节点的适应度,λ多1,则该成员节点作为代理簇头;一个簇内代理簇头的个数即为该簇局部簇头更新的次数;设簇Cj中代理簇头的个数为,,则全网的局部簇头更新次数为:12。5.根据权利要求1所述的基于扰动粒子群优化的SDWSN能耗均衡路由算法,其特征在于:所述步骤S2具体为:传感器控制服务器选出全网的簇头后,利用收集到的簇头的能量信息、位置信息、分簇后簇内普通节点数和任务的Qos需求信息,以自己为根节点采用Dijkstra算法构建最短路由树;若dCNi,CNj〈SCNi.R。,则簇头CNi可一跳与簇头CNj通信,其中δ是使簇头CNi有相邻簇头的最小正整数;dCNi,CNj为簇头CNi与CNj的距离;为构建最短路径树,传感器控制服务器首先通过集中式的最小跳路由发现,得到网络中所有可用链路集合;其过程为,首先引入一个距离阈值TDmax,若簇头与控制服务器的距离小于阈值则采用单跳方式传输数据,找到所有可一跳与控制服务器通信的簇头集合CNlhcip,将这些单跳链路加入总可用链路,重复这一过程,找到所有可一跳与CNlhcip通信的簇头集合,将所得单跳链路加入总可用链路,直至网络中所有簇头都能通过一跳或多跳将数据发送给控制服务器;为找出最佳路由路径,定义链路权值为:13其中,ωij表示链路CNi,CNj的权值;E。CNi,CNj表示链路CNi,CNj传输一个数据包所消耗的能量;ECNj表示下一跳簇头CNj的剩余能量;|MNjI表示下一跳簇头CNj的成员节点数;_」表示所有可一跳与CN1通信的簇头的成员节点数均值;链路权值由链路能量消耗,下一跳簇头的剩余能量以及下一跳簇头的成员节点数决定;链路能耗越大、簇头剩余能量越低、簇内成员节点数越多,ωu的取值就越大,簇头CNj要负责数据转发的概率越小;传感器控制服务器由式(13得到每条链路的权值后,采用Dijkstra算法计算出每个簇头传输数据的最优路径,生成对应簇头的流表项并发送给相对应的簇头,多跳路由建立。
百度查询: 重庆邮电大学 基于扰动粒子群优化的SDWSN能耗均衡路由方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。