1.一种具有移动Sink节点的无线传感网生存时间优化方法,其特征在于:所述优化方法包括如下步骤:
1)首先,网络启动后,Sink节点广播信息查询包,接收传感节点的位置坐标信息,并添加到Sink节点的传感节点信息表中;
2)Sink节点分析约束条件,过程如下:
a1)分析数据传输时延约束,根据Sink节点沿着已选路径移动一轮的停留时间和不能大于允许的最大数据传输时延,获得如下公式
Σ p t p = t d e l a y - - - ( 1 ) ]]>
其中,tp表示Sink在网格中心p上的停留时间,tdelay表示允许的最大数据传输时延,考虑到Sink节点在移动过程中也在收集数据,则将Sink节点的移动数据收集过程认为由在若干个网格中心上停留一段时间的静态数据收集过程组成,因此根据Sink节点在网格中心p上的停留时间需要大于或等于相邻网格间的移动时间,获得如下公式
t p ≥ d p / v , ∀ p - - - ( 2 ) ]]>
其中,dp表示相邻网格中心间的距离,v表示Sink节点的移动速率;
a2)分析节点覆盖约束,计算传感节点i到Sink节点停留位置p的距离dgip和到邻居节点j的距离dij
dg i p = ( Px i - gx p ) 2 + ( Py i - gy p ) 2 2 - - - ( 3 ) ]]>
d i j = ( Px i - Px j ) 2 + ( Py i - Py j ) 2 2 , j ∈ N i - - - ( 4 ) ]]>
其中,Ni表示传感节点i的邻居传感节点集合,(Pxi,Pyi)表示传感节点i的位置坐标,(gxp,gyp)表示当前Sink节点的停留位置坐标;
当Sink节点停留在网格中心p时,计算每一个传感节点到Sink节点的数据传输跳数为
h i p = 1 , dg i p < d m a x min j ∈ N i ( h i j p ) , d i j < d m a x a n d dg i p ≥ d m a x - - - ( 5 ) ]]>
其中,dmax表示传感节点的最大通信距离,获得传感节点是否在Sink节点的数据通信范围内的判断公式
C i p = 1 , h i p ≤ k 0 , h i p > k - - - ( 6 ) ]]>
其中,k表示Sink节点的数据收集跳数,表示传感节点在Sink节点的数据通信范围内的状态指示符;
根据传感节点最小跳数的定义,要求Sink节点的移动路线保证其数据收集能覆盖到所有传感节点,不能存在孤立节点,则获得节点覆盖约束
Σ p C i p ≥ 1 , ∀ i - - - ( 7 ) ]]>
a3)分析数据发送约束,在实际无线传感网系统中,传感节点的数据存储空间有限,当需要缓存的数据超过了最大存储容量,则将最新的数据替换最早的数据,因此当Sink节点停留在网格中心p时,计算传感节点需要发送的数据量约束
0 ≤ C i p g i p ≤ b i p - 1 + t p S i , ∀ i - - - ( 8 ) ]]>
其中,表示当Sink节点停留在网格中心p时,传感节点i发送给Sink节点的数据量,Si表示传感节点i的数据感知速率,表示当Sink节点在前一个网格中心上收集完数据后,传感节点i的剩余数据缓存量;
当Sink节点停留在网格中心p收集完数据后,计算每一个传感节点的剩余数据缓存量为
b i p = b t h , b i p - 1 + t p S i - C i p g i p ≥ b t h b i p - 1 + t p S i - C i p g i p , 0 ≤ b i p - 1 + t p S i - C i p g i p < b t h , ∀ i - - - ( 9 ) ]]>
其中,bth表示传感节点的最大存储容量;
a4)分析能量约束,根据每一个传感节点的能耗不大于其初始能量,获得能量约束公式
T Σ p C i p t p e g p Σ p C i p t p ≤ E i n , ∀ i - - - ( 10 ) ]]>
其中,T表示网络生存时间,Ein表示传感节点的初始能量,表示Sink节点停留在网络中心p上收集数据时,传感节点i的单位时间能耗,与所采用的数据路由算法有关;
a5)分析网格选择约束,Sink节点从初始位置p1开始,依次停留在向量P中的各个位置上收集数据,当完成停留位置的数据收集后,反向沿着移动路径收集数据,其中,Sink节点移动路径经过的网格中心向量P为(p1,p2,...,pv,...,pNv),Nv表示Sink节点移动路径经过的网格中心数量,获得判断两网格相邻的公式
L p v , p w = 1 , ( Px p v - Px p w ) 2 + ( Py p v - Py p w ) 2 2 ≤ d p 0 , o t h e r s - - - ( 11 ) ]]>
其中表示网格中心pv和pw相邻的指示符,表示网格中心pv和pw相邻,获得网格选择约束为
L p v , p v + 1 = 1 , ∀ p v ∈ { P - p N v } - - - ( 12 ) ; ]]>
建立数据传输时延和跳数受限的网络生存时间优化模型为
m a x P min i ( T i ) - - - ( 15 ) ]]>
s . t . Σ p t p = t d e l a y - - - ( 1 ) ]]>
t p ≥ d p / v , ∀ p - - - ( 2 ) ]]>
Σ p C i p ≥ 1 , ∀ i - - - ( 7 ) ]]>
0 ≤ C i p g i p ≤ b i p - 1 + t p S i , ∀ i - - - ( 8 ) ]]>
b i p = b t h , b i p - 1 + t p S i - C i p g i p ≥ b t h b i p - 1 + t p S i - C i p g i p , 0 ≤ b i p - 1 + t p S i - C i p g i p < b t h , ∀ i - - - ( 9 ) ]]>
T Σ p C i p t p e g p Σ p C i p t p ≤ E i n , ∀ i - - - ( 10 ) ]]>
L p v , p v + 1 = 1 , ∀ p v ∈ { P - p N v } - - - ( 12 ) ]]>
C i p ∈ ( 0 , 1 ) , 0 ≤ b i p ≤ b t h - - - ( 16 ) ]]>
其中,Ti表示传感节点i的生存时间,tp表示Sink在网格中心p上的停留时间,tdelay表示允许的最大数据传输时延,dp表示相邻网格中心间的距离,v表示Sink节点的移动速率,表示传感节点在Sink节点的数据通信范围内的状态指示符,表示当Sink节点停留在网格中心p时,传感节点i发送给Sink节点的数据量,Si表示传感节点i的数据感知速率,表示当Sink节点在前一个网格中心上收集完数据后,传感节点i的剩余数据缓存量,bth表示传感节点的最大存储容量,T表示网络生存时间,Ein表示传感节点的初始能量,表示Sink节点停留在网络中心p上收集数据时,传感节点i的单位时间能耗,与所采用的数据路由算法有关,表示网格中心pv和pw相邻的指示符,P表示Sink节点移动路径经过的网格中心向量,pv表示网格v的中心;
3)Sink节点采用修正遗传算法求解网络生存时间优化模型,计算网络生存时间、Sink节点移动路径和在每一个停留位置上的停留时间的最优方案,过程如下:
b1)初始化迭代次数g=0,当前染色体个数m=0,网格中心位置的交叉概率α1=0.5,停留时间的交叉概率α2=0.5,染色体发生变异概率β1=0.25,基因发生变异概率β2=0.05,其中,Sink节点经过的网格中心位置和在每一个停留位置上的停留时间组成一个染色体,即向量
初始化传感节点全覆盖的NM个染色体,其中NM表示染色体的个数,随机选择一个网格中心作为初始位置,随机选择邻居网格中心作为下一个停留位置,当选择的网格中心数量超过阈值或者周围所有邻居网格中心都已经被选为停留位置,则停止选择,获得一条移动路径;分析该移动路径是否符合模型(15)的约束条件(7),如果不符合,则存在孤立节点,寻找覆盖最多孤立节点的网格中心,将该网格中心添加到移动路径中,增加未被选择的网格中心使移动路径符合约束条件(12)且增加的路径长度最短;当该移动路径的长度大于阈值,从中选择长度为阈值的前一部分路径,判断该路径是否全覆盖传感节点;如果不符合,则放弃该路径,重新开始寻找新的路径,否则根据所选择的移动路径,随机生成每一个停留位置的停留时间且总和不超过数据传输时延,获得染色体向量;循环上述操作,直到获得传感节点全覆盖的NM个染色体;
b2)g=g+1,根据染色体和采用的数据路由算法,计算所有染色体的适应度,即Sink节点在每一个网格中心p停留时间tp时间,采用数据路由算法收集其数据通信范围内的传感节点数据,当Sink节点移动到下一个网格中心时,各个传感节点采用式(9)更新自身的数据存储器,循环上述操作,直到Sink节点完成沿着初始位置到结束位置,再返回初始位置的一次数据采集后,执行式(13)计算节点的生存时间,
T i = E i n Σ p C i p t p e g p * Σ p C i p t p - - - ( 13 ) ]]>
执行式(14)计算网格生存时间
T = m i n i ( T i ) - - - ( 14 ) ]]>
b3)选择最优染色体,根据所有染色体的适应度,直接选择适应度最大的染色体继承到下一代种群中;
b4)执行交叉操作,根据轮盘赌策略选择1个染色体和当前最优染色体进行交叉,形成一个新的染色体;
b5)执行变异操作,产生一个0-1随机数,如果大于染色体发生变异概率β1,则跳到步骤b6),否则根据步骤b4)中的染色体长度值Nc2,循环执行Nc2次以下操作:产生一个0到1之间的随机数,当该随机数小于基因发生变异概率β2,则随机产生一个新的基因,替换染色体中对应基因;
b6)分析所获得的染色体是否符合约束(1),(2),(7),(12),当当前染色体违反约束条件(12)时,查找和删除重复网格中心,计算遍历当前染色体中所有网格中心的路径向量;如果当前路径向量中相邻两个元素之间距离大于相邻网格中心距离dp,则存在若干个间隔网格中心,选择和添加使Sink节点在该两个元素之间移动的距离最短的网格中心,并添加所选网格中心上的初始停留时间dp/v,获得一个新的染色体;当当前新的染色体违反约束条件(7),寻找孤立节点,添加网格中心使增加的移动距离最短;如果移动路径的距离超出阈值,截取开头距离为阈值的路径,判断是否全覆盖节点;如果仍存在孤立节点,则放弃该染色体,跳到步骤b2),否则增加新增网格中心的初始停留时间dp/v,当新的染色体中停留时间违反约束条件(2),修改该停留时间为dp/v;如果新的染色体违反约束条件(1),调整所有停留时间为
t p ′ = d p / v + ( t p - d p / v ) * ( t d e l a y - N v d p / v ) / Σ p ( t p - d p / v ) , Σ p t p > t d e l a y ( t p ) * ( t d e l a y ) / Σ p ( t p ) , Σ p t p < t d e l a y , ∀ p - - - ( 17 ) ]]>
且m=m+1;
b7)如果m小于或等于NM,则返回步骤b4),否则如果g小于或等于Ng,其中,Ng表示迭代次数,则返回步骤b2),否则获得网络生存时间、Sink节点移动路径和在每一个停留位置上的停留时间的最优方案。