一、获取代码方式

获取代码方式1:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

获取代码方式2:
完整代码已上传我的资源:【多目标优化求解】基于matlab蜻蜓算法求解多目标优化问题【含Matlab源码 477期】

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、蜻蜓算法简介

蜻蜓算法(Dragonfly Algorithm)是由Seyedali Mirjalili在2015年提出的一种新兴群智能算法。Reynoldz指出三个关于蜂群体行为准则:分离度、对齐度与聚合度。分离度是指相邻个体间保持适当距离,以免碰撞;对齐度是指速度和方向与相邻个体对齐;聚合度是指个体飞向相邻区域中心。蜻蜓主要目标都是生存,Seyedali Mirjalili提出五个因素影响蜻蜓算法的位置更新:分离,列队,聚集,捕食,逃离。数学模型如下:

三、部分源代码

%___________________________________________________________________%
%  Multi-Objective Dragonfly Algorithm (MODA) source codes demo     %
%                           version 1.0                             %
%                                                                   %
%  Developed in MATLAB R2011b(7.13)                                 %
%                                                                   %
%  Author and programmer: Seyedali Mirjalili                        %
%                                                                   %
%         e-Mail: ali.mirjalili@gmail.com                           %
%                 seyedali.mirjalili@griffithuni.edu.au             %
%                                                                   %
%       Homepage: http://www.alimirjalili.com                       %
%                                                                   %
%   Main paper:                                                     %
%                                                                   %
%   S. Mirjalili, Dragonfly algorithm: a new meta-heuristic         %
%   optimization technique for solving single-objective, discrete,  %
%   and multi-objective problems, Neural Computing and Applications %
%   DOI: http://dx.doi.org/10.1007/s00521-015-1920-1                %
%___________________________________________________________________%clc;
clear;
close all;% Change these details with respect to your problem%%%%%%%%%%%%%%
ObjectiveFunction=@ZDT1;
dim=5;
lb=0;
ub=1;
obj_no=2;if size(ub,2)==1ub=ones(1,dim)*ub;lb=ones(1,dim)*lb;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Initial parameters of the MODA algorithm
max_iter=100;
N=100;
ArchiveMaxSize=100;Archive_X=zeros(100,dim);
Archive_F=ones(100,obj_no)*inf;Archive_member_no=0;r=(ub-lb)/2;
V_max=(ub(1)-lb(1))/10;Food_fitness=inf*ones(1,obj_no);
Food_pos=zeros(dim,1);Enemy_fitness=-inf*ones(1,obj_no);
Enemy_pos=zeros(dim,1);X=initialization(N,dim,ub,lb);
fitness=zeros(N,2);DeltaX=initialization(N,dim,ub,lb);
iter=0;position_history=zeros(N,max_iter,dim);for iter=1:max_iterr=(ub-lb)/4+((ub-lb)*(iter/max_iter)*2);w=0.9-iter*((0.9-0.2)/max_iter);my_c=0.1-iter*((0.1-0)/(max_iter/2));if my_c<0my_c=0;endif iter<(3*max_iter/4)s=my_c;             % Seperation weighta=my_c;             % Alignment weightc=my_c;             % Cohesion weightf=2*rand;           % Food attraction weighte=my_c;             % Enemy distraction weightelses=my_c/iter;        % Seperation weighta=my_c/iter;        % Alignment weightc=my_c/iter;        % Cohesion weightf=2*rand;           % Food attraction weighte=my_c/iter;        % Enemy distraction weightendfor i=1:N %Calculate all the objective values firstParticles_F(i,:)=ObjectiveFunction(X(:,i)');if dominates(Particles_F(i,:),Food_fitness)Food_fitness=Particles_F(i,:);Food_pos=X(:,i);endif dominates(Enemy_fitness,Particles_F(i,:))if all(X(:,i)<ub') && all( X(:,i)>lb')Enemy_fitness=Particles_F(i,:);Enemy_pos=X(:,i);endendend[Archive_X, Archive_F, Archive_member_no]=UpdateArchive(Archive_X, Archive_F, X, Particles_F, Archive_member_no);if Archive_member_no>ArchiveMaxSizeArchive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);[Archive_X, Archive_F, Archive_mem_ranks, Archive_member_no]=HandleFullArchive(Archive_X, Archive_F, Archive_member_no, Archive_mem_ranks, ArchiveMaxSize);elseArchive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);endArchive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);% Chose the archive member in the least population area as foods% to improve coverageindex=RouletteWheelSelection(1./Archive_mem_ranks);if index==-1index=1;endFood_fitness=Archive_F(index,:);Food_pos=Archive_X(index,:)';% Chose the archive member in the most population area as enemies% to improve coverageindex=RouletteWheelSelection(Archive_mem_ranks);if index==-1index=1;endEnemy_fitness=Archive_F(index,:);Enemy_pos=Archive_X(index,:)';for i=1:Nindex=0;neighbours_no=0;clear Neighbours_Vclear Neighbours_X% Find the neighbouring solutionsfor j=1:NDist=distance(X(:,i),X(:,j));if (all(Dist<=r) && all(Dist~=0))index=index+1;neighbours_no=neighbours_no+1;Neighbours_V(:,index)=DeltaX(:,j);Neighbours_X(:,index)=X(:,j);endend% Seperation%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Eq. (3.1)S=zeros(dim,1);if neighbours_no>1for k=1:neighbours_noS=S+(Neighbours_X(:,k)-X(:,i));endS=-S;elseS=zeros(dim,1);end% Alignment%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Eq. (3.2)if neighbours_no>1A=(sum(Neighbours_V')')/neighbours_no;elseA=DeltaX(:,i);end% Cohesion%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Eq. (3.3)if neighbours_no>1C_temp=(sum(Neighbours_X')')/neighbours_no;elseC_temp=X(:,i);endC=C_temp-X(:,i);% Attraction to food%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Eq. (3.4)Dist2Attraction=distance(X(:,i),Food_pos(:,1));if all(Dist2Attraction<=r)F=Food_pos-X(:,i);iter;elseF=0;end% Distraction from enemy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Eq. (3.5)Dist=distance(X(:,i),Enemy_pos(:,1));if all(Dist<=r)E=Enemy_pos+X(:,i);elseE=zeros(dim,1);endfor tt=1:dimif X(tt,i)>ub(tt)X(tt,i)=lb(tt);DeltaX(tt,i)=rand;endif X(tt,i)<lb(tt)X(tt,i)=ub(tt);DeltaX(tt,i)=rand;endendif any(Dist2Attraction>r)if neighbours_no>1for j=1:dimDeltaX(j,i)=w*DeltaX(j,i)+rand*A(j,1)+rand*C(j,1)+rand*S(j,1);if DeltaX(j,i)>V_maxDeltaX(j,i)=V_max;endif DeltaX(j,i)<-V_maxDeltaX(j,i)=-V_max;endX(j,i)=X(j,i)+DeltaX(j,i);end

