代理辅助多任务优化算法(Matlab代码实现)

  

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🌈3 Matlab代码实现

🎉4 参考文献


💥1 概述

进化算法(EA)已被应用,具有解决广泛应用的强大能力,但它一次可以解决一个问题。为了提高效率,进化计算领域的一种新兴研究范式,提出了进化多任务(EMT)。EMT同时解决多个优化任务。EMT的有效性是通过任务间知识转移来改进每个任务的解决方案。多因素进化算法(MFEAs)是第一种解决多任务优化问题的算法。然而,它往往受到负面知识转移问题的影响。为了解决这个问题并提高MFEA的性能,我们建议构建一个代理模型,作为在MFEA中同时优化的辅助任务和目标任务。根据所提方法,代理模型是每个对应目标任务的相关任务,以增强任务间的积极知识转移。此外,代理模型可以减少局部最优的数量,并且结构简单。在基准和真实水库洪水发电问题上进行了实验,以检验所提算法的性能。对几个广泛使用的测试问题的比较实验表明,代理模型作为辅助任务可以显着提高MFEA的性能。

📚2 运行结果

 

部分代码:

% UBA=32.728;
% LBA=-32.728;
% A_x=[-32.728:0.1:32.728];
% A_z=-20*exp(-0.2*sqrt((1/1)*(A_x.^2)))-exp((1/1)*(cos(2*pi.*A_x)))+exp(1)+20;                %原函数
% A_x=sort(A_x);
% hold on;
% plot(A_x,A_z,'r-','linewidth',2);
 %Sphere函数
UBS=100;
LBS=-100;
S_x=[-100:100];
S_z=S_x.^2;                %原函数
S_x=sort(S_x);
hold on;
plot(S_x,S_z,'r-','linewidth',1.5);

% %Rosenbrock
% UBS=10;
% LBS=-5;
% r_x=-5:0.1:10;
% r_z=100*r_x.^4+(r_x-1).^2;              %原函数
% r_x=sort(r_x);
% hold on;
% plot(r_x,r_z,'r-','linewidth',1.5);

UBR=5.12;
LBR=-5.12;
%  R_x=[-5.12:0.05:5.12];
% R_z=10+(R_x)'.^2-10*cos(2*pi.*(R_x)')+(R_x)'.^2;              %原函数
x=rand(205,1);
x=sort(x);
R_x=LBR+x*(UBR-LBR);
R_z=10+(R_x)'.^2-10*cos(2*pi.*(R_x)')+(R_x)'.^2;              %原函数
% x=sort(x);
figure
plot(x,R_z,'b-','linewidth',1.5,'MarkerIndices',1:5:length(R_z));
xlabel('x');
ylabel('y');
axis([0 1 0 70]);

result1_SAMTO(1,:)=85*44-mean(SAMTO_new(1).Toall_BestFitss(2:4:20,2:21));
result1_SAMTO(2,:)=85*145-mean(SAMTO_new(1).Toall_BestFitss(4:4:20,2:21));

result2_SAMTO(1,:)=85*44-SAMTO_new(2).Toall_BestFitss(1,:);
result2_SAMTO(2,:)=85*97-SAMTO_new(2).Toall_BestFitss(2,:);

result3_SAMTO(1,:)=85*97-SAMTO_new(3).Toall_BestFitss(1,:);
result3_SAMTO(2,:)=85*145-SAMTO_new(3).Toall_BestFitss(2,:);

% ST2T1_2=[global_precent,local_precent(:,1801:3000)];
% save 'ST2T1_2.mat' 'ST2T1_2';

st1t1=mean(ST1T1_2);   %Rastrigin function positive transfer to Griewank
ST1T1=[];
for i=1:150:3000
    ST1T1=[ST1T1,mean(st1t1(i:i+149))];
end
plot(ST1T1,'o-','color',[0.8547,0.33,0.10],...
    'linewidth',2,'MarkerSize',6,'MarkerIndices',1:2:length(ST1T1));
hold on

st1t2=mean(ST1T2_2);  %Greiwank function positive transfer to Griewank
ST1T2=[];
for i=1:150:3000
    ST1T2=[ST1T2,mean(st1t2(i:i+149))];
end
plot(ST1T2,'*-g','linewidth',2,'MarkerSize',6,'MarkerIndices',1:2:length(ST1T2));
hold on

st2t1=mean(ST2T1_2);
ST2T1=[];
for i=1:150:3000
    ST2T1=[ST2T1,mean(st2t1(i:i+149))];
end
plot(ST2T1,'c->','linewidth',2,'MarkerSize',6,'MarkerIndices',1:2:length(ST2T1));
hold on

st2t2=mean(ST2T2_2);
ST2T2=[];
for i=1:150:3000
   ST2T2=[ST2T2,mean(st2t2(i:i+149))];
end
plot(ST2T2,'m-<','linewidth',2,'MarkerSize',6,'MarkerIndices',1:2:length(ST2T2));
hold on

