1 简介

人工蜂群算法(Artificial Bee Colony Algorithm, 简称ABC算法)是一个由蜂群行为启发的算法,在2005年由Karaboga小组为优化代数问题而提出。​

2 部分代码

%%%%%%%%%%%寻找支配解%%%%%%%%

function non_dom=quick_sort(pop)

npop=size(pop,1);

K=10;

pop(:,K+3)=0;

for i=1:npop

pop(i,K+3)=0;

for j=1:i-1

if pop(j,K+3)==0

if Dominates(pop(i,K+1:K+2)',pop(j,K+1:K+2)')

pop(j,K+3)=1;

elseif Dominates(pop(j,K+1:K+2)',pop(i,K+1:K+2)')

pop(i,K+3)=1;

break;

end

end

end

end

ind=find(pop(:,K+3)==0);

non_dom=pop(ind,1:K+2);

% [N,P]=size(pop);

% M=2;                    %目标函数值的个数

% V=10;                    %每个目标函数值的维数

% non_dom=[];

% individual=pop;         %pop:种群(自变量+目标函数值),行数为种群数量

% while ~isempty(individual)  %individual为空时停止循环

%     temp1=[];

%     temp2=[];

%     flag=0;

%     %Number of individuals that dominate this individual  支配i的解的个数

%     %individual(i).n=0;

%     %Individuals which this individual dominate            被i支配的解

%     %individual(i).p=[]

%     for i=2:size(individual,1)               %size(individual,1)为individual的行数

%         dom_less=0;

%         dom_equal=0;

%         dom_more=0;

%         for j=1:M                            %M=2,两个目标函数

%             if(individual(1,V+j)<individual(i,V+j))  %V=6,每个目标函数均为六维   %%pareto支配判断

%                 dom_less=dom_less+1;         %解1有可能支配解i

%             elseif  (individual(1,V+j)==individual(i,V+j))

%                 dom_equal=dom_equal+1;       %互不支配

%             else

%                 dom_more=dom_more+1;         %解1有可能被解i支配

%             end

%         end

%         if dom_less==0 && dom_equal~=M       %该行为真时,表示解i支配解1

%             flag=flag+1;                     %flag中存放解i支配解1的个数

%             temp1=[temp1;individual(i,:)];   %temp1中存放支配解i

%         elseif dom_more==0 && dom_equal~=M   %该行为真时,表示解1支配解i

%             temp2=[temp2;individual(1,:)];   %temp2中存放支配解1

%        else                                %其余情况:两个解互不支配

%             temp1=[temp1;individual(i,:)];   %temp1中也存放有可能支配的解i

%         end                                  %则称j优于i,则把此时的j放入individual(i)_p中

%     end                                      %循环结束时,表示解1依次与后面所有的解进行了支配判别

%     if flag==0||isempty(temp1)               %该行判断值为真时,表示解1不受当前任何解的支配

%         %即解1为当前解集中的一个pareto最优解

%         non_dom=[non_dom;individual(1,:)];

%     end

%     individual=temp1;                        %此时temp1中存放的就是通过上次比较后剩下的非支配解(非支配解即不受其他解支配)

end

3 仿真结果

4 参考文献

