基于异质双种群粒子群优化的WSN节点定位方法转让专利

申请号 : CN201310467407.0

文献号 : CN103517413B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郭肇禄岳雪芝刘建生熊小峰刘松华张克俊谢大同

申请人 : 江西理工大学

摘要 :

本发明公开了一种基于异质双种群粒子群优化的WSN节点定位方法,该方法将自然界中动物的群落自适应活动行为融合到了粒子群优化算法中,基于锚节点和未知传感器节点的距离设计适应值函数,模拟自然界中动物的群落活动方式采用两个异质子种群来保持种群的良好多样性,并且模拟自然界中不同群落中的动物具有不同的偏好习惯的自然规律分别在这两个子种群中融合复合反向学习策略和精英混沌搜索策略,对两个子种群执行不同的搜索方式实现多种搜索模式的优势互补以增强全局搜索能力,提高定位的精度。同时,还模拟自然界中不同群落之间的动物的交流行为在每间隔指定的演化代数,两个子种群相互交换一些个体,实现优质搜索信息的共享和导向作用以加快收敛速度,提高定位的实时性。

权利要求 :

1.一种基于异质双种群粒子群优化的WSN节点定位方法,其特征在于,包括以下步骤:步骤1,用户自定义初始化参数,所述初始化参数包括锚节点个数K,K个锚节点位置向量Z,其中第j个锚节点的位置为(Zj×3-2,Zj×3-1,Zj×3),未知传感器节点个数D,子种群大小SubPopsize,粒子最大速度绝对值Vmax,粒子加速因子c1和c2,学习概率Pl,迁移间隔代数Mt,迁移大小Mn,迁移最优率Bestp,最大评价次数MAX_FEs;

步骤2,通过锚节点和未知传感器节点之间发射并接收信号强度的传统方法测得所有未知传感器节点到所有锚节点的距离记录到D行K列的矩阵Dis中,其中Disj,m为第j个未知传感器节点到第m个锚节点的距离;

步骤3,令交叉率Cri=0.5,其中i=1,...,SubPopsize,当前演化代数t=0,当前评价次数FEs=0;

步骤4,随机产生两个初始子种群SubP1t={A1,A2,...,Ai,...,ASubPopsize},2

SubPt={B1,B2,...,Bi,...,BSubPopsize},其中:i=1,...,SubPopsize,并且Ai和Bi分别为子种群SubP1t和SubP2t中的第i个粒子,它们的随机产生公式分别为:Ai,2,j=-Vmax+rand(0,1)·2·VmaxBi,2,j=-Vmax+rand(0,1)·2·Vmax其中j=1,...,D×3,并且D为未知传感器节点个数;Ai,1和Bi,1分别为在子种群SubP1t和SubP2t中的第i个粒子所存储的D个未知传感器节点的探测位置,其中在子种群SubP1t中第i个粒子所存储的第j个未知传感器节点的探测位置为(Ai,1,j×3-2,Ai,1,j×3-1,Ai,1,j×3);Ai,2和Bi,2分别为在子种群SubP1t和SubP2t中的第i个粒子在每一维度上的速度大小;rand(0,1)为在[0,1]之间产生均匀分布的随机数函数;L1和U1分别为传感器节点分布区域的x轴坐标的下界和上界;L2和U2分别为传感器节点分布区域的y轴坐标的下界和上界;L3和U3分别为传感器节点分布区域的z轴坐标的下界和上界;

步骤5,计算两个子种群SubPt1和SubPt2中每个粒子的适应值,其中任意一粒子Ai的适应值Fiti按以下公式计算:其中K为锚节点个数,D为未知传感器节点个数,(Zm×3-2,Zm×3-1,Zm×3)为第m个锚节点的三维坐标位置,Disj,m为第j个未知传感器节点到第m个锚节点的距离;当前评价次数FEs=FEs+SubPopsize×2,并保存子种群SubP1t和SubP2t中适应值最小的粒子为最优粒子;

步骤6,计算当前代的惯性权值 其中t为当前演化代数,为最大演化代数;

步骤7,在[0,1]之间产生一个服从均匀分布的随机数r1;如果r1小于学习概率Pl则执行步骤8,否则执行步骤9;

步骤8,对子种群SubPt1中的每个粒子执行复合反向学习操作产生复合反向种群OPt={OA1,OA2,...,OASubPopsize};然后计算复合反向种群OPt中每个粒子的适应值,再从SubPt1∪OPt中选择出适应值最小的前SubPopsize个粒子作为下一代子种群 然后转到步骤

10;

步骤9,对子种群SubPt1执行传统粒子群优化算法的操作算子,按以下公式更新每个粒子的速度和位置产生下一代子种群Ai,2,j=Wt×Ai,2,j+c1×rand1×(ApBesti,j-Ai,1,j)+c2×rand2×(AgBestj-Ai,1,j)Ai,1,j=Ai,1,j+Ai,2,j其中,Wt为当前代的惯性权值,c1和c2为粒子加速因子,rand1和rand2分别为[0,1]之间的随机数,ApBesti和AgBest分别为子种群SubPt1的第i个粒子的历史最优位置和全局最优位置;当前评价次数FEs=FEs+SubPopsize;

步骤10,在[0,1]之间产生一个服从均匀分布的随机数r2;如果r2小于学习概率Pl则执行步骤11,否则执行步骤12;

