果蝇算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

无线传感器网络(Wireless Sensor Networks, WSN)是一种分布式传感网络,由大量可移动的微型传感器节点以自组织的方式组成,信息通过节点进行多跳传输。在无线传感器网络覆盖问题上,传统的节点部署策略会出现部署速度慢,覆盖范围小,服务质量差等问题。目前已有多种智能算法运用在无线传感器网络的覆盖优化问题上,例如粒子群算法、鱼群算法、遗传算法等。本文将提出一种改进的果蝇算法,实现网络覆盖的优化。果蝇算法具有很多优点,例如计算量较小,运行时间短,算法复杂度低,且寻优精度较高等。本文将果蝇算法与WSN覆盖模型相结合,可以快速实现节点布局优化,得到更高的网络覆盖率。通过仿真对比实验,可以看出本文的改进果蝇算法的有效性和优越性,在寻优性能方面能够大幅度优于其它几种算法。

【关键词】:WSN;果蝇算法;传感器节点;覆盖优化;

1 引言

无线传感器网络[1]是一种分布式传感,面对多节点、多任务的无线自组织网络。无线传感器网络是由大量部署在监测区域内的传感器节点组成,通过传感器节点对监测区域的信息进行实时收集。WSN作为一门新的技术,被广泛应用于军事领域、农业生产、生态监测与灾害预警、基础设施状态检测、工业领域、智能家居等。传感器网络的一个关键问题就是节点的部署优化,对于如何提高网络的覆盖率、降低网络的能耗、简化网络模型,最终提高服务质量,这是目前研究的一大热门问题,也是未来无线传感技术发展的基础。

目前已有多种智能算法运用在无线传感器网络的覆盖优化问题上,例如粒子群算法、鱼群算法、遗传算法等。这些算法虽然在覆盖的优化问题上取得了良好的效果和重大的进步,但依然存在着一些明显的不足,例如某些算法的结构过于复杂,导致整体的计算速度太慢,达不到实时的要求,某些算法的性能太差,导致最后的覆盖效果太差,远远达不到用户的服务要求,某些算法的参数太多,导致网络模型过于复杂,实际的部署方式往往不容易做到,等等。因此本文将运用一种改进的果蝇算法,解决以上算法在无线传感器网络覆盖优化问题上的弊端,实现对网络覆盖的进一步优化。

2 果蝇算法

果蝇优化算法[2](Fruit Fly Optimization Algorithm,FOA)是台湾学者潘文超经过研究发现,并于2011年提出的一种新型智能优化算法,它具有很好的全局优化性能,能够解决很多的优化求解问题。果蝇有着优于其它生物的感官知觉,特别是视觉与嗅觉,依靠灵敏的嗅觉,果蝇可以很好的感知到空气中的各种气味分子,甚至可以嗅到几十公里以外的食物。同时利用敏锐的视觉与其它果蝇聚集,并向该方向移动。果蝇算法就是模仿果蝇的觅食过程而提出一种新型的群智能优化算法。

2.1 基本果蝇算法:

果蝇拥有优于其它物种的感官,它可以收集空气中的气味分子搜寻远处的食

物,然后聚集同伴朝食物方向并拢。FOA 算法就是模拟果蝇群体的觅食过程而衍生的优化算法,其步骤可以归纳为:

①初始化种群大小Sizepop ,最大迭代次数Maxgen ,随机初始化果蝇群体位置X_axis,Y_axis 。

②果蝇个体随机向各个方向的位置进行搜寻。

③计算果蝇个体与原点距离d ,再将距离的倒数做为果蝇个体的味道浓度判定值i S 。

④将味道浓度判定值i S 代入适应度函数(Fitness function ),求出果蝇个体的味道浓度。

⑤找出果蝇群体中i Smell 最佳的果蝇

⑥记录并保留最佳味道浓度值i bestSmell 与X,Y 坐标。

⑦开始迭代,重复执行②~⑤,并判断最佳味道浓度是否优于前一次迭代得到的味道浓度,并且当前迭代次数小于最大迭代数Maxgen ,则执行⑥,否则,算法结束。

2.2改进步长果蝇算法

根据上一节对果蝇算法的介绍,果蝇算法中的果蝇个体每次迭代从相同的起点出发,然后向随机的方向进行搜索,搜索步长为固定区间],[H H -内的随机数。当H 设置比较大时,算法的全局搜索能力较强,收敛的速度较快,但算法局部搜索能力较低,导致后期收敛精度不够。相反,如果H 设置比较小时,局部搜索能力较强,全局搜索能力较低,导致算法收敛速度较慢,而且算法在小区域内搜索,收敛结果易陷入局部最优的错误解集中。针对以上所述的局限性,本文提出的可变步长果蝇算法(CS-FOA,Change the Step of FOA )将搜索分为若干个周期,如取50次迭代为一个周期T ,每个周期内步长采用)(x Sin 的形式进行跌宕变化,表示如下:

i i H rand axis X X ⨯-⨯+=)1()2(_

],1[ ),mod(Maxgen i T i ∈=α (1)

⎩⎨⎧>≤⨯=L H L L H L H i i i

1)+(sin(i)α

其中,L 为算法搜索区间长度,T 为单位周期的迭代次数,mod(i,T)为第i 次迭代相对于T 取余。

从公式(1)可以看出,CS-FOA 首先将整个搜索过程分为若干个周期,这样做可以增加搜索过程的多样性,使算法能够有效跳出局部收敛,大大减小局部收敛的

可能性。其次CS-FOA在每个周期内采用)

Sin函数,使步长在单位周期T内可

(x

以跌宕变化。在)

Sin单调递增时,步长指数型增大,算法具有很强的全局搜索(x

能力,可以实现快速收敛,并且收敛结果不易陷入局部最优,同时步长的增大可以解决)

Sin单调递

(x Sin在上个单调递减区间内可能存在的局部收敛问题。在) (x

减区间内,步长指数型减小,可以使算法在小范围内完成高精度的搜索,结果具有更好的收敛效果。

相关文档
最新文档