智能优化算法与MATLAB编程实践
上QQ阅读APP看书,第一时间看更新

1.3.3 主函数设计

设置蜉蝣优化算法的参数如下。

蜉蝣雌性雄性种群数量pop为50,最大迭代次数maxIter为100,蜉蝣个体的维度dim为2,蜉蝣个体上边界ub =[10,10],蜉蝣个体下边界lb=[-10,-10]。使用蜉蝣优化算法求解待求解函数极值问题的主函数main.m如下:

%% 蜉蝣优化算法求解x1^2 + x2^2的最小值
clc;clear all;close all;
%参数设定
pop = 50;%种群数量
dim = 2;%变量维度
ub = [10,10];%个体上边界信息
lb = [-10,-10];%个体下边界信息
maxIter = 100;%最大迭代次数
fobj = @(x) fun(x);%设置适应度函数为fun(x)
%蜉蝣优化算法求解问题
[Best_Pos,Best_fitness,IterCurve] = MOA(pop,dim,ub,lb,fobj,maxIter);
%绘制迭代曲线
figure
plot(IterCurve,'r-','linewidth',1.5);
grid on;%网格开
title('蜉蝣优化算法迭代曲线')
xlabel('迭代次数')
ylabel('适应度')

disp(['求解得到的x1,x2为',num2str(Best_Pos(1)),'   ',num2str(Best_Pos(2))]);
disp(['最优解对应的函数值为:',num2str(Best_fitness)]);

程序运行得到的蜉蝣优化算法迭代曲线如图1.5所示。

运行结果如下:

求解得到的x1,x2为-3.2187e-05   -0.00030331
最优解对应的函数值为:9.3033e-08

图1.5 程序运行结果

从蜉蝣优化算法寻优的结果来看,最终的求解值为(-3.2187e-05, -0.00030331),十分接近理论最优值(0,0),表明蜉蝣优化算法具有较好的寻优能力。