一、获取代码方式

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

获取代码方式2:
完整代码已上传我的资源:【多目标求解】基于matlab自适应风驱动算法求解多目标优化问题【含Matlab源码 1414期】

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

二、部分源代码

function MO_AWDO_v01()
%-------------------------------------------------------------------------tic; clear; close all; clc;
format long g;
%--------------------------------------------------------------ArchiveParetoFronts = [];% User defined parameters:
param.popsize = 100;   % population size.
param.npar = 10;         % Dimension of the problem.
param.maxit = 100;     % Maximum number of iterations.
maximumV = 0.5;             % maximum allowed speed.
%--------------------------------------------------------------% AWDO will select the coefficient values; alpha, RT, g, c, and Vmax:
rec.arx = rand(5,param.popsize);   %consistent with the CMAES indexing
%---------------------------------------------------------------% Initialize WDO population, position and velocity:
% Randomize population position in the range of [-1, 1]:
pos = 2*(rand(param.popsize,param.npar)-0.5);
% Randomize velocity in the range of [-Vmax, Vmax]:
vel = maximumV * 2 * (rand(param.popsize,param.npar)-0.5);
%---------------------------------------------------------------% Evaluate initial population via multi-objective function:
for K=1:param.popsize,
%     [f1,f2] = kursawe(pos(K,:));
%     [f1,f2] = kita(pos(K,:));
%     [f1,f2] = schaffer(pos(K,:));
%     [f1,f2] = ZDT1(pos(K,:));[f1,f2] = ZDT4(pos(K,:));pres(K,:) = [f1,f2];
end
%----------------------------------------------------------------
%
% Call non-dominated sorting to identify the Pareto-front that each particle belongs:
posF=[pos, pres];
f = non_domination_sort_mod(posF, 2,param.npar);  % f = [pos, f1, f2, rank]% extract the rank index, i.e. which Pareto-front the particle belongs:
rank_ind = f(:,param.npar+3);% Select the Pareto-front == 1 particles as Global Best Position:
globalposPOP = f( (f(:,param.npar+3) ==1) , 1:param.npar);
% Archieve the rank 1 particles:
ArchiveParetoFronts = [ArchiveParetoFronts; f( (f(:,param.npar+3) ==1) , 1:(param.npar+2) )];%-----------------------------------------------------------------
% Start iterations :
iter = 1;   % iteration counter
for ij = 2:param.maxit,ij% Update the velocity:for i=1:param.popsize% choose random dimensions:a = randperm(param.npar);                 % choose velocity based on random dimension:velot(i,:) = vel(i,a);% randomly select a globalpos from the 1st Pareto-front members[aa, bb] = size(globalposPOP);globalpos = globalposPOP(round(((aa-1) * rand(1,1)) + 1),:);vel(i,:) = (1-rec.arx(1,i))*vel(i,:)-(rec.arx(2,i)*pos(i,:))+ ...abs(1-1/rank_ind(i))*((globalpos-pos(i,:)).*rec.arx(3,i))+ ...(rec.arx(4,i)*velot(i,:)/rank_ind(i));   end% maxV is optimized by CMAES. Limit it maximumV defined by usermaxV = rec.arx(5,:);maxV = min(maxV, repmat(maximumV, size(rec.arx(5,:),1),  size(rec.arx(5,:),2)) );maxV = max(maxV, repmat(-maximumV, size(rec.arx(5,:),1),  size(rec.arx(5,:),2)) );% Check velocity limits:vel = min(vel, repmat(maxV',1,param.npar));vel = max(vel, -repmat(maxV',1,param.npar));% Update air parcel positions:pos = pos + vel;pos = min(pos, 1.0);pos = max(pos, -1.0); % Evaluate population: (Pressure)for K=1:param.popsize,
%             [f1,f2] = kursawe(pos(K,:));
%             [f1,f2] = kita(pos(K,:));
%             [f1,f2] = schaffer(pos(K,:));
%             [f1,f2] = ZDT1(pos(K,:));[f1,f2] = ZDT4(pos(K,:));pres(K,:) = [f1,f2];end% Call non-dominated sorting to identify the Pareto-front that each particle belongs:posF=[pos, pres];f = non_domination_sort_mod(posF, 2,param.npar);  % f = [pos, f1, f2, rank]% extract the rank index, i.e. which Pareto-front the particle belongs:rank_ind = f(:,param.npar+3);% Select the Pareto-front == 1 particles and add them to the archieve along previous Pareto-fronts:ArchiveParetoFronts = [ArchiveParetoFronts; f( (f(:,param.npar+3) ==1) , 1:(param.npar+2) )];% Run the non-dominated sort among the Archieve members:f = non_domination_sort_mod(ArchiveParetoFronts, 2,param.npar);        % Replace the archieve with only the rank=1 members:ArchiveParetoFronts = f( (f(:,param.npar+3) ==1) , 1:(param.npar+2) );% Use rank=1 members as global position:globalposPOP = f( (f(:,param.npar+3) ==1) , 1:param.npar);  %--------------------------------% call CMAES [rec] = purecmaes_wdo(ij,rec,param.popsize,pres(:, mod(ij,2)+1));%%% PRES has two values, pass one of the pres values at each iter%%% alternating between two.%----------------------------------------------------end%%% PLOT RESULTS:% Call non-dominant sorting:f = non_domination_sort_mod(ArchiveParetoFronts, 2,param.npar);% Plot the MO-results -- debugging purposespres2plot = f( (f(:,param.npar+3) ==1) , param.npar+1 : param.npar+2);plot(pres2plot(:,1), pres2plot(:,2),'ko')xlabel('F1'); ylabel('F2')grid on
%         save('Results.mat','pres2plot')hold on% load the known-Pareto-front data for plotting:z = load('paretoZDT4.dat');[a,b]=sort(z(:,2));z = z(b,:);plot(z(:,1),z(:,2),'-k')end
% end-of-WDO.%----------------------------------------------------------------------
%----------------------------------------------------------------------
%----------------------------------------------------------------------

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
《智能优化算法及其MATLAB实例(第2版)》包子阳 余继周 杨杉著 电子工业出版社

