• 大小: 17KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: Matlab
  • 标签: MFEA  MFEAII  EA  

资源简介

此代码包含MFEA和MFEAII的matlab实现,只需要将所有文件夹加入路径,然后运行main即可。

资源截图

代码片段和文件信息

% 本程序主要实现了进化多任务优化2、优化函数为最小化函数、最大化函数需要转化为最小化函数
% 有任何问题可以联系我的邮箱: wangchao(Email: xiaofengxd@126.com)

clcclear
%% 参数设置
global N gen
N = 30;                                    % 种群大小(设置为偶数)
rmp = 0.3;                                  % 随机交配池概率
pi_l = 1;                                   % 个体学习的概率(BFGA quasi-Newton Algorithm),trap-5onemaxLeadingOnes_TrailingOnes不可以使用预搜索
Pc = 1;                                     % 模拟二进制交叉概率
Pm = 1;                                     % 多项式变异概率
mu = 15;                                    % 模拟二进制交叉参数(可调)
muu = 15;                                   % 多项式交叉参数
probswap = 0.5;                             %变量交换概率
sigma = 0.02;                               % 高斯变异模型的标准差(可调)
gen = 500;                                % 迭代次数
selection_process = ‘elitist‘;              % 可供选择:elitist、roulette wheel、Tournament
name = ‘RastriginAckley‘;                   % 测试任务选择有:RastriginAckley、SphereWeierstrass、RastriginAckleySphere、RastriginRastrigin、AckleyAckley,trap-5onemaxLeadingOnes_TrailingOnes请在类TASK中修改增加任务,后两个任务需要将Calobj.m文件的15-18注释,使用19~21行
options = optimoptions(@fminunc‘Display‘‘off‘‘Algorithm‘‘quasi-newton‘‘MaxIter‘5);  %调用matlab函数优化器(拟牛顿法)->设置预学习优化器
times = 1;                                  %算法运行次数

%% 初始化任务
Task = TASK();
Task = initTASK(Taskname);
%% 多次实验
EvBestFitness = zeros(gen+1Task.M);%由于还保存了初始化结果,第0代,因此+1
rmpval = zeros(gen+1Task.M*Task.M);            %每代的rmp
for i =1:times
%     data_MFEA(i) = MFEA(rmppi_lPcPmmumuusigmaselection_processoptionsTaskprobswap);%调用MFEA算法
%     save([‘Data\‘name‘_data.mat‘]‘data_MFEA‘);%记录多次实验结果
%     EvBestFitness = EvBestFitness + data_MFEA(i).EvBestFitness;
    data_MFEA2(i) = MFEA2(pi_lPcPmmumuusigmaselection_processoptionsTaskprobswap);%调用MFEA算法
    save([‘Data\‘name‘_data.mat‘]‘data_MFEA2‘);%记录多次实验结果
    EvBestFitness = EvBestFitness + data_MFEA2(i).EvBestFitness;
    rmpval = rmpval + data_MFEA2(i).rmpval ;
end
EvBestFitness = EvBestFitness./times;%计算每代适应度的均值
rmpval = rmpval./times;

%% 画图
for i=1:Task.M
    figure(i)
    hold on
    plot(EvBestFitness(:i));
    xlabel(‘GENERATIONS‘);
    ylabel([‘TASK ‘ num2str(i) ‘ objectIVE‘]);
    saveas(gcf[‘Data\figure_‘name‘_Task‘num2str(i)‘.jpg‘]);
end

%% 画RMP
for j=1:Task.M*Task.M
    figure(i+j)
    hold on
    plot(rmpval(:j));
    xlabel(‘GENERATIONS‘);
    if(mod(jTask.M) == 0)
        ylabel([‘rmp‘‘_‘ num2str(Task.M)‘_‘num2str(j/Task.M)]);
        saveas(gcf[‘Data\figure_‘name‘rmp ‘‘_‘ num2str(Task.M)‘_‘num2str(j/Task.M)‘.jpg‘]);
    else
        ylabel([‘rmp‘‘_‘ num2str(mod(jTask.M))‘_‘num2str((j-mod(jTask.M))/Task.M+1)]);
        saveas(gcf[‘Data\figure_‘name‘rmp ‘‘_‘ num2str(mod(jTask.M))‘_‘num2str((j-mod(jTask.M))/Task.M+1)‘.jpg‘]);
    end
