智能优化算法:生物地理学优化算法-附代码

文章目录

  • 智能优化算法:生物地理学优化算法-附代码
    • 1.算法原理
    • 2.算法结果
    • 3.参考文献
    • 4.Matlab代码
    • 5.python代码

摘要:Alfred Wallace和Charles Darwin在19世纪提出了生物地理学理论,研究生物物种栖息地的分布、迁移和灭绝规律。Simon受到生物地理学理论的启发,在对生物物种迁移数学模型的研究基础上,于 2008年提出了一种新的智能优化算法 — 生物地理学优化算法(Biogeography-Based Optimization,BBO)。BBO算法是一种基于生物地理学理论的新型算法,具有良好的收敛性和稳定性,受到越来越多学者的关注。

1.算法原理

BO算法的基本思想来源于生物地理学理论。如图1所示,生物物种生活在多个栖息地(Habitat)上,每个栖息地用栖息适宜指数(Habitat Suitability Index,HSI)表示,与HSI相关的因素有降雨量、植被多样性、地貌特征、土地面积、温度和湿度等,将其称为适宜指数变量(Suitability Index Variables,SIV)。

图1.BBO算法中的多个栖息地

HSI是影响栖息地上物种分布和迁移的重要因素之一。较高 HSI的栖息地物种种类多;反之,较低 HSI的栖息地物种种类少。可见,栖息地的HSI与生物多样性成正比。高 HSI的栖息地由于生存空间趋于饱和等
问题会有大量物种迁出到相邻栖息地,并伴有少量物种迁入;而低 HSI的栖息地其物种数量较少,会有较多物种的迁入和较少物种的迁出。但是,当某一栖息地HSI一直保持较低水平时,则该栖息地上的物种会趋于灭绝,或寻找另外的栖息地,也就是突变。迁移和突变是BBO算法的两个重要操作。栖息地之间通过迁移和突变操作,增强物种间信息的交换与共享,提高物种的多样性。

BBO算法具有一般进化算法简单有效的特性,与其他进化算法具有类似特点。
(1)栖息适宜指数HSI表示优化问题的适应度函数值,类似于遗传算法中的适应度函数。HSI是评价解集好坏的标准。
(2)栖息地表示候选解,适宜指数变量 SIV 表示解的特征,类似于遗传算法中的“基因”。

(3)栖息地的迁入和迁出机制提供了解集中信息交换机制。高 HSI的解以一定的迁出率将信息共享给低HSI的解。
(4)栖息地会根据物种数量进行突变操作,提高种群多样性,使得算法具有较强的自适应能力。

BBO算法的具体流程为:
步骤1 初始化BBO算法参数,包括栖息地数量NNN、迁入率最大值III和迁出率最大值EEE、最大突变率 mmaxm_{max}mmax​ 等参数。
步骤2 初始化栖息地,对每个栖息地及物种进行随机或者启发式初始化。
步骤3 计算每个栖息地的适宜指数HSI;判断是否满足停止准则,如果满足就停止,输出最优解;否则转步骤4。
步骤4 执行迁移操作,对每个栖息地计算其迁入率和迁出率,对SIV进行修改,重新计算适宜指数HSI。
步骤5 执行突变操作,根据突变算子更新栖息地物种,重新计算适宜指数HSI。
步骤6 转到步骤3进行下一次迭代。

1.1 迁移操作

如图2所示,该模型为单个栖息地的物种迁移模型。

图2.BBO算法的迁移模型

