发明内容
本发明的目的是克服现有技术中存在的不足,提供一种基于自适应邻域CSA算法的无线传感器网络节点布局方法,其操作方便,计算复杂度低,具有高效搜索和全局搜索的能力,能达到实现最佳空间覆盖的效果。
按照本发明提供的技术方案,所述基于自适应邻域CSA算法的无线传感器网络节点布局方法,所述无线传感器网络节点布局方法包括如下步骤:
1、随机生成由q个粒子组成的初始搜索群体{S10,L,Sq0},每一个粒子代表一种N个传感节点位置分布方案;N个传感器节点分布于二维平面监测区域Q内,将二维平面监测区域数字离散化为a×b个格点;设第i个粒子对应的无线传感器网络节点初始分布为Si0,设定初始温度为T0、外循环迭代计数器初值t=0、内循环的迭代次数Kmax、邻域为mnew,初始邻域大小mold,且mnew=mold;外循环退火开始;
2、设置内循环计数器初值k=0;
3、利用公式R
i(S
ik)=∑
jρ
j(S
ik)/(a×b)(j=1,L,ab,i=1,L,q)计算各个粒子的网络覆盖率,其中:
其中,(xi,yi,r)表示以节点si的坐标(xi,yi)为圆心,感知半径为r的圆;为格点A(x,y)与传感节点si之间的距离;x,y分别表示格点A在监测区域的横、纵坐标;
4、对每个粒子在邻域m
new范围内根据公式
更新当前粒子S
ij产生新网络分布
其中λ是在区间[-1,1]上的随机数,计算新网络覆盖率
以及
和R
i(S
ik)的差,记
5、根据Metropolis接受准则,如果Δ≥0,则接收新状态
否则,以概率
6、若k<Kmax,则令k:=k+1,转步骤3;否则,步骤7;
7、判断是否达到需要调整邻域大小的时间;如果达到调整邻域时间,则利用公式mnew=mold×g(p)进行自适应调整邻域大小,并重置mold=mnew,然后转到步骤8;否则,直接转到步骤8;
其中:
p是在给定退火时间内新状态接受转移次数与总转移次数的比值,c∈[0,1]表示乘子;
8、如果未达到冷却状态,则令t:=t+1,采用Tt+1=T0/ln(t+1)降火策略,降低当前温度,转到步骤2;否则,输出当前最优解,停止。
所述初始邻域mold=1。
本发明与已有技术相比具有以下优点:本发明节点布局优化技术将耦合思想整合到模拟退火算法中,结合了自适应邻域的功能,并充分利用了搜索过程粒子间的演化信息,在搜索时既向“优化”方向搜索,又按一定的概率向“劣化”方向搜索,避免了算法早熟收敛,从而大大提高了优化搜索效率和性能,使搜索粒子能容易跳出局部最优,增强算法的全局搜索能力,并弥补了基本模拟退火算法对初始参数选取鲁棒性差的缺点,由于搜索粒子间的耦合作用,搜索过程中粒子之间能交互信息,从而能实现协同化和智能化地探索空间区域,尤其是当算法相关参数较差的情况下,接收概率函数中的耦合作用能帮助模拟退火算法更快地定位全局最优解区域,加快算法收敛速度,增强全局寻优能力。
具体实施方式
下面结合具体附图和实施例对本发明作进一步说明。
在使用本发明所涉及无线传感器网络节点布局技术时,考虑一个二维平面监测区域Q,将其数字离散化为a×b个格点,目标传感节点在该区域上参数相同的传感器节点数目为N,每个节点的坐标均已知,感知半径均为r。传感器节点集表示S={s1,s2,L,sN},格点A(x,y)(x,y分别表示点A在监测区域的横、纵坐标)被si所覆盖的事件发生的概率ρ(x,y,si)表示为
其中:(x
i,y
i,r)表示以节点s
i的坐标(x
i,y
i)为圆心,感知半径为r的圆;
为格点A(x,y)与节点s
i之间的距离。对于具体的二维平面区域覆盖问题,可以将目标区域离散为许多格点,用所有格点被传感器节点覆盖的覆盖率来代表目标区域的区域覆盖率,从而将区域覆盖率的问题转换为点覆盖问题。节点集S的区域覆盖率为R(S)=∑
j ρ
j(S)/(a×b)(j=1,L,ab),即R(S)为节点集S的覆盖面积与监测区域Q的总面积之比,其中,ρ
j(S)为第j个格点对节点集的联合测量概率。
区域覆盖率的计算步骤如下:
(a)、计算第j个格点对每个传感器节点的覆盖率。
(b)、计算第j个格点对传感器节点集合S的联合覆盖率ρj(S)。
(c)、重复步骤(a)和(b)计算监测区域每一个格点对传感器节点集S的联合覆盖率。
(d)、根据式R(S)=∑j ρj(S)/(a×b)计算传感器节点集S的区域覆盖率R(S),并将R(S)作为耦合模拟退火覆盖优化算法的优化目标函数。
本发明所涉及的自适应邻域CSA算法基本思想是:在传感监测区域随机构建q个搜索粒子,每个粒子并行地进行模拟退火过程,这些单个的模拟退火过程通过一个接收概率函数相互耦合,在同一退火温度和更新邻域下利用随机扰动产生不同的状态,利用Metropolis准则选择性地接受每个粒子的新状态,引导搜索群体跳出局部最优;在降温过程中,根据一定的退火时间间隔,利用Metropolis准则中的接受转移数和总转移数之间的比率来调整状态更新邻域的大小,以期更快找到所需的解;接收概率函数中的耦合参数与各粒子状态的目标函数有关,接收概率函数与耦合项的联合包含了全局优化趋势的信息,各粒子间的耦合使得每个粒子都能共享此信息,从而使得粒子群体能快速而近似全局地实现覆盖优化。
如图1所示:实现本发明无线传感器网络节点布局的方法包括如下步骤:
步骤1、随机生成由q个粒子组成的初始搜索群体{S10,L,Sq0},每一个粒子代表一种N个传感节点位置分布方案;N个传感器节点分布于二维平面监测区域Q内,将二维平面监测区域数字离散化为a×b个格点;设第i个粒子对应的无线传感器网络节点初始分布为Si0,设定初始温度为T0、外循环迭代计数器初值t=0、内循环的迭代次数Kmax、邻域为mnew,初始邻域大小mold,且mnew=mold;
迭代次数Kmax与初始温度T0根据具体的监测区域Q的面积与传感器节点数目来灵活设置,初始温度T0应选得足够高以使几乎产生的所有候选解都能被接收,从而避免算法陷入局部最优;一般地令Kmax=100,T0=100即可;q个搜索粒子的具体选择根据具体问题规模进行设定;邻域的大小不能太大也不能太小,需要有一个邻域调整区域,一般地令mold=1;降温过程为外循环,并令外循环退火开始;
步骤2、设置内循环计数器初值k=0;
步骤3、利用公式R
i(S
ik)=∑
jρ
j(S
ik)/(a×b)(j=1,L,ab,i=1,L,q)计算各个粒子的网络覆盖率,其中:
其中,(xi,yi,r)表示以节点si的坐标(xi,yi)为圆心,感知半径为r的圆;为格点A(x,y)与节点si之间的距离;x,y分别表示格点A在监测区域的横、纵坐标;
步骤4、对每个粒子在邻域m
new范围内根据公式
更新当前粒子S
ik产生新网络分布
其中λ是在区间[-1,1]上的随机数,计算新网络覆盖率
以及
和R
i(S
ik)的差,记
步骤5、根据Metropolis接受准则,如果Δ≥0,则接收新状态
否则,以概率
所采用的Metropolis准则与粒子状态的接收概率函数有关,该接收概率函数耦合了所有搜索粒子状态信息,从而既能保证接收好的优化解,又能根据粒子的全局搜索信息以一定概率接受恶化了的解;一般地,α确定后不再进行调整;
步骤6、若k<Kmax,则令k=k+1,转步骤3;否则,步骤7;
步骤7、判断是否达到需要调整邻域大小的时间;如果达到调整邻域时间,则利用公式mnew=mold×g(p)进行自适应调整邻域大小,并重置mold=mnew,然后转到步骤8;否则,直接转到步骤8;
其中:
p是在给定退火时间内新状态接受转移次数与总转移次数的比值,c∈[0,1]表示乘子;一般地,相应邻域大小的调整时间设定没有固定的标准,但调整邻域时间也不能太短,一般是根据温度迭代数来选取,如温度降低的迭代次数要60次,那么可以隔10次温度迭代循环后就调整一下邻域大小;
步骤8、如果未达到冷却状态,则令t:=t+1,采用Tt+1=T0/ln(t+1)降火策略,降低当前温度,转到步骤2;否则,输出当前最优解,停止。
下面通过一个仿真实验来说明本发明的具体实施方式,并对发明的算法进行测试。设传感节点监测区域Q为一个30m×30m的区域,随机投放N=30个无线传感器,每个传感器的传感半径r=3m。为了方便,将区域划分成a×b=30×30的栅格,利用上述本发明提出的算法进行覆盖优化,其中,搜索粒子数q=6,初始温度T
0=100,内循环迭代总次数K
max=100,结束温度为0.1,接收概率
和
的调整权重α=0.5,初始邻域大小m
old=1,计算邻域大小公式中的乘子c=0.5。图2和图3显示了覆盖优化结果。在优化过程第0代时,6个粒子中最好的网络覆盖率为56.1%,见图2所示;在优化算法结果时,网络覆盖率达到74.2%,见图3所示。另外,在利用基本模拟退火算法和本发明算法分别进行100次优化后,前者的网络节点优化覆盖率平均值为72.10%,后者的网络节点优化覆盖率平均值为78.74%,网络节点优化覆盖率的箱形图如图4所示。由此可见,本发明设计的算法要优于基本模拟退火算法,并且具有更好的鲁棒性。