【多目标优化求解】基于matlab自适应风驱动算法求解多目标优化问题【含Matlab源码 1414期】相关推荐

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

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

  2. 【Matlab指纹识别】指纹识别门禁系统【含GUI源码 1692期】

    一.代码运行视频(哔哩哔哩) [Matlab指纹识别]指纹识别门禁系统[含GUI源码 1692期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继 ...

  3. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

  4. 【Matlab树叶分类】BP神经网络植物叶片分类【含GUI源码 916期】

    一.代码运行视频(哔哩哔哩) [Matlab树叶分类]BP神经网络植物叶片分类[含GUI源码 916期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅 ...

  5. 【Matlab水果蔬菜识别】形态学水果蔬菜识别【含GUI源码 919期】

    一.代码运行视频(哔哩哔哩) [Matlab水果蔬菜识别]形态学水果蔬菜识别[含GUI源码 919期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅. ...

  6. 【Matlab青草识别】形态学马唐草+牛筋草识别【含GUI源码 908期】

    一.代码运行视频(哔哩哔哩) [Matlab青草识别]形态学马唐草+牛筋草识别[含GUI源码 908期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅 ...

  7. 【Matlab限速标志识别】形态学限速标志识别【含GUI源码 1142期】

    一.代码运行视频(哔哩哔哩) [Matlab限速标志识别]形态学限速标志识别[含GUI源码 1142期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅 ...

  8. 【APF三维路径规划】基于matlab人工势场算法无人机三维路径规划【含Matlab源码 168期】

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

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

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

  10. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

最新文章

  1. 专业的秘密 | 南方医科大学生物信息学专业
  2. CCF大数据专家委:2018年大数据发展趋势预测
  3. [原创]Javascript类成员的作用域
  4. 赴马来西亚旅游遇车祸 70岁中国籍老人不幸身亡
  5. Springboot线程池的使用和扩展
  6. Yii2 mongodb 扩展的where的条件增加大于 小于号
  7. 10-10-010-简介-重要概念背诵
  8. mac用python爬虫下载图片_利用Python爬虫采集mac电脑皮肤|简明python教程|python入门|python教程...
  9. 阿里技术副总裁贾扬清、微软 CTO 韦青重磅出席 AI 开发者大会!
  10. 搭载Apple芯片的Mac如何使用macOS恢复?
  11. Win10下的Hp1020P打印机。
  12. z17刷机miui12教程_努比亚Z17 MIUI12开发版 匠心独特 完美ROOT 隐私升级 通知栏升级...
  13. Android转接电话到iPhone,Android迁移数据到iPhone
  14. 美中嘉和在港交所招股书失效:去年亏损约5亿元,杨建宇为实控人
  15. 吉林省注册公司流程:第一步 企业名称预先核准流程。
  16. CentOS 7下的软件安装方法及策略
  17. jre包括jvm和java核心类库_包含JVM标准实现及Java核心类库
  18. 数据分析: kaggle比赛 - 销量预测
  19. Vue3发布半年我不学,摸鱼爽歪歪,哎~就是玩儿
  20. (转)ibatis Tips 之 java.util.Map作为parameterClass和resultClass

热门文章

  1. maven搭建mybatis测试
  2. Python安装学习
  3. VMware系统运维(十一)部署虚拟化桌面 Horizon View 5.2 HTML ACCESS安装
  4. javascript二叉树基本功能实现
  5. sql server 2008r2 备份到局势网共享硬盘
  6. SouthidcEditor编辑器如何支持上传png图片
  7. POJ 2752 Seek the Name, Seek the Fame (KMP)
  8. 李昌镐究竟是不是神?
  9. learning opencv3: 一:overview 打开自己的视频文件加上暂停快进按钮
  10. 七月算法机器学习5 回归分析与工程应用 小案例