1.基于扰动粒子群优化的软件定义无线传感器网络(Software-defined Wireless Sensor Networks,SDWSN)能耗均衡路由算法,其特征在于:该算法包括以下步骤:S1:传感器控制服务器根据扰动粒子群优化算法进行簇头选择和分簇;
S2:簇头根据Dijkstra算法确定的最短路径进行数据传输;
S3:传感器控制服务器计算传感器节点的剩余能量和传输距离信息,每周期进行一轮全局分簇和k轮局部簇头更新;
S4:簇头接收传感器控制服务器的指令,采用时分复用(Time Division Multiple Access,TDMA)方式,对簇内成员节点的数据进行聚合,并通过簇间多跳的方式将聚合后的数据发送给基站。
2.根据权利要求1所述的基于扰动粒子群优化的SDWSN能耗均衡路由算法,其特征在于:所述步骤S1中的簇头选择由传感器控制服务器完成;传感器控制服务器选择具有更多剩余能量以及更好位置的节点作为簇头;具体的选择算法如下:通过考虑节点的剩余能量、距传感器控制服务器的距离、距邻居节点的距离以及节点剩余能量的均衡程度,定义适应度函数:f=α1f1+α2f2+α3f3+α4f4 (1)
其中, 为普通节点的平均剩余能量; 为簇头的平均剩余能量; 为
簇头到传感器控制服务器的平均欧式距离; 为普通节点到传感器控制服务器的
平均距离;|CN|为簇头的个数;|ON|为普通节点的个数; 为簇头到其邻居节点集平均距离的均值; 为普通节点到其邻居节点集平均距离的均值;E(CNj)为簇头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是服从U(0,1)均匀分布的随机数;ω为惯性权值,从0.9到0.4线性递减,其大小决定粒子前一次迭代的速度对本次迭代粒子速度的影响程度;
对标准的粒子群算法进行改进,首先将全局最优粒子gbest用方差可调的正态随机分布进行扰动,得到新的全局最优粒子gbest’,待更新的粒子向扰动后的全局最优粒子学习,然后用进化停滞步数t0作为触发条件对个体最优值进行随机扰动,进一步增加迭代后期群体的多样性,使算法跳出局部最优解;极值扰动算子与改进的速度更新公式为:其中 表示施加扰动后,第t次迭代全局最优粒子的第j维分量,新的全局最优粒子由正态随机分布 产生, 表示正态扰动的幅度半径σ1>σ2>σ3,T为最大迭代次数;
S103:根据式(1)计算每个粒子的适应度,对粒子进行评价,更新个体最优值和全局最优值;返回到步骤S102:进行循环,利用式(9)和式(7)更新粒子的速度和位置,直到达到最大迭代次数,当前最优解即选为簇头。
3.根据权利要求1所述的基于扰动粒子群优化的SDWSN能耗均衡路由算法,其特征在于:所述步骤S1中的分簇具体为:综合考虑簇头到传感器控制服务器的距离、簇头的剩余能量及其邻居节点的个数来计算簇半径,计算公式如下:其中β1,β2,β3是参数控制因子,β1+β2+β3=1;d(CNj,CS)为簇头CNj到传感器控制服务器CS的距离;d(CS,MF)为传感器控制服务器距较近的监控区域边界的距离;dl为监控区域的长度;Emax为所有簇头剩余能量的最大值;|NNj|为簇头CNj邻居节点的个数;|NN|min为所有簇头邻居节点个数的最小值;Rmax为预先定义的最大竞争半径;
簇头CNj的成员节点集定义为:MNj={Ni|Ni是CNj的成员节点,d(Ni,CNj)
传感器控制服务器根据扰动粒子群算法选出簇头后,由式(10)计算出每个簇头的竞争半径,若在一个簇头竞争半径范围内出现另一个簇头,则选择剩余能量多的节点作为此区域的簇头,另一个节点自动成为普通节点;位于簇头竞争半径范围内的邻居节点即成为簇成员节点,对于那些可能并不在所有选出簇头竞争半径内的节点,选择加入距它最近的簇头;控制服务器得到簇头集合和簇成员集合后生成簇头通知包,发送到对应的簇头,簇头收到通知包后生成与之相对应的流表项,并产生相对应的簇成员通知包,发送到相对应的簇成员节点;簇头根据传感器控制服务器下发的指令指示簇内节点执行相应的任务,并为簇内所有普通节点构建TDMA调度。
4.根据权利要求1所述的基于扰动粒子群优化的SDWSN能耗均衡路由算法,其特征在于:所述步骤S3中的簇头更新的方式具体为:基于扰动粒子群优化的能耗均衡路由算法(extremum disturbed particle swarm optimization based energy-balanced routing algorithm,tPSOEB)采用每周期一轮全局分簇和动态的k轮局部簇头更新;在以上分簇阶段完成后,传感器控制服务器依据当前分簇情况,在每个簇内选出作为代理簇头的节点,代理簇头的选择依据簇内节点的适应度来决定;适应度的计算公式为:其中, 为簇内成员节点的平均剩余能量;E(ONi)为节点ONi的剩余能量;d(ONi,CS)为节点ONi到传感器控制服务器的距离; 为簇内成员节点到控制服务器距离
的平均值; 为节点ONi到簇内成员节点的平均距离; 为簇内成员节点到簇
内其余节点平均距离的均值;
如果簇内节点ONi的适应度小于λ倍当前簇头节点的适应度,λ≥1,则该成员节点作为代 理簇头;一个簇内代理簇头的个数即为该簇局部簇头更新的次数;设簇Cj中代理簇头的个数为 则全网的局部簇头更新次数为:。
5.根据权利要求1所述的基于扰动粒子群优化的SDWSN能耗均衡路由算法,其特征在于:所述步骤S2具体为:传感器控制服务器选出全网的簇头后,利用收集到的簇头的能量信息、位置信息、分簇后簇内普通节点数和任务的Qos需求信息,以自己为根节点采用Dijkstra算法构建最短路由树;
若d(CNi,CNj)<δCNi.Rc,则簇头CNi可一跳与簇头CNj通信,其中δ是使簇头CNi有相邻簇头的最小正整数;d(CNi,CNj)为簇头CNi与CNj的距离;
为构建最短路径树,传感器控制服务器首先通过集中式的最小跳路由发现,得到网络中所有可用链路集合;其过程为,首先引入一个距离阈值TDmax,若簇头与控制服务器的距离小于阈值则采用单跳方式传输数据,找到所有可一跳与控制服务器通信的簇头集合CN1hop,将这些单跳链路加入总可用链路,重复这一过程,找到所有可一跳与CN1hop通信的簇头集合,将所得单跳链路加入总可用链路,直至网络中所有簇头都能通过一跳或多跳将数据发送给控制服务器;
为找出最佳路由路径,定义链路权值为:
其中,ωij表示链路(CNi,CNj)的权值;Ec(CNi,CNj)表示链路(CNi,CNj)传输一个数据包所消耗的能量;E(CNj)表示下一跳簇头CNj的剩余能量;|MNj|表示下一跳簇头CNj的成员节点数; 表示所有可一跳与CNi通信的簇头的成员节点数均值;链路权值由链路能量消耗,下一跳簇头的剩余能量以及下一跳簇头的成员节点数决定;链路能耗越大、簇头剩余能量越低、簇内成员节点数越多,ωij的取值就越大,簇头CNj要负责数据转发的概率越小;传感器控制服务器由式(13)得到每条链路的权值后,采用Dijkstra算法计算出每个簇头传输数据的最优路径,生成对应簇头的流表项并发送给相对应的簇头,多跳路由建立。