多目标工程应用:多目标向日葵优化算法(MOSFO)求解3个工程应用

作品简介

一、算法简介

多目标向日葵优化算法(Multi-objective sunflower optimization,MOSFO)由Joao Luiz Junho Pereira等人于2023年提出。


二、算法原理

MOSFO算法描述如下:

三、数值实验

将MOSFO用于求解以下3个问题:

3.1实验结果:

MOSFO种群设置为200,最大迭代次数为100。

close all;
clear ; 
clc;
%%
% TestProblem测试问题说明:
%一共3个工程应用(1-3)
%%
TestProblem=2;%1-3
MultiObj = GetFunInfo(TestProblem);
MultiObjFnc=MultiObj.name;%问题名
% Parameters
params.Np = 200;        % Population size 种群大小
params.Nr = 200;        % Repository size 外部存档中最大数目,可适当调整大小,越大,最终获得的解数目越多
params.maxgen =100;    % Maximum number of generations 最大迭代次数
params.ngrid = 30;      % Number of grids in each dimension
params.maxvel = 5;      % Maxmium vel in percentage


% MOSFO
[XPF,FVALPF] = MOSFO(params,MultiObj);
%% 画结果图
figure(2)
if(size(FVALPF,2)==2)
    h_rep = plot(FVALPF(:,1),FVALPF(:,2),'ok'); hold on;
       if(isfield(MultiObj,'truePF'))
            h_pf = plot(MultiObj.truePF(:,1),MultiObj.truePF(:,2),'.r'); hold on;
            legend('MOSFO','TruePF');
       else
           legend('MOSFO');
       end


        grid on; xlabel('f1'); ylabel('f2');
end
if(size(FVALPF,2)==3)
    h_rep = plot3(FVALPF(:,1),FVALPF(:,2),FVALPF(:,3),'ok'); hold on;
      if(isfield(MultiObj,'truePF'))
            h_pf = plot3(MultiObj.truePF(:,1),MultiObj.truePF(:,2),MultiObj.truePF(:,3),'.r'); hold on;
            legend('MOSFO','TruePF');
      else
          legend('MOSFO');
      end
        grid on; xlabel('f1'); ylabel('f2'); zlabel('f3');
end
title(MultiObjFnc)







    

3.1.1盘式制动器设计:解盘式制动器设计(Disk brake design problem)

3.1.2杆桁架问题:杆桁架问题(4-bar truss problem)

3.1.3PCD问题:

四、源代码

文件夹中包含3个工程应用的所有代码及参考文献,均可运行。



创作时间: