候鸟算法matlab实现
文章目录
- 候鸟算法
- 候鸟算法过程简介
- 具体实现
- 原作者的实现
- matlab版本
候鸟算法
候鸟算法,(Migrating Birds Optimization Algorithm,简写为MBO)是由Ekrem Duman于2012年在研究二次指派问题(QAP)时提出的,本文致力于简介候鸟算法的具体过程及matlab版本的代码实现,如需了解算法思想及理论、实现方法与结果还请参考作者原论文1。
候鸟算法过程简介
作者在原文中对候鸟算法的描述如下:
其中n为鸟群中候鸟的数量,k为每只鸟每次探索的邻域数量,x为上一只鸟向下一只鸟传递的解的数量,m为每次更换领飞鸟之后鸟群迭代的次数,K为所有鸟总共需要探索邻域的次数。
在论文中,作者给出的参数建议为 n = 51, k = 3, x = 1, m = 10, K = x的三次方。
算法对应的中文解释如下2:
具体实现
注:在此部分 鸟 和 解决方案 都是指鸟群中的基本单位,代表的含义相同。
原作者的实现
原作者使用java实现了MBO算法。作者原文使用了面对对象的编程。把算法分为BirdsAlgorithm、Go、MetaHeuristic、Population、Solution五个部分。其中Go为算法实现的界面。
BirdsAlgorithm为算法的主要部分,构造函数为读取文件,初始化鸟群,更新鸟群,替换领飞鸟,更新领飞鸟之后的其他鸟;值得一提的是鸟群的设计,其中编号为0的为领飞鸟,奇数为左侧,偶数为右侧。
// 0
// 1 2
// 3 4
// 5 6
MetaHeuristic为读取文件的部分。
Population为鸟群,主要为添加/移除 鸟/解决方案,清空鸟群,获取鸟群中cost最大/最小的鸟。
Solution为解决方案,也就是创建一只鸟,随机初始化排列顺序,计算解决方案的cost,探索邻域,创建邻域数组,获取cost最小(表现最好)的邻域,添加一个邻域解决方案,将邻域解决方案排序,复制,比较,获取工厂排列顺序等方法。
matlab版本
因为实验的需求,我把作者的java版本改写成了matlab代码。由于我水平的限制,所以我只能用面向过程的方法改写。具体流程与作者的一致,代码中有比较详细的解释3。
在matlab中数组是从1开始的,所以鸟群只能编号为1是领飞鸟,偶数为左侧,除1之外的奇数为右侧。
对具体流程比较关心但不想看代码的也可以参考我的另一篇文章。
Migrating Birds Optimization: A new metaheuristic approach and its performance on quadratic assignment problem ↩︎
陈林烽,齐学梅,陈俊文,黄琤,陈付龙.批量流水调度问题的量子候鸟协同优化算法[J].计算机应用,2019,39(101):3250-3256. ↩︎
github代码 ↩︎
候鸟算法matlab实现相关推荐
- dst matlab,DSTcode DST跟踪算法MATLAB代码,复杂环境中仿多目标 实现的单 Other systems 其他 272万源代码下载- www.pudn.com...
文件名称: DSTcode下载 收藏√ [ 5 4 3 2 1 ] 开发工具: matlab 文件大小: 82 KB 上传时间: 2017-03-17 下载次数: 0 提 供 者: Mar ...
- 图片缩放 算法 matlab,图像放大算法总结及MATLAB源程序.doc
图像放大算法总结及MATLAB源程序 1,插值算法(3种): (1)最邻近插值(近邻取样法): 最近插值的的思想很简单就是把这个非整数坐标作一个四舍五入,取最近的整数点坐标处的点的颜色.可见,最邻近插 ...
- TDOA定位的Chan算法MATLAB源代码
TDOA定位的Chan算法MATLAB源代码 . function [POS_ref,POS1,POS2,POS3,POS4] = TDOA_chan(R,Pbs,Q) %************** ...
- dijkstra算法matlab代码_头脑风暴优化(BSO)算法(附MATLAB代码)
BSO讲解https://www.zhihu.com/video/1252605855767736320 B站搜索:随心390,同步观看视频 各位小伙伴可在闲鱼搜索 优化算法交流地,即可搜索到官方闲鱼 ...
- Algorithm之PrA:PrA之nLP非线性规划算法+Matlab 优化工具箱的GUI求解非线性规划
Algorithm之PrA:PrA之nLP非线性规划算法+Matlab 优化工具箱的GUI求解非线性规划 目录 PrA之nLP非线性规划算法 操作图文教程 PrA之nLP非线性规划算法 (1).编写M ...
- matlab虚拟力,31无线传感网络布局优化的虚拟力导向粒子群算法MATLAB源代码
无线传感网络布局优化的虚拟力导向粒子群算法MATLAB源代码 本源代码主要参考了下面的文献:王雪, 王晟, 马俊杰. 无线传感器网络布局的虚拟力导向微粒群优化策略[J]. 电子学报, 2007, 11 ...
- 亮度均匀性 matlab,求:亮度保持的夜景图像直方图均衡算法 matlab程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 求:亮度保持的夜景图像直方图均衡算法 matlab程序 我是大四学生,最近在做一个论文,头疼死了,不知道这个论文的程序怎么写.这里是matlab论坛 我想 ...
- bartlett 算法 matlab,GWO(灰狼优化)算法MATLAB源码逐行中文注解(转载)
以优化SVM算法的参数c和g为例,对GWO算法MATLAB源码进行了逐行中文注解. tic % 计时器 %% 清空环境变量 close all clear clc format compact %% ...
- 标准差分进化算法matlab程序实现(转载)
标准差分进化算法matlab程序实现 自适应差分演化算法方面的Matlab和C++代码及论文 差分进化算法 DE-Differential Evolution matlab练习程序(差异演化DE) [ ...
- matlab控制算法C语言,PID算法Matlab仿真程序和C程序
<PID算法Matlab仿真程序和C程序>由会员分享,可在线阅读,更多相关<PID算法Matlab仿真程序和C程序(6页珍藏版)>请在人人文库网上搜索. 1.增量式PID控制算 ...
最新文章
- 首场见习挑战赛倒计时3天!20000元奖学金瓜分就等你了!
- 计算机网络安全顾问啊,【网络安全咨询顾问工作内容|工作职责|网络安全咨询顾问做什么】-看准网...
- HttpRequest Java原生代码封装
- DotNetCore跨平台~配置文件与配置代码如何共存
- c语言双精度百分号,C语言输出百分号%的方法和示例
- svn php 与 apache 的关系 思维导图
- Linux程序接口实验:取进程标志及用户信息
- 推荐一首歌,个人感觉不错...
- linux erlang安装教程,linux(CentOS7)中安装erlang(20.3)以及rabbitmq(3.6.15)的步骤以及一些注意事项...
- [转载] python中numpy库的使用
- pythontkinter显示表格_详谈Python 窗体(tkinter)表格数据(Treeview)
- python调用Go代码
- java hql left join_求教hql的left join结合条件的写法
- ISO50001认证咨询,ISO50001能源管理体系认证企业初次审核需要准备的材料
- 【LGP5108】仰望半月的夜空
- 距离多普勒谱(RD谱)绘制方法及理解
- LVGL笔记11--lv_btn按钮
- jqgrid实现表头合并功能
- 轻松解决XMind文件配置错误(configuration area)
- Hadoop配置lzo压缩
热门文章
- IEEE投稿完整流程——以IEEE Transactions on Cybernetics为例
- C语言 输出斐波那契数列
- pdf文件转换成word文本文档去水印怎么弄
- Android用户注册界面设计
- PGSQL Key (id)=(1) already exists.
- bzoj:1922: [Sdoi2010]大陆争霸 (luogu 2446)
- 个人网站有赞云支付接口申请方法
- 身份证上传尺寸太大如何缩小?改照片尺寸的简单方法
- 淘宝/天猫上传图片到淘宝 API
- Oracle12C 基本操作和使用