600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【布局优化】基于蚁狮算法的无线传感器网(WSN)覆盖优化matlab源码

【布局优化】基于蚁狮算法的无线传感器网(WSN)覆盖优化matlab源码

时间:2021-10-25 03:23:32

相关推荐

【布局优化】基于蚁狮算法的无线传感器网(WSN)覆盖优化matlab源码

一、WSN模型

1.1 动机

近年来,随着对等网络、云计算和网格计算等分布式环境的发展,无线传感器网络(WSN)得到了广泛的应用。无线传感器网络(WSN)是一种新兴的计算和网络模式,它可以被定义为一个由称为传感器节点的微小、小型、昂贵和高度智能化的设备组成的网络。传感器节点位于被观测空间内的不同位置,通过无线通信信道交换从监测领域收集的数据。收集的数据被发送到sink节点,sink节点要么本地处理数据,要么将数据发送到处理能力更强的其他网络。

无线传感器网络最基本的挑战之一是节点定位。节点定位问题的实例很多,属于NP难优化问题。传统的确定性技术和算法不能在合理的计算时间内解决NP-hard问题。在这种情况下,最好采用非确定性(随机)算法,如元启发式算法。

群体智能元启发式算法模拟自然界中的生物群体,如鸟和鱼的群体、蜜蜂和蚂蚁的群体、蝙蝠和杜鹃鸟的群体等。这些算法是基于种群的、随机的和迭代的搜索方法,基于四个自组织原则:正反馈、负反馈,多重相互作用和波动。

1.2 无线传感器网络中的定位问题

定位问题是无线传感器网络中研究最多的问题之一,因为如果传感器节点的位置未知,则覆盖、功率和路由都将无法确定最佳。定位是无线传感器网络的关键。一些传感器节点的位置可以由全球定位系统(GPS)来定义,这些节点被称为锚节点或信标节点,而其他传感器节点则随机分布在搜索空间中。这些节点称为未知节点或传感器节点。由于每个节点的电池寿命、成本、气候条件等因素,只有少数节点的位置是由GPS坐标确定的,而其他节点的位置则需要采用定位算法进行估计。

针对无线传感器网络中传感器节点的定位问题,提出了锚节点和未知节点两种定位算法。第一阶段称为测距阶段,算法确定未知节点和相邻锚节点之间的距离。针对无线传感器网络中传感器节点的定位问题,提出了锚节点和未知节点两种定位算法。第一阶段称为测距阶段,算法确定未知节点和相邻锚节点之间的距离。第二阶段通过在第一阶段使用各种方法收集测距信息来估计节点的位置,如到达角(AOA)、到达时间(TOA)、到达时差(TDOA)、往返时间(RTT)、无线信号强度(RSS)等。

1.3 问题陈述

在由M个传感器节点组成的无线传感器网络中,定位问题的目标是利用M-N个锚节点的位置信息,在传输范围为R的情况下,估计N个未知节点的位置,如果一个传感器节点在三个或更多锚节点的传输范围内,则认为它是定位的。这是一个总坐标数为2n的二维定位问题。

本文采用RSS方法估计节点间距离。无论采用何种测距方法,都可能出现不精确的测量。N个未知节点坐标的位置估计可以表示为一个优化问题,涉及表示节点定位误差的目标函数的最小化[19]。该问题的目标函数由N个未知节点和M N个相邻锚节点之间的误差平方和表示[19]。

随着RSS的出现,三边测量将被用来解决WSN中的定位问题。该方法的原理是基于三个锚节点的已知位置。未知节点的位置可以在三个锚节点的传输范围内估计。

每个节点估计到第i个锚点的距离为d̂=di+ni,其中ni是高斯噪声,di是使用以下等式计算的实际距离:

应最小化的目标函数表示为计算节点坐标的实际和估计距离与实际节点坐标之间的均方误差(MSE):

其中di是实际距离,d̂i是估计距离(从噪声范围测量获得的值di),M≥3(传感器节点的位置在传输范围R内至少需要三个锚)。

由于节点定位中的距离测量是有噪声的,为了估计节点之间的足够距离,采用了群体智能元启发式等优化方法。

二、蚁狮算法

1.原理

ALO算法模拟了蚁狮在自然界中的捕猎机制。它们的名字来源于它们独特的狩猎行为和它们最喜欢的猎物。蚁狮沿着圆形的路径移动,用它巨大的下颚在沙子中挖出一个锥形的坑。在挖好陷阱后,藏在圆锥形的底部(作为坐等捕食者),等待被困在坑中的昆虫(最好是蚂蚁),如图1所示。实施了蚂蚁随机行走、设置陷阱、用陷阱诱捕蚂蚁、捕捉猎物和重建陷阱等主要步骤。

图1 蚁狮的捕猎行为

2.算法步骤

2.1觅食的蚂蚁随机行走

图2 蚂蚁的随机行走 (3次)

为了模拟蚁狮的捕猎能力,采用了轮盘赌的方法。如图3所示,假设蚂蚁只被困在一只选定的蚁狮中。蚁群算法在优化过程中需要利用轮盘赌轮操作器根据蚁群的适应度选择蚁群。这一机制为更适合的蚁狮捕食蚂蚁提供了更高的机会。

图3 蚂蚁在蚁狮陷阱里的随机行走

2.2设置陷阱

2.3用陷阱诱捕蚂蚁

2.4捕获猎物并重建洞穴

3.伪代码

图4 ALO算法伪代码

三、代码

%clear all ; close all ;clc ;N = 25; %Number of nests(The scale of solution)D = 10 ; % Dimensionality of solutionT = 200 ; % Number of iterationsXmax = 20 ;Xmin = -20 ;Pa = 0.25 ; % Probability of building a new nest(After host bird find exotic bird eggs)nestPop = rand(N,D)*(Xmax-Xmin)+Xmin ; % Random initial solutionsfor t=1:Tlevy_nestPop = func_levy(nestPop,Xmax,Xmin) ; % Generate new solutions by Levy flightsnestPop = func_bestNestPop(nestPop,levy_nestPop); % Choose a best nest among new and old nestsrand_nestPop = func_newBuildNest(nestPop,Pa,Xmax,Xmin); % Abandon(Pa) worse nests and build new nests by (Preference random walk )nestPop = func_bestNestPop(nestPop,rand_nestPop) ; % Choose a best nest among new and old nests[~,index] = max(func_fitness(nestPop)) ; % Best neststrace(t) = func_objValue(nestPop(index,:)) ; endfigure plot(trace);xlabel('迭代次数') ;ylabel('适应度值') ;title('适应度进化曲线') ;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。