四、运行结果

五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.

【多目标优化求解】基于matlab蜻蜓算法求解多目标优化问题【含Matlab源码 477期】相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 【RRT三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 155期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT算法无人机三维 ...

  7. 【RRT三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 1363期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT算法无人机三维 ...

  8. 【A_star三维路径规划】基于matlab A_star算法无人机三维路径规划【含Matlab源码 446期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[三维路径规划]基于matlab A_star算法无人机三维路径规划[含Matlab源码 446期] 获取代码方式2: 付费专栏Matla ...

  9. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  10. 【Matlab电力负荷预测】粒子群优化支持向量机短期电力负荷预测【含GUI源码 751期】

    一.代码运行视频(哔哩哔哩) [Matlab电力负荷预测]粒子群优化支持向量机短期电力负荷预测[含GUI源码 751期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...

最新文章

  1. 使用组策略配置Windows 7的高级防火墙
  2. jquery 导航栏目
  3. HDU-3460 Ancient Printer 字典树
  4. 设计实现优雅修改redux数据流的一个库 - redux-chef
  5. 由HTTPS抓包引发的一系列思考(HTTPS解密)
  6. PHP与Spring的强势接口设计_微课介绍
  7. Python教学视频(五)顺序结构练习
  8. pythonpptx模块详解_详解 Python 操作 PPT 的各种骚操作!
  9. matlab编程绘制直方图,matlab绘制直方图程序
  10. matlab 交换两列数据,在MATLAB单元阵列的两列中列出单元格内容(List cell contents in two columns of MATLAB cell array)...
  11. TCP/IP协议各层的网络设备
  12. HTML基础-综合案例1-学生信息表
  13. Stimulsoft Reports如何进行数据连接
  14. 宏碁暗影骑士擎安装双系统踩坑记录
  15. HTML5——如何在网页中加入图片和超链接。
  16. 归途表情 哪个get到了你回家的心情
  17. django3.2连接虚拟机里的openGauss
  18. “基于医疗知识图谱的问答系统”代码解析(一)
  19. 己酸戊酯的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  20. 阿里收购豌豆荚 想什么呢?

热门文章

  1. form表单提交的时候,传过去的值是键值对的形式
  2. 与近似比固定算法的高性能算法
  3. Android的Context 安卓常用系统服务(当前运行包名/当前网络状态和开关网络/音频服务)...
  4. android:DDMS查看Threads
  5. 基于TCP的网络编程
  6. ESP8266(3)
  7. 2021-02-13
  8. 传智播客 多继承以及MRO顺序 学习笔记
  9. 20191112每日一句
  10. 20190916每日一句