步骤11,对子种群SubPt2执行精英混沌学习操作算子产生下一代子种群 然后转到步骤13;

步骤12,对子种群SubPt2执行传统粒子群优化算法的操作算子,按以下公式更新每个粒子的速度和位置产生下一代子种群Bi,2,j=Wt×Bi,2,j+c1×rand1×(BpBesti,j-Bi,1,j)+c2×rand2×(BgBestj-Bi,1,j)Bi,1,j=Bi,1,j+Bi,2,j其中,Wt为当前代的惯性权值,c1和c2为粒子加速因子,rand1和rand2分别为[0,1]之间的随机数,BpBesti和BgBest分别为子种群SubPt2的第i个粒子的历史最优位置和全局最优位置;当前评价次数FEs=FEs+SubPopsize;

步骤13,如果当前演化代数t除以迁移间隔代数Mt的余数等于0,则执行步骤14,否则执行步骤17;

步骤14,在子种群SubP1t中选择出前Mn×Bestp个最优粒子,并随机选择出Mn×(1-Bestp)个粒子,其中Mn为迁移大小,Bestp为迁移最优率;然后把从子种群SubP1t中选择出来

1 1 1

的这Mn个粒子组成迁移子种群MPt,并从子种群SubP t中删除在迁移子种群MPt中存在的粒子;

步骤15,在子种群SubP2t中选择出前Mn×Bestp个最优粒子,并随机选择出Mn×(1-Bestp)个粒子,其中Mn为迁移大小,Bestp为迁移最优率;然后把从子种群SubP2t中选择出来

2 2 2

的Mn个粒子组成迁移子种群MP t,并从子种群SubP t中删除在迁移子种群MP t中存在的粒子;

步骤16,把迁移子种群MP1t中的粒子加入到子种群SubP2t中,并把迁移子种群MP2t中的粒子加入到子种群SubP1t中;

步骤17,保存子种群SubP1t和SubP2t中适应值最小的粒子为最优粒子ABgBestt;当前演化代数t=t+1;

步骤18,重复步骤6至步骤17直至当前评价次数FEs达到MAX_FEs后结束,执行过程中得到的最优粒子ABgBestt即为各个未知传感器节点的位置。

2.根据权利要求1所述的基于异质双种群粒子群优化的WSN节点定位方法,其特征在于,所述步骤8包括以下步骤:步骤8.1,按以下公式计算子种群SubP1t当前的搜索下界SL∈RD×3和上界SU∈RD×3:SLj=min(Ai,1,j)

SUj=max(Ai,1,j)

其中i=1,...,SubPopsize;j=1,...,D×3;

步骤8.2,按以下公式计算子种群SubP1t的搜索中心点OC∈RD×3:其中j=1,...,D×3

步骤8.3,找出子种群SubP1t中的最优粒子AgBest,并令记数器i=1;反向种群OPt=φ;

步骤8.4,如果记数器i大于子种群大小SubPopsize,则转到步骤8.15,否则转到步骤

8.5;

步骤8.5,在[0,1]之间产生一个服从均匀分布的随机数GK作为反向缩放因子;

步骤8.6,令复合反向粒子OXi=Ai,记数器j=1;

步骤8.7,如果记数器j大于未知传感器节点个数D×3,则转到步骤8.12,否则转到步骤

8.8;

D×3

步骤8.8,按以下公式计算反向参考点ROj∈R :步骤8.9,按以下公式计算复合反向粒子OXi:

OXi,1,j=ROj×2-Ai,1,j

步骤8.10,令下标m等于j除以3的余数,并判断OXi,1,j是否满足以下条件1或条件2其中任意一条:条件1:OXi,1,j小于传感器节点分布区域坐标的取值范围的下界Lm;

条件2:OXi,1,j大于传感器节点分布区域坐标的取值范围的上界Um,若满足则令OXi,1,j为在(SLj,SUj)之间产生一个随机数后转到步骤8.11,否则直接转到步骤8.11;

步骤8.11,令记数器j=j+1后返回至步骤8.7;

步骤8.12,计算复合反向粒子OXi的适应值,保存复合反向粒子OXi的自身最优适应值和位置,并令复合反向种群OPt=OPt∪{OXi};

步骤8.13,如果复合反向粒子OXi的适应值大于粒子Ai的适应值,则令交叉率Cri=rand(0,1),否则交叉率Cri的值保持不变;

步骤8.14,令记数器i=i+1后返回至步骤8.4;

步骤8.15,当前评价次数FEs=FEs+SubPopsize;从SubPt1∪OPt中选择出适应值最小的前SubPopsize个粒子作为下一代子种群步骤8.16,转到步骤10。

3.根据权利要求1所述的基于异质双种群粒子群优化的WSN节点定位方法,其特征在于,所述步骤11包括以下步骤:步骤11.1,按以下公式计算子种群SubP2t当前的搜索下界SL∈RD×3和上界SU∈RD×3:SLj=min(Bi,1,j)

SUj=max(Bi,1,j)

其中i=1,...,SubPopsize;j=1,...,D×3;

步骤11.2,在[0,1]之间产生两个服从均匀分布的随机数K1和K2作为沌混运动初始值;

如果沌混运动初始值K1或者K2等于0.25,0.50或0.75,则再重新产生它的值;

步骤11.3,找出子种群SubP2t中的最优粒子BgBest,并令记数器i=1;

步骤11.4,如果记数器i大于子种群大小SubPopsize,则转到步骤11.14,否则转到步骤

11.5;

步骤11.5,令记数器nl=0;

步骤11.6,令记数器nl=nl+1;

步骤11.7,如果记数器nl大于未知传感器节点个数D除以5,则转到步骤11.13,否则转到步骤11.8;

步骤11.8,令精英混沌粒子CXi=Ai,按混沌运动方程计算K1和K2的值:K1=4.0×K1×(1.0-K1);

K2=4.0×K2×(1.0-K2)

步骤11.9,令维数索引 随机权值W=rand(0,1);

步骤11.10,按以下公式计算精英混沌粒子CXi:V1=Ai,1,j+K2×(BgBesti,1,j-Ai,1,j)V2=SLj+K1×(SUj-SLj)

CXi,1,j=W×V1+(1.0-W)×V2

其中V1为精英搜索值,V2为混沌搜索值;

步骤11.11,令下标m等于j除以3的余数,并判断CXi,1,j是否满足以下条件1或条件2其中任意一条:条件1:CXi,1,j小于传感器节点分布区域坐标的取值范围的下界Lm;

条件2:CXi,1,j大于传感器节点分布区域坐标的取值范围的上界Um,若满足则令CXi,1,j为在(SLj,SUj)之间产生的一个随机数后转到步骤11.12,否则直接转到步骤11.12;

步骤11.12,计算精英混沌粒子CXi的适应值,当前评价次数FEs=FEs+1;如果精英混沌粒子CXi的适应值小于粒子Ai的适应值,则Ai=CXi,并保存粒子Ai的自身最优适应值和位置,然后转到步骤11.13,否则Ai保持不变,并且转到步骤11.6;

步骤11.13,令记数器i=i+1后返回至步骤11.4;

步骤11.14,转到步骤13。

说明书 :

基于异质双种群粒子群优化的WSN节点定位方法

技术领域

[0001] 本发明属于无线传感网络技术领域,涉及一种基于异质双种群粒子群优化的WSN(无线传感器网络)节点定位方法。

背景技术

[0002] 无线传感器网络实现了物理世界、计算机世界和人类社会三元世界之间的有机融合,是当今物联网的末梢神经。由于它具有非常广泛的实际应用前景,已经引起了学术界和工业界的高度重视,被认为是21世纪最有影响力的技术之一。在无线传感网络应用中,无线传感器网络节点的定位是其中的核心支撑技术,它是一个复杂优化问题。而群子粒优化算法是一种模拟鸟群觅食和鱼群聚集等自然界动物群体行为来求解优化问题的有效现代智能优化算法。
[0003] 群子粒优化算法的结构很简单,易于理解和实现,它已经成为了求解优化问题研究领域中一个十分活跃的研究热点。因此人们已经尝试应用群子粒优化算法来解决无线传感器网络节点的定位问题。周书旺等提出了一种基于距离的定位算法,该算法根据未知节点到锚节点的距离,利用粒子群优化算法直接搜索出未知节点的坐标;陈星舟等粒子群优化的方法对DV-Hop算法求出的未知节点坐标进行校正,以减少节点定位误差;王行甫等提出一种传感器节点定位方法,在该方法中各个信标节点根据所述位置信息集分别独立地运行粒子群算法,以分别得到对应的最优粒子位置信息;以及待定位节点对最优粒子位置信息进行检测,以确定待定位节点的坐标位置;张讯等将惯性权重的非线性调整策略及目标值排序的思想引入到粒子群算法中,并将改进后的算法应用于传感器网络节点的定位;蔡绍滨等提出了带有罚函数的无线传感器网络粒子群定位算法,利用罚函数来加快算法的收敛速度和提高定位算法的定位精度;黄艳等提出一种对粒子位置微扰的改进粒子群优化用以无线传感器网络节点定位方法;刘志坤等提出了一种改时的粒子群优化算法来解决无线传感器网络节点自定位,该方法将混沌搜索融合到粒子群优化算法,在一定程度上提高了定位的精度;赵吉等提出了一种基于量子行为粒子群优化算法的无线传感器网络节点定位方法;王新芳等提出了一种基于量子粒子群优化的改进加权质心定位算法,采用该算法来优化WCLA的估计坐标来改善定位误差,并改进收缩扩展系数增强算法的收敛速度。
[0004] 然而在现有的基于粒子群优化的无线传感器网络节点的定位方法中,由于对粒子群优化算法仅进行了一些有限的改进,性能还有待以进一步提高,现有的方法往往存在着全局搜索能力不够,容易陷入局部最优,从而造成定位精度不足,以及收敛速度慢、实时性不强的缺点。

发明内容

