基于改进粒子群算法的WSN节点部署优化
文章目录
- 一、理论基础
- 1、PSO算法(经典粒子群算法)
- 2、UPSO算法(均匀搜索粒子群算法)
- 3、CPSO算法(本文算法)
- 二、仿真实验与结果分析
- 三、参考文献
一、理论基础
1、PSO算法(经典粒子群算法)
请参考这里。
2、UPSO算法(均匀搜索粒子群算法)
由文献[1]的推导,UPSO算法的位置和速度更新公式如下:{vi(t+1)=wvi(t)+c[rpi(t)+(1−r)pg(t)−xi(t)]xi(t+1)=xi(t)+vi(t+1)(1)\begin{dcases}v_i(t+1)=wv_i(t)+c[rp_i(t)+(1-r)p_g(t)-x_i(t)]\\x_i(t+1)=x_i(t)+v_i(t+1)\end{dcases}\tag{1}{vi(t+1)=wvi(t)+c[rpi(t)+(1−r)pg(t)−xi(t)]xi(t+1)=xi(t)+vi(t+1)(1)
3、CPSO算法(本文算法)
为避免基本粒子群算法早熟收敛,提高算法寻优效率,在满足粒子群稳定性条件基础上,通过分析惯性权重对粒子行为的影响,提出一种惯性权重余弦自适应调整策略,改进惯性权重公式定义为w(t)=0.1+0.9cos(t/maxgen)(2)w(t)=0.1+0.9cos(t/maxgen)\tag{2}w(t)=0.1+0.9cos(t/maxgen)(2)通过余弦调整惯性权重,较之固定权重增加了粒子群行为的自适应性,算法初期惯性权重较大,粒子行为较为分散,具有较大的搜索空间,避免算法陷入局部最优,提高全局搜索能力;随着算法运行惯性权重逐渐减小,粒子行为集中,缩小搜索空间,提高局部寻优能力,加速算法收敛。
同时为加强粒子学习能力,避免陷入局部最优,参考文献[2]提出基于惯性权重的学习因子调整策略,并根据粒子行为稳定性条件进行修正,得出结论,学习因子h1,h2h_1,h_2h1,h2公式为{h1(t)=1.3+1.2cos(πw(t))h2(t)=2−1.2cos(πw(t))(3)\begin{dcases}h_1(t)=1.3+1.2cos(\pi w(t))\\h_2(t)=2-1.2cos(\pi w(t))\end{dcases}\tag{3}{h1(t)=1.3+1.2cos(πw(t))h2(t)=2−1.2cos(πw(t))(3)因此,改进粒子群算法的速度和位置更新公式为vi(t+1)=w(t)vi(t)+h1(t)r1(t)[pi(t)−xi(t)]+h2(t)r2(t)[pg(t)−xi(t)](4)v_i(t+1)=w(t)v_i(t)+h_1(t)r_1(t)[p_i(t)-x_i(t)]+h_2(t)r_2(t)[p_g(t)-x_i(t)]\tag{4}vi(t+1)=w(t)vi(t)+h1(t)r1(t)[pi(t)−xi(t)]+h2(t)r2(t)[pg(t)−xi(t)](4)xi(t+1)=xi(t)+vi(t+1)(5)x_i(t+1)=x_i(t)+v_i(t+1)\tag{5}xi(t+1)=xi(t)+vi(t+1)(5)改进粒子群算法主要流程如图1所示。
图1 改进粒子群算法流程
二、仿真实验与结果分析
实验环境参数设置如下:为模拟WSN环境布局,实验空间设置为50m×50m方形区域,在该区域内随机部署35个同构传感器节点,节点感知半径Rs=5mR_s=5mRs=5m,通信半径Rc=10mR_c=10mRc=10m,感知误差半径Re=0.1mR_e=0.1mRe=0.1m,采用与文献[3]相同的节点覆盖模型。
为进行有效对比验证,3种算法参数设置中,种群规模NNN统一设置为50,迭代次数maxgenmaxgenmaxgen统一设置为300,其中本文改进算法惯性权重与学习因子设置分别选取式(2)、式(3);基本粒子群算法惯性权重设置为1,学习因子h1=h2=2.5h_1=h_2=2.5h1=h2=2.5;文献[1]均匀搜索粒子群算法惯性权重设置为1,学习因子h=2.5h=2.5h=2.5。
图2为3种算法网络覆盖率对比曲线。
图2 网络覆盖率对比曲线
图3~图6为初始部署图和3种算法的优化覆盖图。
图3 初始部署
图4 PSO算法优化覆盖
图5 UPSO算法优化覆盖
图6 CPSO(本文改进算法)优化覆盖
结果表明,改进算法在保证粒子群稳定性的基础上,提高了粒子群算法收敛速度以及全局搜索能力,显著提升了无线传感器网络节点部署的覆盖率。
三、参考文献
[1] 吴晓军, 杨战中, 赵明. 均匀搜索粒子群算法[J]. 电子学报, 2011, 39(6): 1261-1266.
[2] 赵远东, 方正华. 带有权重函数学习因子的粒子群算法[J]. 计算机应用, 2013, 33(8): 2265-2268.
[3] 徐钦帅, 何庆, 魏康园. 改进蚁狮算法的无线传感器网络覆盖优化[J]. 传感技术学报, 2019, 32(2): 266-275.
[4] 李少波, 张成龙, 郑凯. 基于改进粒子群算法的制造车间WSN部署优化[J]. 仪表技术与传感器, 2017(10): 101-104.
基于改进粒子群算法的WSN节点部署优化相关推荐
- 【布局优化】基于改进粒子群算法实现充电桩选址优化问题附matlab代码
1 简介 当前世界环境污染和能源危机问题凸显,电动汽车以零排放和低耗能的优势得到各国的大力关注和支持.以电动汽车为代表新能源汽车产业,成为国家七大战略性新兴产业之一.电动汽车具有良好的发展前景,市场规 ...
- 主题:基于改进粒子群算法的含源配电网静态重构 利用IEEE-33节点系统进行仿真计算
主题:基于改进粒子群算法的含源配电网静态重构 利用IEEE-33节点系统进行仿真计算 以网络最小损耗为目标函数 基于改进粒子群算法进行重构 可以加入不同数量的分布式电源 包含M文件.模型图.程序框图以 ...
- 《基于改进粒子群算法的混合储能系统容量优化》完全复现
<基于改进粒子群算法的混合储能系统容量优化>完全复现 matlab. 以全生命周期费用最低为目标函数,负荷缺电率作为风光互补发电系统的运行指标,得到蓄电池储能和超级电容个数,缺电率和系统最 ...
- 基于入侵杂草和花授粉混合算法的WSN节点部署优化
文章目录 一.理论基础 1.节点与覆盖模型 2.入侵杂草算法 3.花授粉算法 二.仿真分析 三.参考文献 一.理论基础 1.节点与覆盖模型 请参考这里. 2.入侵杂草算法 请参考这里. 3.花授粉算法 ...
- 【无人机】基于matlab粒子群算法优化干扰受限下无人机群辅助网络【含Matlab源码 2245期】
⛄一.无人机简介 无人机的航迹规划是指在综合考虑无人机飞行油耗.威胁.飞行区域以及自身物理条件限制等因素的前提下, 为飞行器在飞行区域内规划出从初始点到目标点最优或者满意的飞行航迹, 其本质是一个多约 ...
- 【优化覆盖】基于matlab粒子群算法优化无人机编队布局求解车载网络通信覆盖优化问题【含Matlab源码 2021期】
一.无人机简介 无人机的航迹规划是指在综合考虑无人机飞行油耗.威胁.飞行区域以及自身物理条件限制等因素的前提下, 为飞行器在飞行区域内规划出从初始点到目标点最优或者满意的飞行航迹, 其本质是一个多约束 ...
- 【PSO三维路径规划】基于matlab粒子群算法无人机三维路径规划【含Matlab源码 192期】
⛄一.无人机简介 无人机的航迹规划是指在综合考虑无人机飞行油耗.威胁.飞行区域以及自身物理条件限制等因素的前提下, 为飞行器在飞行区域内规划出从初始点到目标点最优或者满意的飞行航迹, 其本质是一个多约 ...
- 【PSO三维路径规划】基于matlab粒子群算法无人机山地三维路径规划【含Matlab源码 1831期】
⛄一.无人机简介 无人机的航迹规划是指在综合考虑无人机飞行油耗.威胁.飞行区域以及自身物理条件限制等因素的前提下, 为飞行器在飞行区域内规划出从初始点到目标点最优或者满意的飞行航迹, 其本质是一个多约 ...
- 基于信息熵确立权重的topsis法_一种基于改进多目标粒子群算法的受端电网储能优化配置方法与流程...
本发明涉及受端电网中储能的规划问题,具体涉及一种基于改进多目标粒子群算法的受端电网储能优化配置方法. 背景技术: 随着煤炭等非可再生.高污染的能源总量日益减少,我国的电能结构正由火力发电向低碳化的清洁 ...
最新文章
- 自考总结--2020年10月份
- java ajax 404_java – 在jQuery AJAX中调用Spring控制器时发现404错误
- Servlet HTTP Status 405 - HTTP method GET is not supported by this URL
- Bug测试报告--食物链教学工具--奋斗吧兄弟
- java字节数组转换成16进制_Java 将字节数组转化为16进制的多种方案
- 疯狂html5+css3+javascript讲义 pdf_成为一名优秀的HTML5前端工程师需要掌握哪些技能?...
- 卡夫卡队列_卡夫卡编年史队列基准
- 笔记本(华硕UL80VT)软件超频setFSB
- 2020腾讯二次元营销通案
- PHP在线加密系统-陌屿云PLUS开源版V8.01
- 消息称快手已通过港交所聆讯 计划2月第一周上市
- ERROR InvalidReplicationFactorException: Replication factor: 1 larger than available brokers: 0
- Hibernate的出现和Hinbernate的简单模拟实现
- python爬取豆瓣电影top250的名字_Python爬虫-爬取豆瓣电影Top250
- Python学习 Day 040 - css选择器
- 一张图了解大牛直播SDK
- (简单)华为Nova青春 WAS-AL00的USB调试模式在哪里开启的流程
- 浅谈EM算法的两个理解角度
- Vue中swiper的指向性跳转~轮播图与标题的互动
- Unity 2d - 基础 - 碰撞(一) - 针对性碰撞