[1]李永正. 改进人工蜂群算法求解多目标连续优化问题[J]. 哈尔滨师范大学自然科学学报, 2018, 34(2):5.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【智能优化算法】基于人工蜂群算法求解多目标优化问题附matlab代码相关推荐

  1. 【布局优化】基于人工蜂群算法的无线传感器网(WSN)覆盖优化matlab源码

    一.WSN模型 1.1 动机 近年来,随着对等网络.云计算和网格计算等分布式环境的发展,无线传感器网络(WSN)得到了广泛的应用.无线传感器网络(WSN)是一种新兴的计算和网络模式,它可以被定义为一个 ...

  2. 【图像增强】基于人工多重曝光融合AMEF实现图像去雾附matlab代码

    1 简介 Bad weather conditions can reduce visibility on images acquired outdoors, decreasing their visu ...

  3. 【雷达检测】基于复杂环境下的雷达目标检测技术附Matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  4. ​【优化求解】基于人工蜂群算法求解无刷直流电机PID控制matlab代码

    1 简介 高精度的精密微位移系统在近代尖端工业生产和科学研究领域内占有极其重要的地位.它广泛应用于航空航天.微型机械制造.超精密加工.医学.生物工程等领域.纳米级位移定位技术已经成为推动科技发展的前进 ...

  5. 基于人工蜂群算法的线性规划求解matlab程序

    基于人工蜂群算法的线性规划求解matlab程序 1 人工蜂群算法概述 2005年D. Karaboga教授仿照蜜蜂集群采蜜生物行为,提出了人工蜂群仿生算法,可以有效解决有关函数优化等相关难题.ABC算 ...

  6. matlab基于人工蜂群算法的函数优化分析【matlab优化算法十一】

    基于人工蜂群算法的函数优化分析 自然界中的群居昆虫,它们虽然个体结构简单,但是通过个体间的合作却能够表现出极其复杂的行为能力.受这些社会性昆虫群体行为的启发,研宄者通过模拟这些群体的行为提出了群集智能 ...

  7. 智能优化算法:人工蜂群算法-附代码

    智能优化算法:人工蜂群算法 文章目录 智能优化算法:人工蜂群算法 1.算法原理 1.1 蜂群的初始化 1.2 雇佣蜂阶段 1.3 跟随蜂阶段 1.4 探索蜂阶段 2.算法流程 3.算法结果 4.参考文 ...

  8. 基于人工蜂群算法改进的DELM预测-附代码

    人工蜂群算法改进的深度极限学习机DELM的回归预测 文章目录 人工蜂群算法改进的深度极限学习机DELM的回归预测 1.ELM原理 2.深度极限学习机(DELM)原理 3.人工蜂群算法 4.人工蜂群算法 ...

  9. 基于人工蜂群算法的函数寻优算法

    文章目录 一.理论基础 二.算法流程 1.初始化阶段 2.引领蜂阶段 3.跟随蜂阶段 4.侦察蜂阶段 5.食物源 三.MATLAB程序实现 1.清空环境变量 2.问题设定 3.参数设置 4.初始化蜜蜂 ...

  10. 群智能算法之人工蜂群算法(ABC算法)

    人工蜂群算法(ABC算法)(Artificial Bee Colony) 该算法标准原型代码下载地址:https://abc.erciyes.edu.tr/index.htm ,包括C.Java.Ma ...

最新文章

  1. cocos2dx3.4 VS2012无法打开包含文件extensions/ExtensionExport.h
  2. 线程安全且高效的单例
  3. 一组图诠释CNN及RNN的区别
  4. python爬虫中三种数据解析方式
  5. json 服务器 文件,json属于服务器文件吗
  6. 【cocos2d-x从c++到js】13:回调函数2——JSCallbackWrapper
  7. 计算机网络(九)——简述Socket
  8. Flutter框架优缺点
  9. 第三章 part1 中值定理
  10. 2019-9-2-C#命令行解析工具
  11. 直播平台多人连麦技术介绍
  12. 19. 卫健委官网医院查询爬虫+验证码识别(云打码)综合案例
  13. bucket name does not follow Amazon S3 standards
  14. 知乎网站2010年12月开放,三个月后获得了李开复的天使投资
  15. 计算相关系数 皮尔逊相关系数 Pearson、Spearman
  16. USIM卡与SIM的区别
  17. java计算机毕业设计基于ssm的协同过滤算法的电影推荐系统(源代码+数据库+Lw文档)
  18. Ubuntu22.04分区设置
  19. 如何拍出来好看的Vlog,必备小技能(六)?
  20. Angelababy伴娘团礼服最丑被批心机重?赞陈妍希最贴心

热门文章

  1. github代码行数统计
  2. Web容器(一):Web容器简介
  3. JAVA防疫科普微课堂计算机毕业设计Mybatis+系统+数据库+调试部署
  4. 注册了图形商标还需要申请登记版权吗?
  5. vue项目中如何引入阿里矢量图
  6. C语言万年历,C语言趣味程序
  7. 在饼图上显示百分比值(报表生成器和 SSRS)
  8. 【安卓学习之第三方库】异常上报 库(Crash搜集)
  9. Oracle P6软件起源与发展
  10. 很多工程项目没有意识到Oracle P6软件的重要性