[0005] 为了解决现有基于群子粒优化的无线传感器网络节点的定位方法往往存在着收敛速度慢、实时性不强以及容易陷入局部最优,定位误差较大的技术问题,本发明提出了一种基于异质双种群粒子群优化的WSN节点定位方法。该方法基于锚节点和未知传感器节点的距离设计适应值函数,模拟自然界中动物的群落活动方式采用两个异质子种群来保持种群的良好多样性,并且模拟自然界中不同群落中的动物具有不同的偏好习惯的自然规律分别在这两个子种群中融合复合反向学习策略和精英混沌搜索策略,对两个子种群执行不同的搜索方式实现多种搜索模式的优势互补以增强全局搜索能力,提高定位的精度;另外,还模拟自然界中不同群落之间的动物的交流行为在每间隔指定的演化代数,两个子种群相互交换一些个体,实现优质搜索信息的共享和导向作用以加快收敛速度,提高定位的实时性;与同类方法相比,本发明是将自然界中动物的群落自适应活动行为融合到了粒子群优化算法中,是一种模拟自然界中动物的群落自适应活动行为的仿生方法,提高无线传感器网络节点定位的精度和速度。其技术方案如下:
[0006] 一种基于异质双种群粒子群优化的WSN节点定位方法,包括以下步骤:
[0007] 步骤1,用户自定义初始化参数,所述初始化参数包括锚节点个数X,K个锚节点位置向量Z,其中第j个锚节点的位置为(Zj×3-2,Zj×3-1,Zj×3),未知传感器节点个数D,子种群大小SubPopsize,粒子最大速度绝对值Vmax,粒子加速因子c1和c2,学习概率Pl,迁移间隔代数Mt,迁移大小Mn,迁移最优率Bestp,最大评价次数MAX_FEs;
[0008] 步骤2,通过锚节点和未知传感器节点之间发射开接收信号强度的传统方法测得所有未知传感器节点到所有锚节点的距离记录到D行K列的矩阵Dis中,其中Disj,m为第j个未知传感器节点到第m个锚节点的距离;
[0009] 步骤3,令交叉率Cri=05,其中i=1,...,SubPopsize,当前演化代数t=0,当前评价次数FEs=0;
[0010] 步骤4,随机产生两个初始子种群SubP1t={A1,A2,...,Ai,...,ASubPopsize},[0011] SubP2t={B1,B2,...,Bi,...,BSubPopsize},其中:i=1,,SubPopsize,并且Ai和bi分别为子种群SubP1t和SubP2t中的第I个粒子,它们的随机产生公式分别为:
[0012]
[0013] Ai,l,j=-Vmax+rand(0,1)·2·Vmax
[0014]
[0015] Bi,2,j=-Vmax+rand(0,1)·2·Vmax
[0016] 其中j=1,...,D×3,并且D为未知传感器节点个数;Ai,l和Bi,1分别为在子种群SubP1t和SubP2t中的第i个粒子所存储的D个未知传感器节点的探测位置,其中在子种群SubP1t中第i个粒子所存储的第j个未知传感器节点的探测位置为(Ai,l,j×3-2,Ai,l,j×3-1,Ai,l,j×3);Ai,2和Bi,2分别为在子种群Subp1t和SubP2t中的第i个粒子在每一维度上的速度大小;rand(0,1)为在[0,1]之间产生均匀分布的随机数函数;L1和U1分别为传感器节点分布区域的x轴坐标的下界和上界;L2和U2分别为传感器节点分布区域的y轴坐标的下界和上界;L3和U3分别为传感器节点分布区域的z轴坐标的下界和上界;
[0017] 步骤5,计算两个子种群SubPt1和SubPt2中每个粒子的适应值,其中任意一粒子Ai的适应值Fiti按以下公式计算:
[0018]
[0019] 其中K为锚节点个数,D为未知传感器节点个数,(Zm×3-2,Zm×3-1,Zm×3)为第m个锚节点的三维坐标位置,Disj,m为第j个未知传感器节点到第m个锚节点的距离;当前评价次数FEs=FEs+SubPopsize×2,并保存子种群SubP1t和SubP2t中适应值最小的粒子为最优粒子;
[0020] 步骤6,计算当前代的惯性权值 其中t为当前演化代数,为最大演化代数;
[0021] 步骤7,在[0,1]之间产生一个服从均匀分布的随机数rl;如果rl小于学习概率Pl则执行步骤8,否则执行步骤9;
[0022] 步骤8,对子种群SubPt1中的每个粒子执行复合反向学习操作产生复合反向种群OPt={OA1,OA2,...,OASubPopsize};然后计算复合反向种群OPt中每个粒子的适应值,再从SuBPt1∪OPt中选择出适应值最小的前SubPopsize个粒子作为下一代子种群 然后转到步骤10;
[0023] 步骤9,对子种群SubPt1执行传统粒子群优化算法的操作算子,按以下公式更新每个粒子的速度和位置产生下一代子种群
[0024] Ai,2,j=Wt×Ai,2,j+c1×rand1×(ApBesti,j-Ai,l,j)+c2×rand2×(AgBestj-Ai,l,j)Ai,l,j=Ai,l,j+Ai,2,j
[0025] 其中,Wt为当前代的惯性权值,c1和c2为粒子加速因子,rand1和rand2分别为[0,1]之间的随机数,ApBesti和AgBest分别为子种群SubPt1的第i个粒子的历史最优位置和全局最优位置;当前评价次数FEs=FEs+SbuPopsize;
[0026] 步骤10,在[0,1]之间产生一个服从均匀分布的随机数r2;如果r2小于学习概率Pl则执行步骤11,否则执行步骤12;
[0027] 步骤11,对子种群SubPt2执行精英混沌学习操作算子产生下一代子种群 然后转到步骤13;
[0028] 步骤12,对子种群SubPt2执行传统粒子群优化算法的操作算子,按以下公式更新每个粒子的速度和位置产生下一代子种群
[0029] Bi,2,j=Wt×Bi,2,j+c1×rand1×(BpBesti,j-Bi,l,j)+c2×rand2×(BgBestj-Bi,l,j)[0030] Bi,l,j=Bi,l,j+Bi,2,j
[0031] 其中,Wt为当前代的惯性权值,c1和c2为粒子加速因子,rand1和rand2分别为[0,1]之间的随机数,Bpbesti和BgBest分别为子种群SubPt2的第i个粒子的历史最优位置和全局最优位置;当前评价次数FEs=FEs+SbuPopsize;
[0032] 步骤13,如果当前演化代数t除以迁移间隔代数Mt的余数等于0,则执行步骤14,否则执行步骤17;
[0033] 步骤14,在子种群SubP1t中选择出前Mn×Bestp个最优粒子,并随机选择出Mn×(1-Bestp)个粒子,其中Mn为迁移大小,Bestp为迁移最优率;然后把从子种群SubP1t中选择出来的这Mn个粒子组成迁移子种群MP1t,并从子种群SubP1t中删除在迁移子种群MP1t中存在的粒子;
[0034] 步骤15,在子种群SubP2t中选择出前Mn×Bestp个最优粒子,并随机选择出Mn×(1-Bestp)个粒子,其中Mn为迁移大小,Bestp为迁移最优率;然后把从子种群SubP2t中选择出来的Mn个粒子组成迁移子种群MP2t,并从子种群SubP2t中删除在迁移子种群MP2t中存在的粒子;
[0035] 步骤16,把迁移子种群MP1t中的粒子加入到子种群SubP2t中,并把迁移子种群MP2t中的粒子加入到子种群SubP1t中;
[0036] 步骤17,保存子种群SubP1t和SubP2t中适应值最小的粒子为最优粒子ABgBestt;当前演化代数t=t+1;
[0037] 步骤18,重复步骤6至步骤17直至当前评价次数FEs达到MAX-FEs后结束,执行过程中得到的最优粒子ABgBestt即为各个未知传感器节点的位置。
[0038] 进一步优选,所述步骤8包括以下步骤:
[0039] 步骤8.1,按以下公式计算子种群SubP1t当前的搜索下界SL∈RD×3和上界SU∈RD×3:
[0040] SLj=Min(Ai,l,j)
[0041] SUj=max(Ai,l,j)
[0042] 其中i=1,...,SubPopsize;j=1,...,D×3;
[0043] 步骤8.2,按以下公式计算子种群SubP1t的搜索中心点OC∈RD×3:
[0044] 其中j=1,...,D×3
[0045] 步骤8.3,找出子种群SubP1t中的最优粒子Agbest,并令记数器i=1;反向种群OPt=φ;
[0046] 步骤8.4,如果记数器i大于子种群大小SbuPopsize,则转到步骤8.15,否则转到步骤8.5;
[0047] 步骤8.5,在[0,1]之间产生一个服从均匀分布的随机数GK作为反向缩放因子;
[0048] 步骤8.6,令复合反向粒子OXi=Ai,记数器j=1;
[0049] 步骤8.7,如果记数器j大于未知传感器节点个数D×3,则转到步骤8.12,否则转到步骤8.8;
[0050] 步骤8.8,按以下公式计算反向参考点ROj∈RD×3:
[0051]
[0052] 步骤8.9,按以下公式计算复合反向粒子OXi:
[0053] OXi,l,j=ROj+ROj-Ai,l,j
[0054] 步骤8.10,令下标m等于jj除以3的余数,并判断OXi,l,j是否满足以下条件1或条件2其中任意一条:
[0055] 条件1:OXi,l,j小于传感器节点分布区域坐标的取值范围的下界Lm;
[0056] 条件2:OXi,l,j大于传感器节点分布区域坐标的取值范围的上界Um,
[0057] 若满足则令OXi,l,j为在(SLj,SUj)之间产生一个随机数后转到步骤8.11,否则直接转到步骤8.11;
[0058] 步骤8.11,令记数器j=j+1后返回至步骤8.7;
[0059] 步骤8.12,计算复合反向粒子OXi的适应值,保存复合反向粒子OXi的自身最优适应值和位置,并令复合反向种群OPt=OPt∪{OXi};
[0060] 步骤8.13,如果复合反向粒子OXi的适应值大于粒子Ai的适应值,则令交叉率Cri=rand(0,1),否则交叉率Cri的值保持不变;
[0061] 步骤8.14,令记数器i=i+1后返回至步骤8.4;
[0062] 步骤8.15,当前评价次数FEs=FEs+SbuPopsize;从SubPt1∪OPt中选择出适应值最小的前SbuPopsize个粒子作为下一代子种群
[0063] 步骤8.16,转到步骤10。
[0064] 进一步优选,所述步骤11包括以下步骤:
[0065] 步骤11.1,按以下公式计算子种群SUbP2t当前的搜索下界SL∈RD×3和上界SU∈RD×3:
[0066] SLj=min(Bi,l,j)
[0067] SUj=max(Bi,l,j)
[0068] 其中i=1,...,SubPopsize;j=1,...,D×3;
[0069] 步骤11.2,在[0,1]之间产生两个服从均匀分布的随机数K1和K2作为沌混运动初始值;如果沌混运动初始值K1或者K2等于0.25,0.50或0.75,则再重新产生它的值;
[0070] 步骤11.3,找出子种群SubP2t中的最优粒子BgBest,并令记数器i=1;
[0071] 步骤11.4,如果记数器i大于子种群大小SbuPopsize,则转到步骤11.14,否则转到步骤11.5;
[0072] 步骤11.5,令记数器nl=0;
[0073] 步骤11.6,令记数器nl=nl+1;
[0074] 步骤11.7,如果记数器nl大于未知传感器节点个数D除以5,则转到步骤11.13,否则转到步骤11.8;
[0075] 步骤11.8,令精英混沌粒子CXi=Ai,按混沌运动方程计算K1和K2的值:
[0076] K1=4.0×K1×(1.0-K1):
[0077] K2=4.0×K2×(1.0-K2)
[0078] 步骤11.9,令维数索引 随机权值W=rand(0,1);
[0079] 步骤11.10,按以下公式计算精英混沌粒子cXi:
[0080] V1=Ai,l,j+K2×(BgBesti,l,j-Ai,l,j)
[0081] V2=SLj+K1×(SUj-SLj)
[0082] CXi,l,j=W×V1+(1.0-W)×V2
[0083] 其中V1为精英搜索值,V2为混沌搜索值;
[0084] 步骤11.11,令下标m等于j除以3的余数,并判断CXi,l,j是否满足以下条件1或条件2其中任意一条:
[0085] 条件1:CXi,l,j小于传感器节点分布区域坐标的取值范围的下界Lm;
[0086] 条件2:CXi,l,j大于传感器节点分布区域坐标的取值范围的上界Um,
[0087] 若满足则令CXi,l,j为在(SLj,SUj)之间产生的一个随机数后转到步骤11.12,否则直接转到步骤11.12;
[0088] 步骤11.12,计算精英混沌粒子cXi的适应值,当前评价次数FEs=FEs+1;如果精英混沌粒子CXi的适应值小于粒子Ai的适应值,则Ai=CXi,并保存粒子Ai的自身最优适应值和位置,然后转到步骤11.13,否则Ai保持不变,并且转到步骤11.6;
[0089] 步骤11.13,令记数器i=i+1后返回至步骤11.4;
[0090] 步骤11.14,转到步骤13。
[0091] 与现有技术相比,本发明的有益效果:本发明模拟自然界中动物的群落活动方式采用两个异质子种群来保持种群的良好多样性,并且模拟自然界中不同群落中的动物具有不同的偏好习惯的自然规律分别在两个子种群中融合复合反向学习策略和精英混沌搜索策略,对两个子种群执行不同的搜索方式实现多种搜索模式的优势互补以增强全局搜索能力,从而提高定位的精度;另外,还模拟自然界中不同群落之间的动物的交流行为在每间隔指定的演化代数,两个子种群相互交换一些个体,实现优质搜索信息的共享和导向作用,从而加快收敛速度,提高定位的实时性;与同类方法相比,本发明借鉴了自然界中动物群落的自适应活动行为的自然规律,能够降低测距误差的影响,提高了无线传感器网络节点定位的精度和速度。

附图说明

[0092] 图1为无线传感网络节点示意图。

具体实施方式

[0093] 下面结合附图和具体实施例进一步说明本发明的技术方案。
[0094] 本实施例基于图1所示的无线传感器网络节点定位的实际工程问题,在图1中12个方块的表示12个锚节点,50个圆圈表示50个未知传感器节点,本发明的具体实施步骤如下:
[0095] 步骤1,用户自定义初始化参数,所述初始化参数包括锚节点个数K=12,K个锚节点位置向量Z:
[0096] Z=[20.00,11.77,20.72,28.33,92.14,25.73,45.67,92.84,70.01,45.00,91.43,42.42,53.33,42.46,19.36,31.67,61.72,6.83,70.00,115.43,10.86,82.83,60.48,
43.84,86.67,98.89,53.87,95.00,26.59,25.19,103.33,32.09,64.20,116.66,94.08,
47.37]
[0097] 其中第j个锚节点的位置为(Zj×3-2,Zj×3-1,Zj×3),未知传感器节点个数D=50,子种群大小SubPopsize=50,粒子最大速度绝对值Vmax=20,粒子加速因子c1=20和c2=20,学习概率Pl=03,迁移间隔代数Mt=10,迁移大小Mn=5,迁移最优率Bestp=06,最大评价次数MAX_FEs=500000;
[0098] 步骤2,通过锚节点和未知传感器节点之间发射并接收信号强度的传统方法测得所有未知传感器节点到所有锚节点的距离记录到D行K列的矩阵Dis中,其中Lisj,m为第j个未知传感器节点到第m个锚节点的距离;
[0099] 步骤3,令交叉率Cri=0.5,其中i=1,...,SubPopsize,当前演化代数t=0,当前评价次数FEs=0;
[0100] 步骤4,随机产生两个初始子种群SubP1t={A1,A2,...,Ai,...,ASubPopsize},[0101] SubP2t={B1,B2,...,Bi,...,BSubPopsize},其中:i=1,...,SubPopsize,并且Ai和Bi分别为子种群SubP1t和SubP2t中的第i个粒子,它们的随机产生公式分别为:
[0102]
[0103] Ai,l,j=-Vmax+rand(0,1)·2·Vmax
[0104]
[0105] Bi,2,j=-Vmax+ranD(0,1)·2·Vmax
[0106] 其中j=1,...,d×3,并且D为未知传感器节点个数;Ai,l和Bi,l分别为在子种群SubP1t和SubP2t中的第i个粒子所存储的D个未知传感器节点的探测位置,其中在子种群SubP1t中第i个粒子所存储的第j个未知传感器节点的探测位置为(Ai,l,j×3-2,Ai,l,j×3-1,1 2
Ai,1,j×3);Ai,2和Bi,2分别为在子种群Subpt和Subpt中的第i个粒子在每一维度上的速度大小;rand(0,1)为在[0,1]之间产生均匀分布的随机数函数;L1和U1的值分别为0,120,表示传感器节点分布区域的x轴坐标的下界和上界;L2和U2的值分别为0,120,表示传感器节点分布区域的y轴坐标的下界和上界;L3和U3的值分别0,120,表示传感器节点分布区域的z轴坐标的下界和上界;
[0107] 步骤5,计算两个子种群SubPt1和SubPt2中每个粒子的适应值,其中任意一粒子Ai的适应值Fiti按以下公式计算:
[0108]
[0109] 其中K为锚节点个数,D为未知传感器节点个数,(Zm×3-2,Zm×3-1,Zm×3)为第m个锚节点的三维坐标位置,Disj,m为第j个未知传感器节点到第m个锚节点的距离;当前评价次数Fes=Fes+SubPopsize×2,并保存子种群SubP1t和SubP2t中适应值最小的粒子为最优粒子;
[0110] 步骤6,计算当前代的惯性权值 其中t为当前演化代数,为最大演化代数;
[0111] 步骤7,在[0,1]之间产生一个服从均匀分布的随机数r1;如果rl小于学习概率Pl则执行步骤8,否则执行步骤9;
[0112] 步骤8,对子种群SubPt1中的每个粒子执行复合反向学习操作产生复合反向种群OPt={OA1,OA2,...,OASubPopsize};然后计算复合反向种群OPt中每个粒子的适应值,再从SubPt1∪OPt中选择出适应值最小的前SubPopsize个粒子作为下一代子种群 然后转到步骤10;具体步骤如下:
[0113] 步骤8.1,按以下公式计算子种群SubP1t当前的搜索下界SL∈RD×3和上界SU∈RD×3:
[0114] SLj=min(Ai,l,j)
[0115] SUj=max(Ai,l,j)
[0116] 其中i=1,...,SubPopsize;j=1,...,D×3;
[0117] 步骤8.2,按以下公式计算子种群SubP1t的搜索中心点OC∈RD×3:
[0118] 其中j=1,...,D×3
[0119] 步骤8.3,找出子种群Subp1t中的最优粒子AgBest,并令记数器i=1;反向种群OPt=φ;
[0120] 步骤8.4,如果记数器i大于子种群大小SbuPopsize,则转到步骤8.15,否则转到步骤8.5;
[0121] 步骤8.5,在[0,1]之间产生一个服从均匀分布的随机数GK作为反向缩放因子;
[0122] 步骤8.6,令复合反向粒子OXi=Ai,记数器j=1;
[0123] 步骤8.7,如果记数器j大于未知传感器节点个数D×3,则转到步骤8.12,否则转到步骤8.8;
[0124] 步骤8.8,按以下公式计算反向参考点ROj∈RD×3:
[0125]
[0126] 步骤8.9,按以下公式计算复合反向粒子OXi:
[0127] OXi,l,j=ROj+ROj-Ai,l,j
[0128] 步骤8.10,令下标m等于j除以3的余数,并判断OXi,l,j是否满足以下条件1或条件2其中任意一条:
[0129] 条件1:OXi,l,j小于传感器节点分布区域坐标的取值范围的下界Lm;
[0130] 条件2:OXi,l,j大于传感器节点分布区域坐标的取值范围的上界Um,
[0131] 若满足则令OXi,l,j为在(SLj,SUj)之间产生一个随机数后转到步骤8.11,否则直接转到步骤8.11;
[0132] 步骤8.11,令记数器j=j+1后返回至步骤8.7;
[0133] 步骤8.12,计算复合反向粒子OXi的适应值,保存复合反向粒子OXi的自身最优适应值和位置,并令复合反向种群OPt=OPt∪{OXi};
[0134] 步骤8.13,如果复合反向粒子OXi的适应值大于粒子Ai的适应值,则令交叉率Cri=rand(0,1),否则交叉率Cri的值保持不变;
[0135] 步骤8.14,令记数器i=i+1后返回至步骤8.4;
[0136] 步骤8.15,当前评价次数FEs=FEs+SbuPopsize;从SubPt1∪OPt中选择出适应值最小的前SbuPopsize个粒子作为下一代子种群
[0137] 步骤8.16,转到步骤10;
[0138] 步骤9,对子种群SubPt1执行传统粒子群优化算法的操作算子,按以下公式更新每个粒子的速度和位置产生下一代子种群
[0139] Ai,2,j=Wt×Ai,2,j+c1×rand1×(ApBesti,j-Ai,l,j)+c2×rand2×(Agbestj-Ai,l,j)[0140] Ai,l,j=Ai,l,j+Ai,2,j
[0141] 其中,Wt为当前代的惯性权值,c1和c2为粒子加速因子,ranD1和ranD2分别为[0,1]之间的随机数,Apbesti和AgBest分别为子种群SubPt1的第i个粒子的历史最优位置和全局最优位置;当前评价次数FEs=FEs+SbuPopsize;
[0142] 步骤10,在[0,1]之间产生一个服从均匀分布的随机数r2;如果r2小于学习概率Pl则执行步骤11,否则执行步骤12;
[0143] 步骤11,对子种群SubPt2执行精英混沌学习操作算子产生下一代子种群 然后转到步骤13;具体步骤如下:
[0144] 步骤11.1,按以下公式计算子种群SubP2t当前的搜索下界SL∈RD×3和上界SU∈RD×3:
[0145] SLj=min(Bi,l,j)
[0146] SUj=max(Bi,l,j)
[0147] 其中i=1,...,SubPopsize;j=1,...,D×3;
[0148] 步骤11.2,在[0,1]之间产生两个服从均匀分布的随机数K1和K2作为沌混运动初始值;如果沌混运动初始值K1或者K2等于0.25,0.50或0.75,则再重新产生它的值;
[0149] 步骤11.3,找出子种群SubP2t中的最优粒子BgBest,并令记数器i=1;
[0150] 步骤11.4,如果记数器i大于子种群大小SbuPopsize,则转到步骤11.14,否则转到步骤11.5;
[0151] 步骤11.5,令记数器nl=0;
[0152] 步骤11.6,令记数器nl=nl+1;
[0153] 步骤11.7,如果记数器nl大于未知传感器节点个数D除以5,则转到步骤11.13,否则转到步骤11.8;
[0154] 步骤11.8,令精英混沌粒子CXi=Ai,按混沌运动方程计算K1和K2的值:
[0155] K1=4.0×K1×(1.0-K1):
[0156] K2=4.0×K2×(1.0-K2)
[0157] 步骤11.9,令维数索引 随机权值W=rand(0,1);
[0158] 步骤11.10,按以下公式计算精英混沌粒子cXi:
[0159] V1=Ai,l,j+K2×(BgBesti,l,j-Ai,l,j)
[0160] V2=Slj+K1×(SUj-Slj)
[0161] CXi,l,j=W×V1+(1.0-W)×V2
[0162] 其中V1为精英搜索值,V2为混沌搜索值;
[0163] 步骤11.11,令下标m等于j除以3的余数,并判断CXi,l,j是否满足以下条件1或条件2其中任意一条:
[0164] 条件1:cXi,l,j小于传感器节点分布区域坐标的取值范围的下界Lm;
[0165] 条件2:CXi,l,j大于传感器节点分布区域坐标的取值范围的上界Um,
[0166] 若满足则令CXi,l,j为在(SLj,SUj)之间产生的一个随机数后转到步骤11.12,否则直接转到步骤11.12;
[0167] 步骤11.12,计算精英混沌粒子CXi的适应值,当前评价次数FEs=FEs+1;如果精英混沌粒子CXi的适应值小于粒子Ai的适应值,则Ai=CXi,并保存粒子Ai的自身最优适应值和位置,然后转到步骤11.13,否则Ai保持不变,并且转到步骤11.6;
[0168] 步骤11.13,令记数器i=i+1后返回至步骤11.4;
[0169] 步骤11.14,转到步骤13;
[0170] 步骤12,对子种群SubPt2执行传统粒子群优化算法的操作算子,按以下公式更新每个粒子的速度和位置产生下一代子种群
[0171] Bi,2,j=Wt×Bi,2,j+c1×rand1×(BpBesti,j-Bi,l,j)+c2×rand2×(BgBestj-Bi,l,j)[0172] Bi,l,j=Bi,l,j+Bi,2,j
[0173] 其中,Wt为当前代的惯性权值,c1和c2为粒子加速因子,rand1和rand2分别为[0,1]之间的随机数,BpBesti和BgBest分别为子种群SubPt2的第i个粒子的历史最优位置和全局最优位置;当前评价次数FEs=FEs+SbuPopsize;
[0174] 步骤13,如果当前演化代数t除以迁移间隔代数Mt的余数等于0,则执行步骤14,否则执行步骤17;
[0175] 步骤14,在子种群SubP1t中选择出前Mn×Bestp个最优粒子,并随机选择出Mn×(1-Bestp)个粒子,其中Mn为迁移大小,Bestp为迁移最优率;然后把从子种群SubP1t中选择出来的这Mn个粒子组成迁移子种群MP1t,并从子种群SubP1t中删除在迁移子种群MP1t中存在的粒子;
[0176] 步骤15,在子种群SubP2t中选择出前Mn×Bestp个最优粒子,并随机选择出Mn×(1-Bestp)个粒子,其中Mn为迁移大小,Bestp为迁移最优率;然后把从子种群SubP2t中选择出来的Mn个粒子组成迁移子种群Mp2t,并从子种群SubP2t中删除在迁移子种群MP2t中存在的粒子;
[0177] 步骤16,把迁移子种群MP1t中的粒子加入到子种群SubP2t中,并把迁移子种群MP2t中的粒子加入到子种群SubP1t中;
[0178] 步骤17,保存子种群SubP1t和SubP2t中适应值最小的粒子为最优粒子ABgBestt;当前演化代数t=t+1;
[0179] 步骤18,如当前评价次数FEs<MAX_FEs则转到步骤6,否则转到步骤19;
[0180] 步骤19,执行过程中得到的最优粒子ABgBestt即为50个未知传感器节点的位置。
[0181] 以上所述,仅为本发明最佳实施方式,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。