横坐标为栖息地种群数量 S ,纵坐标为迁移比率 η,λ(s) 和 μ(s) 分别为种群数量的迁入率和迁出率。当种群数量为 0 时,种群的迁出率 μ(s) 为 0,种群的迁入率λ(s) 最大;当种群数量达到 S max 时,种群的迁入率 λ(s)为0,种群迁出率 u(s) 达到最大。当种群数量为 S 0 时,迁出率和迁入率相等,此时达到动态平衡状态。根据图2,得出迁入率和迁出率为:
{λ(s)=I(1−S/Smax)u(s)=ES/Smax(1)\begin{cases} \lambda(s) = I(1-S/S_{max}) \\ u(s)=ES/S_{max} \end{cases}\tag{1} {λ(s)=I(1−S/Smax​)u(s)=ES/Smax​​(1)
迁移操作的步骤可以描述为:
Step1:for i= 1 to N do
Step2: 用迁入率λiλ_iλi​ 选取xjx^jxj

Step3: if (0,1)之间的均匀随机数小于λiλ_iλi​ then
Step4: for j= 1 to N do
Step5: 用迁出率 uiu_iui​ 选取xjx_jxj​
Step6: if (0,1)之间的均匀随机数小于 uiu_iui​ then
Step7: 从 xjx^jxj中随机选取一个变量SIV
Step8: 用SIV替换xix^ixi中的一个随机SIV
Step9: end if
Step10: end for
Step11: end if
Step12:end for

1.2 突变(Mutation)操作

突变操作是模拟栖息地生态环境的突变,改变栖息地物种的数量,为栖息地提供物种的多样性,为算法提供更多的搜索目标。栖息地的突变概率与其物种数量概率成反比。即
ms=mmax(1−Ps/Pmax)(2)m_s = m_{max}(1-P_s/P_{max})\tag{2} ms​=mmax​(1−Ps​/Pmax​)(2)
其中: mmaxm_{max}mmax​ 为最大突变率; PsP_sPs​ 为栖息地中物种数量为 sss对应的概率; PmaxP_{max}Pmax​ 为 PsP_sPs​ 的最大值; msm_sms​ 是栖息地中物种数量为 sss对应的突变概率。

突变操作的步骤可以描述为:
Step1:for i= 1 to N do
Step2: 计算突变概率 PsP_sPs​
Step3: 用突变概率 PsP_sPs​ 选取一个变量 xix_ixi​
Step4: if (0,1)之间的均匀随机数小于 msm_sms​ then
Step5: 随机一个变量代替 xix^ixi 中的SIV
Step6: end if
Step7:end for

2.算法结果

3.参考文献

[1] Simon D.Biogeography-based optimization[J].IEEE Trans-
actions on Evolutionary Computation,2008(6):702-713.

[2]张国辉,聂黎,张利平.生物地理学优化算法理论及其应用研究综述[J].计算机工程与应用,2015,51(03):12-17.

4.Matlab代码

生物地理学优化算法
算法相关应用

名称 说明或者参考文献
生物地理学优化的BP神经网络(预测) https://blog.csdn.net/u011835903/article/details/112149776(原理一样,只是优化算法用生物地理学优化算法)
基于共生生物算法的无线传感器网(WSN)覆盖优化 https://blog.csdn.net/u011835903/article/details/109262039(原理一样,只是优化算法用生物地理学优化算法)
基于共生生物算法的3D无线传感器网(WSN)覆盖优化 https://blog.csdn.net/u011835903/article/details/113834323(原理一样,只是优化算法用生物地理学优化算法)

5.python代码

个人资料介绍

智能优化算法:生物地理学优化算法-附代码相关推荐

  1. 智能优化算法:闪电搜索算法-附代码

    智能优化算法:闪电搜索算法-附代码 文章目录 智能优化算法:闪电搜索算法-附代码 1.算法原理 1.1 过渡放电体 1.2 空间放电体 1.3 引导放电体 2.算法结果 3.参考文献 4.Matlab ...

  2. 智能优化算法:布谷鸟搜索算法-附代码

    智能优化算法:布谷鸟搜索算法-附代码 文章目录 智能优化算法:布谷鸟搜索算法-附代码 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 摘要:谷鸟搜索算法(cuckoo search , ...

  3. 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码

    基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...

  4. 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码

    基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...

  5. 相位 unwrap 与 wrap 算法详解(附代码)

    相位 unwrap 与 wrap 算法详解(附代码) 最近接手了一个项目,光通信方面的,我负责编写初测结果的数据处理算法,其中有一个算法叫做 unwrap 与 wrap,之前没有听说过.通过询问同事与 ...

  6. 数据挖掘领域十大经典算法之—SVM算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-Apriori算法 数据挖掘领域十大经 ...

  7. 二分查找算法详解(附代码)

    二分查找算法详解(附代码) 注: 现有一个升序 不重复的数组 查询target是否在此数组中并返回序号 使用条件 使用二分算法的两个条件: 有序 不重复 混淆处 二分算法两种方式容易弄混淆的地方:就是 ...

  8. 数据挖掘领域十大经典算法之—AdaBoost算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-SVM算法(超详细附代码) 数据挖掘领 ...

  9. 麻雀优化算法_多种智能优化算法应用案例分享-附代码

    1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客​blog.csdn.net 2.智能优化算法 ...

  10. 智能优化算法:麻雀搜索算法-附代码

    2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...

最新文章

  1. android平台 arcgisr_ArcGIS Runtime For Android 开发 (7)
  2. 为什么不建议在 MySQL 中使用 UTF-8?
  3. P1223 排队接水
  4. 单片机8位抢答器实训机电报告_【机电技术应用专业】培育智能制造人才 迈进工科大学殿堂...
  5. java resourse 报错_java.nio.file.InvalidPathException: Illegal char :
  6. python已知有列表_python 列表常用方法
  7. K-fold vs. Monte Carlo cross-validation(K折交叉验证与蒙特卡洛交叉验证(MCCV))
  8. 灾备行业最全常用术语
  9. 基于单片机智能电子密码锁设计(毕业设计资料)
  10. 常用BUG管理工具系统
  11. markdown java代码块 语法_MarkDown 语法详解
  12. Codeforces 274E. Mirror Room-模拟+STL
  13. 【本科课程学习】数据库考试复习题(带答案)
  14. oracle bbed 推进scn
  15. php中以双下划线打头的作用
  16. 中国劳动力动态调查数据(CLDS)2011-2018年
  17. ip话机 mitel_华为IP话机
  18. 数据科学与大数据分析之项目4-主题建模
  19. springboot shiro设置session过期时间
  20. linux下看网卡版本,Linux下查看网卡驱动和版本信息

热门文章

  1. C++ 函数需要有返回值,但非全分支return(RVO)
  2. Jupyter编程完成对手写体Mnist数据集中10个字符 (0-9)的分类识别
  3. (day 49 - 另起数组牺牲空间换取时间 ) 剑指 Offer 66. 构建乘积数组
  4. 关于 Spring 注解和 XML 的选择问题
  5. 飞信机器人 ld-linux.so.2,基于linux的飞信机器人2010版安装
  6. PHP可以读取什么配置文件,使用php读取配置文件
  7. python的输入输出语句_Python基本输出语句/输入语句/变量解析
  8. mysql 里的1对n虚线_mysql workbench EER图,里面的实线以及虚线的关系
  9. React:Redux简介
  10. Java编程:弗洛伊德算法(无向图所有顶点最小路径)