• 大小: 1.48MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-04
  • 语言: Matlab
  • 标签: 鲸鱼算法  WOA  matlab  

资源简介

用matlab实验的鲸鱼算法
 鲸鱼算法(Whale Optimization Algorithm)是根据鲸鱼围捕猎物的行为而提出的算法。鲸鱼是一种群居的哺乳动物,在捕猎时它们也会相互合作对猎物进行驱赶和围捕。鲸鱼算法提出时间并不长,也是一个新兴的优化算法,研究应用案例不多。
  鲸鱼算法中,每个鲸鱼的位置代表了一个可行解。在鲸鱼群捕猎过程中,每只鲸鱼有两种行为,一种是包围猎物,所有的鲸鱼都向着其他鲸鱼前进;另一种是汽包网,鲸鱼环形游动喷出气泡来驱赶猎物。在每一代的游动中,鲸鱼们会随机选择这两种行为来进行捕猎。在鲸鱼进行包围猎物的行为中,鲸鱼将会随机选择是向着最优位置的鲸鱼游去还是随机选择一只鲸鱼作为自己的目标,并向其靠近。

资源截图

代码片段和文件信息

% This function draw the benchmark functions
function func_plot(func_name)
[lbubdimfobj]=Get_Functions_details(func_name);
switch func_name
    case ‘F1‘
        x=-100:2:100; y=x; %[-100100]        
    case ‘F2‘
        x=-100:2:100; y=x; %[-1010]        
    case ‘F3‘
        x=-100:2:100; y=x; %[-100100]        
    case ‘F4‘
        x=-100:2:100; y=x; %[-100100]
    case ‘F5‘
        x=-200:2:200; y=x; %[-55]
    case ‘F6‘
        x=-100:2:100; y=x; %[-100100]
    case ‘F7‘
        x=-1:0.03:1;  y=x  %[-11]
    case ‘F8‘
        x=-500:10:500;y=x; %[-500500]
    case ‘F9‘
        x=-5:0.1:5;   y=x; %[-55]
    case ‘F10‘
        x=-20:0.5:20; y=x;%[-500500]
    case ‘F11‘
        x=-500:10:500; y=x;%[-0.50.5]
    case ‘F12‘
        x=-10:0.1:10; y=x;%[-pipi]
    case ‘F13‘
        x=-5:0.08:5; y=x;%[-31]
    case ‘F14‘
        x=-100:2:100; y=x;%[-100100]
    case ‘F15‘
        x=-5:0.1:5; y=x;%[-55]
    case ‘F16‘
        x=-1:0.01:1; y=x;%[-55]
    case ‘F17‘
        x=-5:0.1:5; y=x;%[-55]
    case ‘F18‘
        x=-5:0.06:5; y=x;%[-55]
    case ‘F19‘
        x=-5:0.1:5; y=x;%[-55]
    case ‘F20‘
        x=-5:0.1:5; y=x;%[-55]
    case ‘F21‘
        x=-5:0.1:5; y=x;%[-55]
    case ‘F22‘
        x=-5:0.1:5; y=x;%[-55]
    case ‘F23‘
        x=-5:0.1:5; y=x;%[-55]
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(ij)=fobj([x(i)y(j)]);
        end
        if strcmp(func_name‘F15‘)==1
            f(ij)=fobj([x(i)y(j)00]);
        end
        if strcmp(func_name‘F19‘)==1
            f(ij)=fobj([x(i)y(j)0]);
        end
        if strcmp(func_name‘F20‘)==1
            f(ij)=fobj([x(i)y(j)0000]);
        end
        if strcmp(func_name‘F21‘)==1 || strcmp(func_name‘F22‘)==1 ||strcmp(func_name‘F23‘)==1
            f(ij)=fobj([x(i)y(j)00]);
        end
    end
end

surfc(xyf‘Linestyle‘‘none‘);

end


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        6325  2019-12-30 10:04  WOA\Get_Functions_details.m
     文件     1841081  2016-02-27 17:00  WOA\The Whale Optimization Algorithm.pdf
     文件        3190  2019-12-30 10:06  WOA\WOA.m
     文件        2157  2019-12-30 10:07  WOA\func_plot.m
     文件         649  2019-12-30 10:07  WOA\initialization.m
     文件        1561  2019-12-30 10:08  WOA\main.m
     目录           0  2019-12-30 10:09  WOA\

评论

共有 条评论