t1t2=mean(T1T2_2);
T1T2=[];
for i=1:150:3000
    T1T2=[T1T2,mean(t1t2(i:i+149))];
end
plot(T1T2,'b-s','linewidth',2,'MarkerSize',6,'MarkerIndices',1:2:length(ST2T2));
hold on

title('Ankang Reservoir 2003 & 2000');
xlabel('Number of Function Evaluations');
ylabel('Average Positive transfer probability');
legend('The surrogate of T1 positive transfer to T1',...
       'The surrogate of T1 positive transfer to T2',...
       'The surrogate of T2 positive transfer to T1',...
       'The surrogate of T2 positive transfer to T2',...
       'T1 positive transfer to T2');
   
%  set(gca,'xticklabel',{'0','4500','9000','13500','18000','22500','27000',...
%      '31500','36000','40500','45000','49500','54000','58500','63000',...
%      '67500','72000','76500','81000','85500','90000'});
 set(gca,'xticklabel',{'0','9000','18000','27000','36000','45000','54000','63000','72000','81000','90000'});

🌈3 Matlab代码实现

🎉4 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]Shangqi Yang, Yutao Qi, Rui Yang, Xiaoliang Ma, Haibin Zhang (2022) Surrogate assist Multitasking optimization Algorithm

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 金豹优化算法是一种新兴的进化计算算法,它源于自然界中金豹的捕猎策略,可以应用于许多复杂的优化问题。本文将介绍如何使用MATLAB实现金豹优化算法。 首先,我们需要定义问题的目标函数和限制条件。然后,我们需要编写一个MATLAB函数来计算目标函数和限制条件的值。接下来,我们需要确定金豹优化算法的参数,例如种群大小、最大迭代次数、学习率等。我们需要编写一个MATLAB脚本来设置这些参数和调用优化算法实现金豹优化算法的主要步骤包括初始化种群、计算适应度、选择和更新。初始化种群时,我们需要根据问题的变量范围和种群大小来生成一组随机的解。计算适应度是指计算每个个体在目标函数和限制条件下的表现。选择和更新是指选择个体以产生新的解,并更新种群中的最优解。 最后,我们需要对金豹优化算法进行测试和评估。我们可以使用标准测试函数来评估算法的性能,并比较它们与其他算法的表现。 总的来说,用MATLAB实现金豹优化算法是一个简单而有效的方法,可以帮助优化复杂问题并提高生产力。 ### 回答2: 金豹优化算法是一种基于生物进化和群体智能优化思想发展起来的全局优化算法,能够有效地解决复杂的非线性优化问题。在该算法中,将优化问题转化为一个寻找最适适应度解的过程,通过模拟金豹在生态系统中的狩猎行为,以及对群体内个体之间的信息共享和竞争的调整,来实现全局最优解的搜索和收敛。 对于金豹优化算法Matlab实现,一般需要先定义目标函数和适应度函数,以及设置种群规模和迭代次数等参数。然后,在初始化种群及其个体位置等状态之后,采用迭代计算的方式,不断更新各个个体的状态和适应度值,并实现信息交流和调整等操作,最终得到全局最优解以及相应的解空间分布图。 值得注意的是,金豹优化算法实现过程中需要考虑到多个方面的因素,如个体初始位置的随机性、信息传递和竞争策略的差异、种群规模和迭代次数的取值等等。因此,在实际应用过程中,需要根据问题具体特征和求解要求,灵活调整算法参数和实现策略,以得到最优化的结果。 总之,金豹优化算法Matlab实现是一项具有挑战性和实用性的任务,需要深入理解该算法的原理和实现方式,并结合具体问题进行调整和优化,以实现高效的全局优化求解。 ### 回答3: 金豹优化算法是近年来新发展起来的一种优化算法,可以在多种优化问题上得到很好的结果。而matlab是一种非常强大的数学软件,可以实现各种算法。因此,金豹优化算法matlab实现也备受关注。 金豹优化算法是一种基于动物群体行为的优化算法,它模拟了金豹在猎食时的捕猎过程。该算法通过构建一群虚拟的金豹个体,在不断地迭代中计算各自的适应度值,并调整其参数,最终得到最优解。 在matlab实现金豹优化算法,需要定义优化问题的目标函数,同时设置算法参数。然后,在迭代中不断地优化目标函数,直到达到一定的迭代次数或者算法收敛。最后,输出求解结果。 金豹优化算法的优点是具有全局搜索能力,能够避免陷入局部最优解。因此,它在多种优化问题上都有很好的应用。在matlab实现金豹优化算法,可以通过简单的脚本实现,同时matlab也提供了各种工具和函数来辅助实现算法。 总的来说,金豹优化算法matlab实现是一个比较复杂的任务,需要一定的数学建模和编程技能。但是,通过该算法的应用,可以得到很好的优化结果,并解决许多实际问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值