资讯详情

【优化算法】混合灰狼优化布谷鸟搜索优化算法(AGWOCS)【含Matlab源码 1540期】

1.混合灰狼优化布谷鸟搜索优化算法

作为仿生群体的智能优化算法, 通过模仿自然界灰狼群体的社会领导机制和捕食行为,提出了灰狼优化算法。类似于其他元启发算法, 该算法首先随机产生一组候选解, 每次迭代选择最好的三个候选人alpha、beta和delta, 它们带领整个种群向最优解方向移动。种群中的其他个体omega追随alpha、beta和delta寻找更好的解决方案。以下数学形式可以描述灰狼种群的包围捕食。 在这里插入图片描述 其中:t当前迭代次数;tmax最大迭代次数的种群;A和C是协同系数向量;Xp表示猎物的位置向量;X表示灰狼的位置向量;a从2到迭代过程~0线性递减;r1和r2是[0, 1]随机数向量。找出问题的最佳解决方案, 每个omega灰狼个体的位置更新如下: 另外, Mirjalili等人[2]指出参数A和C全局搜索和局部搜索决定灰狼优化算法, 当|A|>全局搜索1时算法, 当|A|<1时进行局部搜索。随机生成参数C可以有效地避免算法陷入局部最优。虽然上述操作可以在一定程度上提高收敛效率,避免早熟收敛, 但由于灰狼优化算法的种群寻优过程本质上是由三个最佳候选人选择的alpha、beta和delta主导, 该算法往往倾向于早熟收敛, 不再跳出局部最优值。因此, 若在该算法中对最优候选解进行一定的变异操作, 能有效帮助算法找到更好的解决方案。

Saremi等人[3]在GWO在算法中引入进化种群动态操作 (EPD) , 就是将种群中差的个体移除, 已有研究证明EPD能提高整个种群适应性的中值, 是一种改进元启发式算法性能的简单有效方法。在混合灰狼优化算法的每次迭代中, 通过EPD清除种群中差的一半个体位置, 然后以相等概率在四个位置随机生成新位置。这四个位置分别位于alpha、beta和delta周围 (提高整个种群的中值) , 以及搜索空间的随机位置 (避免局部最优) 。由于Saremi混合灰狼优化算法是为连续函数优化而设计的, 不能直接用于解决离散组合优化问题。所以, 本文改进了操作, 改进后的四个位置更新如下: 其中, Xα (t) 、Xβ (t) 和Xδ (t) 分别表示alpha、beta和delta当前个体位置;rand是[0, 1]中的随机数向量;randn服从标准正态分布的随机数向量, 正负值;代表矢量运算;L表示步长向量。这里介绍布谷鸟搜索算法Lévy飞行方式[11], 能有效预防GWO算法早熟收敛, 其计算公式为 其中:β是一个[1, 2]的参数, 此处取β=1.5[11,16];u服从服从正态分布。 群体智能优化算法基于种群迭代, 初始种群的质量直接影响算法的整体搜索效率和解质量, 多样性好的初始种群对提高算法的寻优性能有很大帮助。然而, 标准GWO迭代开始前,算法通过随机初始化产生种群个体, 初始群体的多样性难以保证, 这在一定程度上影响了算法的搜索效率。本文将采用反向学习策略产生初始种群。Tizhoosh2005年提出了反向学习策略, 目前已在GA、DE、ACO成功应用于群体智能优化算法。初始种群个体的具体操作步骤如下: a) N个灰狼个体的位置在搜索空间中随机初始化xi, j (i=1, 2, …, D;j=1, 2, …, N) 作为初始种群P1.在作业车间调度的编码中xi, j∈[0, 1]随机数, D为每个灰狼个体的维数, 即工序总数;N种群数。 b) 产生初始种群P1.每个灰狼个体xi, j的反向个体xi, j构成反向种群P2, xi, j'=1-xi, j。 c) 合并种群P1和P2, 将2N个人灰狼根据适应性值进行升序排序, 选择适应性值前N个灰狼作为最终初始种群。

基于精英保存策略, 在GWO算法进化的后期, 所有灰狼个体都靠近最佳个体区域, 导致种群失去多样性, 如果是目前最好的灰狼个体alpha局部最优解, 则GWO本地最优算法, 早熟收敛, 这也是许多群体智能优化算法的缺点。为了降低GWO算法早熟和局部最优值的概率, 本文目前是群体中最好的灰狼个体alpha多样性变异操作, 原则是:对最优个体alpha中间的每一维元素为1/D变异的概率。变异操作公式为 其中:ε正数很小, 这里经过测试ε=0.01算法优化效果最好;rand是[0, 1]随机数向量;K由0和1组成的向量, 各维元素Kj如下所示, rj是[0, 1]随机数, 当rj≤1/D, Kj=1, 否则Kj=0。 通过对标准GWO算法进化种群动态,反向学习初始化种群, 以及最佳个体变异三个方面的改进操作, 混合灰狼优化算法的改进性能更好, 同时,跳出局部最优解的能力更强。本文简称改进后的混合灰狼优化算法IGWO, 运用所提出的IGWO操作车间调度问题的算法流程如图1所示。

二、部分代码

 clear all  clc close all warning off  SearchAgents_no=20; % 搜索代理数量  Function_name='F1'; % 测试功能的名称可以从 F1 到 F23  Max_iteration=200; % 最大迭代次数  Run_no = 20;       for k =  1 : 1 : Run_no     % 加载所选基准函数的详细信息 [lb,ub,dim,fobj]=Get_Function_details(Function_name);  [Best_score_CS2,Best_pos_CS2,AGWOCS_cg_curve]span class="token operator">=AGWO_CS(SearchAgents_no,Max_iteration,lb,ub,dim,fobj); % Augmented GWO- Cuckoo Search.
BestSolutions1(k) = Best_score_CS2;

    
    Average= mean(BestSolutions1);
    Mean=mean(BestSolutions1);
    StandDP=std(BestSolutions1);
    Med = median(BestSolutions1); 
    [BestValueP I]   = min(BestSolutions1);
    [WorstValueP IM] = max(BestSolutions1);
    

       disp(['Run # ' , num2str(k), ' Best_score_AGWOCS : ' , num2str( Best_score_CS2)]);      
end


     disp([ 'Best=',num2str( BestValueP)]);
     disp([ 'Worst=',num2str(WorstValueP)]);
     disp([ 'Average=',num2str( Average)]);
     disp([ 'Mean=',num2str( Mean)]);
     disp([ 'Standard Deviation=',num2str( StandDP)]);
     disp([ 'Median=',num2str(Med)]);
     

figure('Position',[300 190 980 490])
%figure('Position',[300 190 500 270])
%绘制搜索空间
subplot(1,2,1);
func_plot(Function_name);
title('目标坐标')
xlabel('x_1');
ylabel('x_2');
zlabel([Function_name,'( x_1 , x_2 )'])
%颜色图

%绘制目标坐标
subplot(1,2,2);
%semilogy(GWO_cg_curve,'Color','r')
hold on

semilogy(AGWOCS_cg_curve,'Color','m')

title('目标坐标')
xlabel('I迭代');
ylabel('最优值');

axis tight
grid on
box on
%legend('AGWO-CS')
legend({ 
        'AGWO-CS'},'FontSize',2,'location','best')

三、运行结果

四、matlab版本及参考文献

2014a

[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016. [2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017. [3]姚远远,叶春明.求解作业车间调度问题的改进混合灰狼优化算法[J].计算机应用研究. 2018,35(05)

标签: kj表示什么继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台