目录
一、CEC2017测试函数
二、多种智能优化算法求解CEC2017
2.1 本文参与求解CEC2017的智能优化算法
2.2 部分测试函数运行结果与收敛曲线
三、曲线标记代码(获得代码后可自行更改)
CEC2017测试集共有30个单目标测试函数,其中 F1-F3 为单峰函数、F4-F10 为多峰函数、F11-F20 为混合函数、F21-F30 为组合函数。每个测试函数可选择的维度分别为10维、30维、50维、100维。CEC2017测试函数随着维度的增加求解极为困难,CEC2017测试函数集也是智能优化算法改进方向高质量论文必不可少的测试集之一,它也是继CEC2005后应用最为广泛的测试集之一。
本文选取一些经典的智能优化算法参与测试CEC2017测试函数,具体有:沙丘猫优化算法(SCSO)、蜣螂优化算法(DBO)、算术优化算法(AOA)、黏菌算法(SMA)、人工大猩猩部队优化算法(GTO)、蛇优化算法(SO)、非洲秃鹫优化算法(AVOA)以及灰狼算法(GWO)、鲸鱼算法(WOA)、引力搜索算法(GSA)。种群规模设为50、最大迭代次数为500。
F3:
The best optimal values of the objective funciton found by GSA is : 13205.1128
The best optimal values of the objective funciton found by GWO is : 383.5644
The best optimal values of the objective funciton found by WOA is : 768.9872
The best optimal values of the objective funciton found by AVOA is : 330.2542
The best optimal values of the objective funciton found by GTO is : 300
The best optimal values of the objective funciton found by DBO is : 300.0059
The best optimal values of the objective funciton found by SO is : 303.4128
The best optimal values of the objective funciton found by SMA is : 300.0013
The best optimal values of the objective funciton found by AOA is : 12396.11
The best optimal values of the objective funciton found by SCSO is : 4262.7552
F6:
The best optimal values of the objective funciton found by GSA is : 635.8381
The best optimal values of the objective funciton found by GWO is : 602.0198
The best optimal values of the objective funciton found by WOA is : 614.0807
The best optimal values of the objective funciton found by AVOA is : 610.0411
The best optimal values of the objective funciton found by GTO is : 602.2689
The best optimal values of the objective funciton found by DBO is : 605.7588
The best optimal values of the objective funciton found by SO is : 600.0874
The best optimal values of the objective funciton found by SMA is : 600.1151
The best optimal values of the objective funciton found by AOA is : 641.6922
The best optimal values of the objective funciton found by SCSO is : 613.0047
F12:
F23:
F30:
figure
maker_index=1:15:500;
semilogy(curve_compare(1,:),'k-*','MarkerIndices',maker_index,'LineWidth',1)
hold on
semilogy(curve_compare(2,:),'k-o','MarkerIndices',maker_index,'LineWidth',1)
hold on
semilogy(curve_compare(3,:),'b-<','MarkerIndices',maker_index,'LineWidth',1)
hold on
semilogy(curve_compare(4,:),'k-s','MarkerIndices',maker_index,'LineWidth',1)
hold on
semilogy(curve_compare(5,:),'k-d','MarkerIndices',maker_index,'LineWidth',1)
hold on
semilogy(curve_compare(6,:),'k-p','MarkerIndices',maker_index,'LineWidth',1)
hold on
semilogy(curve_compare(7,:),'r-p','MarkerIndices',maker_index,'LineWidth',1)
hold on
semilogy(curve_compare(8,:),'b-p','MarkerIndices',maker_index,'LineWidth',1)
xlabel('迭代次数');
ylabel('目标函数值');
grid on
box on
需要代码请私信博主