一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【优化算法】多目标蝗虫优化算法(MOGOA)【含Matlab源码 937期】

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

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

二、蝗虫优化算法(GOA)简介


1 GOA数学模型



2 GOA迭代模型


3 GOA算法的基本流程


4 GOA缺点

三、部分源代码

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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
flag=0;
if (rem(dim,2)~=0)dim = dim+1;ub = [ub, 1];lb = [lb, 0];flag=1;
endmax_iter=100;
N=200;
ArchiveMaxSize=100;Archive_X=zeros(100,dim);
Archive_F=ones(100,obj_no)*inf;Archive_member_no=0;%Initialize the positions of artificial whales
GrassHopperPositions=initialization(N,dim,ub,lb);TargetPosition=zeros(dim,1);
TargetFitness=inf*ones(1,obj_no);cMax=1;
cMin=0.00004;
%calculate the fitness of initial grasshoppersfor iter=1:max_iterfor i=1:NFlag4ub=GrassHopperPositions(:,i)>ub';Flag4lb=GrassHopperPositions(:,i)<lb';GrassHopperPositions(:,i)=(GrassHopperPositions(:,i).*(~(Flag4ub+Flag4lb)))+ub'.*Flag4ub+lb'.*Flag4lb;GrassHopperFitness(i,:)=ObjectiveFunction(GrassHopperPositions(:,i)');if dominates(GrassHopperFitness(i,:),TargetFitness)TargetFitness=GrassHopperFitness(i,:);TargetPosition=GrassHopperPositions(:,i);endend[Archive_X, Archive_F, Archive_member_no]=UpdateArchive(Archive_X, Archive_F, GrassHopperPositions, GrassHopperFitness, 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);index=RouletteWheelSelection(1./Archive_mem_ranks);if index==-1index=1;endTargetFitness=Archive_F(index,:);TargetPosition=Archive_X(index,:)';c=cMax-iter*((cMax-cMin)/max_iter); % Eq. (3.8) in the paperfor i=1:Ntemp= GrassHopperPositions;for k=1:2:dimS_i=zeros(2,1);for j=1:Nif i~=jDist=distance(temp(k:k+1,j), temp(k:k+1,i));r_ij_vec=(temp(k:k+1,j)-temp(k:k+1,i))/(Dist+eps);xj_xi=2+rem(Dist,2);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Eq. (3.2) in the paper s_ij=((ub(k:k+1)' - lb(k:k+1)') .*c/2)*S_func(xj_xi).*r_ij_vec;S_i=S_i+s_ij;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%endendS_i_total(k:k+1, :) = S_i;endX_new=c*S_i_total'+(TargetPosition)'; % Eq. (3.7) in the paperGrassHopperPositions_temp(i,:)=X_new';end% GrassHopperPositionsGrassHopperPositions=GrassHopperPositions_temp';display(['At the iteration ', num2str(iter), ' there are ', num2str(Archive_member_no), ' non-dominated solutions in the archive']);
endif (flag==1)TargetPosition = TargetPosition(1:dim-1);
endfigureDraw_ZDT1();hold onplot(Archive_F(:,1),Archive_F(:,2),'ro','MarkerSize',8,'markerfacecolor','k');legend('True PF','Obtained PF');
title('MOGOA');set(gcf, 'pos', [403   466   230   200])

四、运行结果

五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.

【优化算法】多目标蝗虫优化算法(MOGOA)【含Matlab源码 937期】相关推荐

  1. 【优化布局】基于matlab免疫算法求解充电站最优布局【含Matlab源码 2539期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[生产调度]基于matlab免疫算法求解生产调度零等待问题[含Matlab源码 1178期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

  2. 【微电网优化】基于matlab粒子群算法求解综合能源系统优化问题【含Matlab源码 1969期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[微电网优化]基于matlab粒子群算法求解综合能源系统优化问题[含Matlab源码 1969期] 点击上面蓝色字体,直接付费下载,即可. ...

  3. 【数字信号去噪】基于matlab粒子群算法优化VMD分解分量选择数字信号降噪【含Matlab源码 1979期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数字信号去噪]基于matlab粒子群算法优化VMD分解分量选择数字信号降噪[含Matlab源码 1979期] 点击上面蓝色字体,直接付费 ...

  4. 【优化布局】免疫算法求解充电站最优布局【含Matlab源码 2539期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[生产调度]基于matlab免疫算法求解生产调度零等待问题[含Matlab源码 1178期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

  5. 【雷达通信】基于matlab NCP算法SAR回波生成和成像【含Matlab源码 1185期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[雷达通信]基于matlab NCP算法SAR回波生成和成像[含Matlab源码 1185期] 点击上面蓝色字体,直接付费下载,即可. 获 ...

  6. 【配送路径规划】蚁群算法求解配送路径最短问题【含Matlab源码 2222期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  7. 【配送路径规划】基于matlab蚁群算法求解配送路径最短问题【含Matlab源码 2222期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  8. 【PSO三维路径规划】基于matlab粒子群算法融合鸡群算法多无人机三维路径规划【含Matlab源码 1792期】

    一.无人机简介 无人机的航迹规划是指在综合考虑无人机飞行油耗.威胁.飞行区域以及自身物理条件限制等因素的前提下, 为飞行器在飞行区域内规划出从初始点到目标点最优或者满意的飞行航迹, 其本质是一个多约束 ...

  9. 【栅格地图路径规划】基于matlab D星和D星_Lite算法机器人栅格地图路径规划【含Matlab源码 2530期】

    ⛄一.简介 "D*算法"的名称源自 Dynamic A Star,最初由Anthony Stentz于"Optimal and Efficient Path Planni ...

  10. 【PSO三维路径规划】基于matlab粒子群算法无人机山地三维路径规划【含Matlab源码 1405期】

    ⛄一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水 ...

最新文章

  1. 为什么servlet-nameaction/servlet-name要这么写
  2. linux c 获取系统进程总数
  3. ajax传formdata类型的数据_JQuery.Ajax()的data参数类型
  4. hibernate对象关系实现(二)一对一
  5. 检查本机显卡的cuda信息及适配cuda-sdk版本
  6. spring依赖注入_Spring的依赖注入陷阱
  7. Chapter7-8_Deep Learning for Constituency Parsing
  8. 大众点评订单系统分库分表实践
  9. CSS reset的重新审视 – 避免样式重置
  10. Android滑动到顶部悬停
  11. HIbernate学习笔记5 之 查询
  12. RNA_seq(1)植物转录组实战(中)之subread工具进行序列比对和转录组生物学定量
  13. 求两个数的最小公倍数和最大公因数
  14. Android商业模式
  15. Docker Build Cache 缓存清理
  16. 【C语言】函数:实现一个函数,打印乘法口诀表
  17. 2019年2月18日,异常作业
  18. 无线射频专题《射频基础,射频特征,波长,频率,振幅,相位》
  19. 3D进阶之OSG:从VS2019编译osgEarth开始
  20. MAC下解压(.xip)文件

热门文章

  1. plsql 存储过程 测试
  2. jquery-animate()动画
  3. webform(八)组合查询
  4. HTTP Content-type整理
  5. ubuntu 18下安装vscode教程两种方法总计
  6. 20190801每日一句
  7. Leap 使用注意事项
  8. 181023词霸有道扇贝每日一句
  9. HCI实验数据分析之数据可靠性计算,绘制箱图,描述性变量统计,ANOVA,Bonferroni 的连续变量方差分析
  10. Atitit 常见硬件集成列表 目录 1.1. 小程序设备类 1 1.2. atitit.常见手机的传感器与外设 attilax总结 1 1.3. Pc机外设 1 1.4. 设备管理器 2 1.1