一种基于群体智能的求全局极小值优化算法 您所在的位置:网站首页 查找算法实现过程 一种基于群体智能的求全局极小值优化算法

一种基于群体智能的求全局极小值优化算法

2023-06-21 06:38| 来源: 网络整理| 查看: 265

    目录

💥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


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有