目录
💥1 概述
📚2 运行结果
🎉3 参考文献
👨💻4 Matlab代码
💥1 概述
狼是分布最广的群居群猎动物。有明确的社会分工,它们团结协作为狼群的生存与发展承担着各自的责任。智能颇高,彼此之间通过气味、叫声沟通。
狼的社会分工有头狼、探狼和猛狼:
头狼: 将当前离猎物气味浓度最高(适应度最优)的狼作为头狼,起指挥狼群行动的作用,头领狼召唤其他狼向猎物靠近,具有指挥狼群行动的能力,在搜寻过程中头狼的角色是动态变化的。
探狼: 初始时,狼群会派出一部分狼作为探狼,在环境四周搜寻猎物。探狼在搜寻过程中如果发现猎物气味浓度更高,就作为头狼,呼唤其他的狼进行围捕行为。后期,比较不同的探狼猎物的适应度,选择适应度较高的作为头狼。
猛狼: 猛狼感应到头狼呼唤,就立刻向头狼位置奔袭,在奔袭的过程中,若是发现猎物的适应度更高,则立刻替代原来的头领狼,指挥其他狼行动。
狼群算法(WPA算法)是一种随机概率搜索算法,使其能够以较大的概率快速找到最优解;狼群算法还具有并行性,可以在同一时间从多个点出发进行搜索,点与点之间互不影响,从而提高算法的效率。将狼群算法应用于15个典型复杂函数优化问题,并同经典的粒子群算法、鱼群算法和遗传算法进行比较仿真结果表明,该算法具有较好的全局收敛性和计算鲁棒性,尤其适合高维、多峰的复杂函数求解。
在优化中,寻找全局极小值是至关重要的,同时避开局部极小值。一个好的优化需要在探索(逃离局部极小值)和开发(接近极小值)之间取得平衡。没有一种完美的优化算法可以找到全局最小值,所以我们在这里从数十亿年的进化中汲取经验,并试图模仿自然来得到基于群体智能的优化。
该算法模仿狼的群体特征来寻找和捕获猎物。
📚2 运行结果
演示中的狼狩猎路径:
狼最终位置,其中一头狼已经达到了全局最小值:
主函数部分代码:
% simulation of wolf search algorithm global Nw Ni step velocity Pa %xrange yrange global Wstart % wolf positions global W % wolf position history global Npa global plotPath plotLive Npa = 0; %number of mutation occured t = 1; % corrent iteration W(:,1,:) = Wstart; % wolves over time [dimentions, time, wolves] if plotLive figure(1) ; clf; % live moving figure with each iteration load('schafferF6PlotData') ; contour(X,Y,xycosts); %axis([-xrange/2 xrange/2 -yrange/2 yrange/2]); axis manual; hold on; o = scatter(0,0,'o'); p = scatter(W(1,1,:), W(2,1,:),'x','k'); set(1,'visible','on'); end for (t=1:Ni) % do not save history, if no need to plot path if ~plotPath time = t; t = 1; end for wi=1:Nw tempPos = W(:,t,wi); % prey initiatively, newton method %tempPos = wsaNeuton % If a visible peer has better possition, move towards it tempPos = tempPos + wsaSupportPeer(W(:,t,:),wi); %random walk, towards better possition, pray initiatively tempPos = wsaRandImproveWalk(tempPos); % escape, when threat found if (rand<Pa) tempPos = tempPos + wsaEscape*velocity*step; %disp('escaping'); Npa = Npa+1; end if plotPath W(:,t+1,wi) = tempPos; % save history else W(:,1,wi) = tempPos; % override end end if plotLive set(p,'visible','off') ; p = scatter(W(1,t,:), W(2,t,:),'x','k'); set(1,'visible','on'); end end
🎉3 参考文献
[1]郭非. 狼群算法在无人艇规划与搜索中的应用研究[D].哈尔滨工程大学,2020.
部分理论引用网络文献,若有侵权联系博主删除。