end

%% 记录多次平均实验结果
data.EvBestFitness=EvBestFitness;
% data.RT = Score;
save([‘Data\‘name‘_datasum.mat‘]‘data‘);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2383  2019-09-04 13:29  MFEA2 by xiaofengboke\algorithm\MFEA\MFEA.m

     文件       2880  2019-09-03 09:24  MFEA2 by xiaofengboke\algorithm\MFEA2\learnRMP.m

     文件       2554  2019-09-04 13:27  MFEA2 by xiaofengboke\algorithm\MFEA2\MFEA2.m

     文件       3260  2019-10-25 20:18  MFEA2 by xiaofengboke\main.m

     文件       1436  2019-09-03 11:14  MFEA2 by xiaofengboke\operators\Calfactor.m

     文件       1765  2019-09-04 13:32  MFEA2 by xiaofengboke\operators\CalObj.m

     文件        575  2019-05-23 09:07  MFEA2 by xiaofengboke\operators\combpop.m

     文件       1669  2019-05-23 15:51  MFEA2 by xiaofengboke\operators\EnvironmentalSelection.m

     文件       2595  2019-05-24 08:53  MFEA2 by xiaofengboke\operators\GA.m

     文件       5510  2019-09-04 13:24  MFEA2 by xiaofengboke\operators\GA_MFEA.m

     文件       5498  2019-09-04 12:19  MFEA2 by xiaofengboke\operators\GA_MFEA2.m

     文件        523  2019-05-23 22:40  MFEA2 by xiaofengboke\operators\RouletteWheelSelection.m

     文件        556  2019-05-23 19:52  MFEA2 by xiaofengboke\operators\TournamentSelection.m

     文件        315  2019-05-24 08:40  MFEA2 by xiaofengboke\problems\Ackley.m

     文件        137  2019-09-03 18:23  MFEA2 by xiaofengboke\problems\leadone.m

     文件        257  2019-05-24 08:41  MFEA2 by xiaofengboke\problems\Rastrigin.m

     文件        217  2019-05-24 08:42  MFEA2 by xiaofengboke\problems\Sphere.m

     文件        145  2019-03-26 17:02  MFEA2 by xiaofengboke\problems\targetRan.m

     文件         71  2019-09-03 18:30  MFEA2 by xiaofengboke\problems\trailone.m

     文件        434  2019-09-03 15:47  MFEA2 by xiaofengboke\problems\trap5.m

     文件        530  2019-05-24 08:42  MFEA2 by xiaofengboke\problems\Weierstrass.m

     文件       1291  2019-05-24 08:47  MFEA2 by xiaofengboke\public\INDIVIDUAL.m

     文件       7130  2019-09-03 15:58  MFEA2 by xiaofengboke\public\TASK.m

     目录          0  2019-10-25 20:16  MFEA2 by xiaofengboke\algorithm\MFEA

     目录          0  2019-10-25 20:16  MFEA2 by xiaofengboke\algorithm\MFEA2

     目录          0  2019-10-25 20:16  MFEA2 by xiaofengboke\algorithm

     目录          0  2019-10-25 20:17  MFEA2 by xiaofengboke\Data

     目录          0  2019-10-25 20:16  MFEA2 by xiaofengboke\operators

     目录          0  2019-10-25 20:16  MFEA2 by xiaofengboke\problems

     目录          0  2019-10-25 20:16  MFEA2 by xiaofengboke\public

............此处省略4个文件信息

评论

共有 条评论