700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【智能优化算法-野狗优化算法】基于野狗优化算法求解单目标优化问题附matlab代码

【智能优化算法-野狗优化算法】基于野狗优化算法求解单目标优化问题附matlab代码

时间:2020-02-10 13:09:58

相关推荐

【智能优化算法-野狗优化算法】基于野狗优化算法求解单目标优化问题附matlab代码

1 内容介绍

非洲野狗主要生活在非洲的干燥草原和半荒漠地带,活跃于草原、稀树草原和幵阔的干燥灌木丛.它们通常群居,领土范围大小在200到2000平方公里之间,通过叫声进行定位.采取群体合作方式猎杀中型有蹄动物,追击时速可达45千米.每个群落大约有40名成员.一般每个群落的成年成员大约是7-15只,由一对首领统治.它们善于协作,合作狩猎时,由雄性首领率领,在领地内游猎.非洲野狗狩猎依赖视觉而非嗅觉,它们发现猎物后会紧紧追逐,直到猎物疲惫不堪.非洲野狗用各种不同的方式进行彼此之间的联系,它们使用气味(嗅觉),声音和姿势(身体语言)进行沟通.它们具有非常强的气味,这样就可以很容易地对远处的其他组成员进行检测.在捕猎时,群体中的非洲野狗通过叫声进行定位.群体成员用发音来帮助协调行动并追踪,其语音特点类似鸟声,是一个不寻常低吼声或唧唧声,直到狩猎成功.非洲猎狗算法(awda)m就是模拟猎狗的这种行为提出的,它以迭代的方式来模拟群体捕猎行为,即寻找最优值.非洲野狗通过初始化猎狗的位置,竞争首领野狗,野狗群协同移动几个步骤来实现求解最优化问题.算法流程图如图1所示

2 仿真代码

% This function draw the benchmark functions

function func_plot(func_name)

[lb,ub,dim,fobj]=Get_Functions_details(func_name);

switch func_name

case 'F1'

x=-100:2:100; y=x; %[-100,100]

case 'F2'

x=-100:2:100; y=x; %[-10,10]

case 'F3'

x=-100:2:100; y=x; %[-100,100]

case 'F4'

x=-100:2:100; y=x; %[-100,100]

case 'F5'

x=-200:2:200; y=x; %[-5,5]

case 'F6'

x=-100:2:100; y=x; %[-100,100]

case 'F7'

x=-1:0.03:1; y=x %[-1,1]

case 'F8'

x=-500:10:500;y=x; %[-500,500]

case 'F9'

x=-5:0.1:5; y=x; %[-5,5]

case 'F10'

x=-20:0.5:20; y=x;%[-500,500]

case 'F11'

x=-500:10:500; y=x;%[-0.5,0.5]

case 'F12'

x=-10:0.1:10; y=x;%[-pi,pi]

case 'F13'

x=-5:0.08:5; y=x;%[-3,1]

case 'F14'

x=-100:2:100; y=x;%[-100,100]

case 'F15'

x=-5:0.1:5; y=x;%[-5,5]

case 'F16'

x=-1:0.01:1; y=x;%[-5,5]

case 'F17'

x=-5:0.1:5; y=x;%[-5,5]

case 'F18'

x=-5:0.06:5; y=x;%[-5,5]

case 'F19'

x=-5:0.1:5; y=x;%[-5,5]

case 'F20'

x=-5:0.1:5; y=x;%[-5,5]

case 'F21'

x=-5:0.1:5; y=x;%[-5,5]

case 'F22'

x=-5:0.1:5; y=x;%[-5,5]

case 'F23'

x=-5:0.1:5; y=x;%[-5,5]

end

L=length(x);

f=[];

for i=1:L

for j=1:L

if strcmp(func_name,'F15')==0 && strcmp(func_name,'F19')==0 && strcmp(func_name,'F20')==0 && strcmp(func_name,'F21')==0 && strcmp(func_name,'F22')==0 && strcmp(func_name,'F23')==0

f(i,j)=fobj([x(i),y(j)]);

end

if strcmp(func_name,'F15')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

if strcmp(func_name,'F19')==1

f(i,j)=fobj([x(i),y(j),0]);

end

if strcmp(func_name,'F20')==1

f(i,j)=fobj([x(i),y(j),0,0,0,0]);

end

if strcmp(func_name,'F21')==1 || strcmp(func_name,'F22')==1 ||strcmp(func_name,'F23')==1

f(i,j)=fobj([x(i),y(j),0,0]);

end

end

end

surfc(x,y,f,'LineStyle','none');

end

3 运行结果

4 参考文献

[1]赵建强, 缪张晓, 郭家良,等. 基于二进制编码非洲野狗算法的TSP问题研究[J]. 数学的实践与认识, , 048(022):304-312.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。