一、⛄果蝇算法

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

1 基本果蝇算法:
果蝇拥有优于其它物种的感官, 它可以收集空气中的气味分子搜寻远处的食物, 然后聚集同伴朝食物方向并拢.FOA算法就是模拟果蝇群体的觅食过程而衍生的优化算法, 其步骤可以归纳为:

(1) 初始化种群大小Sizepop, 最大迭代次数Maxgen, 随机初始化果蝇群体位置X_axis, Y_axis.
(2) 果蝇个体随机向各个方向的位置进行搜寻.
(3) 计算果蝇个体与原点距离d, 再将距离的倒数做为果蝇个体的味道浓度判定值
(4) 将味道浓度判定值Si代入适应度函数 (Fitness function) , 求出果蝇个体的味道浓度.
(5) 找出果蝇群体中最佳的果蝇
(6) 记录并保留最佳味道浓度值与X, Y坐标.
(7) 开始迭代, 重复执行 (2) ~ (5) , 并判断最佳味道浓度是否优于前一次迭代得到的味道浓度, 并且当前迭代次数小于最大迭代数Maxgen, 则执行 (6) , 否则, 算法结束.

将CS-FOA应用于解决WSN问题的算法步骤如下:
(1) 初始化无线传感器网络相关参数, 包括区域长a, 宽b, 节点的额定有效覆盖半径R, 该区域布置传感器节点个数N;
(2) 初始化CS-FOA的相关参数, 包括果蝇种群大小Sizepop, 最大迭代次数Maxgen, 单位周期迭代次数T, 搜索区间长度L;
(3) 随机初始Sizepop个果蝇的位置Wt, 根据式 (2) , 第t个果蝇的传感器节点表示为, 其中t∈[1, Sizepop], i∈[1, N];
(4) 根据式 (3) ~ (6) 计算出GW, 将GW最大的果蝇标记为最佳果蝇, 记录此果蝇的GW以及位置W:
(5) 进入迭代寻优计算, 果蝇个体根据式 (7) 确定搜索步长, 随机向各个方向搜寻.
(6) 执行步骤 (4) , 找出其中覆盖率最大的果蝇个体, 记录此果蝇的位置和覆盖率, 并将此果蝇的覆盖率与上一代最佳果蝇的覆盖率比较, 如果此果蝇覆盖率大于上一代覆盖率, 那么将此果蝇标记为最佳果蝇.最佳果蝇的位置设为节点位置, 也是下一次搜索的果蝇初始位置, 所有果蝇向此果蝇聚拢.
(7) 循环执行步骤 (5) (6) , 直至迭代次数达到Maxgen, 记录最终的结果.此时得到无线传感器网络最大的覆盖率best G和对应节点位置G_axis.

⛄二、部分源代码

%% 清空环境变量
clc;
clear;

%% 网络参数
L = 60; % 区域边长
n = 40; % 节点个数
rs = 6; % 感知半径
data = 0.4; % 离散粒度

%% FOA参数
maxgen = 500; % 迭代次数
sizepop = 25; % 种群规模
s = 0.3; % 步长

%% 随机初始化果蝇群体位置
X_axis = Lrand(1, n); % X = rand(sz1,…,szN)返回由随机数组成的 sz1×…×szN 数组
Y_axis = L
rand(1, n); % 使用公式 r = a + (b-a).*rand(N,1) 生成区间 (a,b) 内的 N 个随机数

%% 个体和浓度最大和最小值
for i = 1:sizepop
% 随机位置(第i行的全部列)
X(i,

【优化覆盖】基于matlab果蝇算法求解无线传感器覆盖优化问题【含Matlab源码 2215期】相关推荐

  1. 【单目标优化求解】基于matlab黑猩猩算法求解单目标问题【含Matlab源码 1413期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[单目标优化求解]基于matlab黑猩猩算法求解单目标问题[含Matlab源码 1413期] 点击上面蓝色字体,直接付费下载,即可. 获取代 ...

  2. 【物流选址】基于matlab免疫算法求解物流选址问题【含Matlab源码 020期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[物流选址]基于matlab免疫算法求解物流选址问题[含Matlab源码 020期] 获取代码方式2: 付费专栏Matlab路径规划(初级版 ...

  3. 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】

    一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  4. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  5. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  6. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  7. 【Matlab水果识别】自助水果超市【含GUI源码 594期】

    一.代码运行视频(哔哩哔哩) [Matlab水果识别]自助水果超市[含GUI源码 594期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]倪云峰,叶健,樊娇娇 ...

  8. 【微电网优化】基于粒子群算法求解智能微电网调度问题附matlab代码

    1 简介 搭建光伏,风力发电机和储能电池的数学模型.充分考虑对蓄电池的充放电保护,制定优化调度策略.应用粒子群算法(PSO)对其优化调度模型进行求解,在算法中增加了蓄电池满充满放的限制条件,同时使系统 ...

  9. 【定位问题】RSSI和模拟退火优化粒子群算法求解无线传感器网络定位问题【含Matlab源码 1766期】

    ⛄一.简介 1 引言 随着物联网技术的发展,传感器之间通过通信方式连接在一起,构成了极为庞大的无线传感器网络,这使得传感器在各行各业的应用相当广泛[.然而,因为大规模抛撒的传感器节点无法全部配备价格昂 ...

最新文章

  1. c++/c SM4加密解密算法代码实现
  2. malloc 就是返回开辟内存空间的首地址
  3. 框架:Servlet的生命周期
  4. 01.java内存模型
  5. 计算机d盘给c盘,win10 c盘与d盘都是主分区如何将d盘空间分给c盘
  6. 简述oracle数据库特殊状态,【OracleDB】 01 概述和基本操作
  7. 【英语学习】【English L06】U04 Adventure L2 It's worth a visit
  8. python QQ自动添加好友
  9. 华为AX3路由器获取ipv6外网地址方式
  10. 微擎系统BUG漏洞解决方法汇总(原创)
  11. Intelligent Reference Curation for Visual Place Recognition via Bayesian Selective Fusion 论文阅读及注解
  12. “UnsatisfiedDependencyException“的解决方案
  13. Equations (哈希)
  14. oracle中字段类型为date存储数据精确到时分秒的问题
  15. 【java】生成13位条形码(Ean-13码)
  16. JAVA工程师面试题目大全_绝对值得看
  17. Redis内存分析工具之redis-rdb-tools的安装与使用
  18. Windows安装Redis5.x
  19. 阿里云负载均衡【SLB】使用实践方案
  20. in a future version of numpy, it will be understood as (type, (1,))

热门文章

  1. Flash的坑之ExternalInterface.call只返回null值的解决办法
  2. Android Studio项目调用第三方库iconv
  3. [论文笔记]基于互信息的医学图像配准综述
  4. linux下安装rpm
  5. “补刀”原来游戏背景音乐还有这样的魅力
  6. Lesson15_内部类和常用类
  7. c语言empty函数返回结果,c++中函数empty()怎么使用
  8. discuz实现百度站内搜索论坛样式(辅助插件)
  9. java -- IO流之字节流
  10. Oracle 数据库一体机的崛起