欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Matlab實現(xiàn)嗅覺優(yōu)化算法的示例代碼

 更新時間:2022年05月14日 14:21:28   作者:電力系統(tǒng)與算法之美  
嗅覺劑優(yōu)化是一種新穎的優(yōu)化算法,旨在模仿氣味分子源尾隨的藥劑的智能行為。本文將利用Matlab實現(xiàn)這一智能優(yōu)化算法,需要的可以參考一下

1.概述

嗅覺劑優(yōu)化是一種新穎的優(yōu)化算法,旨在模仿氣味分子源尾隨的藥劑的智能行為。該概念分為三個階段(嗅探,尾隨和隨機(jī))是獨特且易于實現(xiàn)的。此上傳包含 SAO 在 37 個 CEC 基準(zhǔn)測試函數(shù)上的實現(xiàn)。

2.37 個 CEC 基準(zhǔn)測試函數(shù)代碼

function [lb,ub,dim,fobj] = Select_Function(F)
 
 
switch F
    case 'F1'
        %Admijan
        fobj = @F1;
        lb=[-1 -1];
        ub=[2 1];
        dim=2;
      case 'F2'
        %Beale
        fobj = @F2;
        dim=2;
        lb=-4.5*ones(1,dim);
        ub=4.5*ones(1,dim);
        case 'F3'
       %Bird
        fobj = @F3;
        dim=2;
        lb=-2*pi*ones(1,dim);
        ub=2*pi*ones(1,dim);      
         case 'F4'
       %Bohachevsky
        fobj = @F4;
        dim=2;
        lb=-100*ones(1,dim);
        ub=100*ones(1,dim);
    case 'F5'
%         Booth
        fobj = @F5;
        dim=2;
        lb=-10*ones(1,dim);
        ub=10*ones(1,dim);
    case 'F6'
       %Branin RCOS1
        fobj = @F6;
        lb=[-5,0];
        ub=[10, 15];
        dim=2;
    case 'F7'
        %Branin RCOS2
        fobj = @F7;
        dim=2;
        lb=-5*ones(1,dim);
        ub=15*ones(1,dim);
    case 'F8'
        %Brent
         fobj = @F8;
        dim=2;
        lb=-10*ones(1,dim);
        ub=10*ones(1,dim); 
    case 'F9'
        %Bukin F2
         fobj = @F9;
        dim=2;
        lb=[-15 -3];
        ub=[-5 3];
      case 'F10'
        %six-hump
         fobj = @F10;
        dim=2;
        lb=-5*ones(1,dim);
        ub=5*ones(1,dim);  
    case 'F11'
        %Chichinadze
        fobj = @F11;
        dim=2;
        lb=-30*ones(1,dim);
        ub=30*ones(1,dim);
   case 'F12'
        %Deckkers-Aarts
        fobj = @F12;
        dim =2;
        lb=-20*ones(1,dim);
        ub=20*ones(1,dim);
    case 'F13'
        %Easom
        dim=2;
        fobj=@F13;
        lb=-10*ones(1,dim);
        ub=10*ones(1,dim);   
    case 'F14'
        %Matyas
        fobj = @F14;
        dim=2;
        lb=-10*ones(1,dim);
        ub=10*ones(1,dim);   
     case 'F15'
        %McComick
        fobj = @F15;
        dim=2;
        lb=-10*ones(1,dim);
        ub=10*ones(1,dim);         
    case 'F16'
        %Michalewicz2
        fobj = @F16;
        dim=2;
        lb=0*ones(1,dim);
        ub=pi*ones(1,dim);         
     case 'F17'
        %Quadratic
        fobj = @F17;        
        dim=2;
        lb=-10*ones(1,dim);
        ub=10*ones(1,dim);         
    case 'F18'
        %Schaffer
        dim=2;
        fobj = @F18;                
        lb=-100*ones(1,dim);
        ub=100*ones(1,dim);
    case 'F19'
        %StyblinskiTang
        fobj = @F19;                
        dim=2;
        lb=-5*ones(1,dim);
        ub=5*ones(1,dim);        
     case 'F20'
        %Box-Betts
        fobj = @F20;                        
        dim=3;
        lb=[0.9 9 0.9];
        ub=[1.2 11.2 1.2]; 
    case 'F21'
        %Colville
        fobj = @F21;                        
        dim=4;
        lb=-1*ones(1,dim);
        ub=1*ones(1,dim);          
    case 'F22'
        %Csendes
        fobj = @F22;                        
        dim=4;
        lb=-1*ones(1,dim);
        ub=1*ones(1,dim);         
    case 'F23'
       %  Michalewicz 5
        fobj = @F23;                        
        dim=5;
        lb=0*ones(1,dim);
        ub=pi*ones(1,dim);          
    case 'F24'
        %Miele Cantrell
        dim=4;
        fobj = @F24;                        
        lb=-1*ones(1,dim);
        ub=1*ones(1,dim);
    case 'F25'
        % Step
        fobj = @F25;                        
        dim=5;
        lb=-100*ones(1,dim);
        ub=100*ones(1,dim);
    case 'F26'
        %Michalewicz
        fobj = @F26;                                
         dim=10;
        lb=0*ones(1,dim);
        ub=pi*ones(1,dim);    
    case 'F27'    
        %Shubert
        fobj = @F27;                                
        dim=5;
        lb=-10*ones(1,dim);
        ub=10*ones(1,dim);        
    case 'F28'
        %Ackley
        dim=30;
        fobj = @F28;                                        
        lb=-32*ones(1,dim);
        ub=32*ones(1,dim);         
    case 'F29'
        %Brown
        fobj = @F29;                                
        dim=30;
        lb=-1*ones(1,dim);
        ub=4*ones(1,dim);        
    case 'F30'
        %Ellipsoid
        dim=2;
        fobj = @F30;                                        
        lb=-5.12*ones(1,dim);
        ub=5.12*ones(1,dim);          
    case 'F31'
        % Grienwank
        fobj = @F31;                                                
        dim=30;
        lb=-100*ones(1,dim);
        ub=100*ones(1,dim); 
    case 'F32'
        %Mishra
        fobj = @F32;                                                
        dim=30;
        lb=0*ones(1,dim);
        ub=1*ones(1,dim); 
    case 'F33'
        %Quartic
        dim=30;
        fobj = @F33;                                                        
        lb=-1.28*ones(1,dim);
        ub=1.28*ones(1,dim);
    case 'F34'
        %Rastrigin
        fobj = @F34;                                                
        dim=30;
        lb=-5.12*ones(1,dim);
        ub=5.12*ones(1,dim);         
    case 'F35'
        %Rosenbrock
        fobj = @F35;                                                             
        dim=30;
        lb=-30*ones(1,dim);
        ub=30*ones(1,dim);   
    case 'F36'
     %     Salomon
        fobj = @F36;                                                     
        dim=30;
        lb=-100*ones(1,dim);
        ub=100*ones(1,dim);
    case 'F37'
        %Sphere
        fobj = @F37;                                                     
        dim=30;
        lb=-100*ones(1,dim);
        ub=100*ones(1,dim);           
end
end
 
function o=F1(x)
% Adjiman
 o=(cos(x(:,1)).*sin(x(:,2))-x(:,1)./(x(:,2).^2+1));
 
end
function o=F2(x)
  %     Beale
   o=(1.5-x(:,1)+(x(:,1).*(x(:,2)))).^2+(2.25-x(:,1)+(x(:,1).*(x(:,2)).^2)).^2+...
    (2.625-x(:,1)+(x(:,1).*(x(:,2)).^3)).^2;
end
function o=F3(x)
    %     Bird
    o=sin(x(:,2)).*(exp(1-cos(x(:,1))).^2)+cos(x(:,1)).*(exp(1-sin(x(:,2))).^2)...
    +(x(:,1)+(x(:,2))).^2;
end
 
function o=F4(x)
    %     Bohachevsky
    W=0;
    [a,dim]=size(x);
    for i=1:dim-1
        W=W+x(:,i).^2+2.*x(:,i+1).^2-0.3.*cos(3.*pi.*x(:,i+1))-0.4.*cos(4.*pi.*(x(:,i+1)))+0.7;
    end
    o=W;
end
 
function o=F5(x)
        %Booth
    o=(x(:,2)-(5.1*x(:,1).^2/(4*pi*2))+(5*x(:,1)/pi)-6).^2+...
        10*(1-1/(8*pi)).*cos(x(:,1))+10;
end
 
function o=F6(x)
    %     Branin RCOS 1
    o=(x(:,2)-(5.1*x(:,1).^2/(4*pi*2))+(5*x(:,1)/pi)-6).^2+...
        10*(1-1/(8*pi)).*cos(x(:,1))+10;
end
 
function o=F7(x)
%     Branin RCOS 2 
    a=1; b=5.1/(4*pi^2); c=5/pi; d=6; e=10; g=1/(8*pi);
    f1=a*(x(:,2)-b*x(:,1).^2+c*x(:,1)-d).^2;
    f2=e*(1-g)*cos(x(:,1)).*cos(x(:,2));
    f3=log(x(:,1).^2+x(:,2)+1);
    o=-1/(f1+f2+f3+e);
end
function o=F8(x)
%Brent
    o=(x(:,1)+10).^2+(x(:,1)+10).^2+exp(-x(:,1).^2-x(:,2).^2);
end
function o=F9(x)
  %Bukin F2
o=(abs(x(:,1)-0.01.*x(:,2).^2))+0.01.*abs(x(:,2)+10);
end
function o=F10(x)
%Camel Six Hump
    o=(4-2.1*x(:,1).^2+(x(:,1).^4)/3).*x(:,1).^2+x(:,1).*x(:,2)+...
        (4*x(:,2).^2-4).*x(:,2).^2;  
end
function o=F11(x)
        %Chichinadze
    o=x(:,1).^2-12*x(:,1)+11+10*cos(pi*x(:,1)/2)+8*sin(5*pi*x(:,1)/2)-...
        ((1/5)^0.5)*exp(-0.5*(x(:,2)-0.5).^2);
end
 
function o=F12(x)
%     Deckkers-Aarts
    o=10^5*x(:,1).^2+x(:,2).^2-(x(:,1).^2+x(:,2).^2).^2+...
        10^(-5)*(x(:,1).^2+x(:,2).^2).^4;  
end
function o = F13(x)
% Easom
o=-cos(x(:,1)).*cos(x(:,2)).*exp(-(x(:,1)-pi).^2-(x(:,2)-pi).^2);      
 
end
function o=F14(x)
    %     Evaluate Matyas
    o=0.26*(x(:,1).^2+x(:,2).^2)-0.48*x(:,1).*x(:,2);
end
function o=F15(x)
  %     McCormick
o=mccormick(x);%
end
function o=F16(x)
    %  Michalewicz2
    [~,d]=size(x);
    W=0;
    for i=1:d
        W=sin(x(:,1)).*sin(i*x(:,i).^2/pi).^2*d;
    end
    o=-W;
end  
function o=F17(x)
   %   Quadratic
    o=-3803.84-138.08*x(:,1)-232.92*x(:,2)+128.08*x(:,1).^2+203.64*x(:,2).^2+182.25*x(:,1).*x(:,2);  
end
function o=F18(x)
        %     Evaluate Schaffer
        [~,d]=size(x);
        w=0;
        for i=1:d-1
            w=w+((x(i).^2+x(i+1).^2).^.5).*(sin(50.*(x(i).^2+x(i+1).^2).^0.1)).^2;
        end
        o=w;
end
    function o=F19(x)
    %  Styblinki's Tang
    [~,d]=size(x);
      W=0;
      for i=1:d
          W=W+(x(:,i).^4-16.*x(:,i).^2+5.*x(:,i));
      end
      o=W.*0.5;
    end
    function o=F20(x)
        % Box-Betts
        [~,d]=size(x);
    W=0;
    for i=1:d
        g=exp(-0.1.*(i+1)).*x(:,1)-exp(-0.1.*(i+1)).*x(:,2)-((exp(-0.1.*(i+1)))-exp(-(i+1)).*x(:,3));
        W=W+g.^2;
    end
    o=W;
    end    
    function o=F21(x)
    %     Colville
    o=100*(x(:,1)-x(:,2).^2).^2+(1-x(:,1)).^2+90*(x(:,4)-x(:,3).^2).^2+...
    (1-x(:,3)).^2+10.1*((x(:,2)-1).^2+(x(:,4)-1).^2)+...
    19.8*(x(:,2)-1).*(x(:,4)-1);
    end    
    function o=F22(x)
        %     Csendes
        [~,d]=size(x);
    aa=0;
    for i=1:d
        aa=aa+x(:,i).^6.*(2+sin(1/x(:,i)));
    end
    o=aa;
    end    
    function o=F23(x)
            % Michalewicz 5
            [~,d]=size(x);
    W=0;
    for i=1:d
        W=sin(x(:,1)).*sin(i*x(:,i).^2/pi).^2*d;
    end
    o=-W;
    end    
    function o=F24(x)
 %Miele Cantrell
    o=(exp(-x(:,1))-x(:,2)).^4+100*(x(:,2)-x(:,3)).^6+...
        (tan(x(:,3)-x(:,4))).^4+x(:,1).^8;
    end
    function o=F25(x)
        %     Evaluate Step
        [~,d]=size(x);
    W=0;
    for i=1:d
        W=W+(floor(x(:,i)+0.5)).^2;
    end
    o=W;
    end
    
    function o=F26(x)
        %     Evaluate Michalewicz 10
        [~,d]=size(x);
        W=0;
    for i=1:d
        W=sin(x(:,1)).*sin(i*x(:,i).^2/pi).^2*d;
    end
    o=-W;
    end
    function o=F27(x)
%     shubert
        [~,d]=size(x);
        s1=0;
        s2=0;
        for i = 1:d
             s1 = s1+i*cos((i+1)*x(1)+i);
             s2 = s2+i*cos((i+1)*x(2)+i);
        end
        o = s1*s2;   
    end    
% F28--Ackley
function o = F28(x)
dim=size(x,2);
o=-20*exp(-.2*sqrt(sum(x.^2)/dim))-exp(sum(cos(2*pi.*x))/dim)+20+exp(1);
end    
    function o=F29(x)
    [~,d]=size(x);
    %     Brown
    a=0;
    for i=1:d-1
        a=(x(:,i).^2).^(x(:,i+1)+1)+(x(:,i+1).^2).^(x(:,i).^2+1);
    end
    o=a;
    end    
    function o=F30(x)
            %     Ellipsoid
     [~,d]=size(x);
        W=0;
        for i=1:d
            W=W+i.*x(:,1).^2;
        end
        o=W;
    end    
    %Grienwank
    function o=F31(x)
    o=griewank(x);
    end
    function o=F32(x)
        %      Mishra
        [~,d]=size(x);
    a=0;
    for i=1:d-1
        a=a+x(:,i);
    end
    aa=d-a;
    b=0;
    for j=1:d-1
        b=b+x(:,j);
    end
    W=abs((1+d-b).^aa);
    o=W;   
    end    
% --Quartic
function o = F33(x)
dim=size(x,2);
o=sum([1:dim].*(x.^4))+rand;
end    
%Rastrigin
    function o=F34(x)
    o=rastrigin(x); 
    end
% Rosenbrock
function o = F35(x)
dim=size(x,2);
o=sum(100*(x(2:dim)-(x(1:dim-1).^2)).^2+(x(1:dim-1)-1).^2);
end
    function o=F36(x)
%     salomon
    x2 = x.^2;
    sumx2 = sum(x2, 2);
    sqrtsx2 = sqrt(sumx2);
    o = 1 - cos(2 .* pi .* sqrtsx2) + (0.1 * sqrtsx2);
    end
function o = F37(x)
%Sphere
o=sum(x.^2);
end
    
    
function o=Ufun(x,a,k,m)
o=k.*((x-a).^m).*(x>a)+k.*((-x-a).^m).*(x<(-a));
end

3.F1 Matlab代碼仿真

到此這篇關(guān)于基于Matlab實現(xiàn)嗅覺優(yōu)化算法的示例代碼的文章就介紹到這了,更多相關(guān)Matlab嗅覺優(yōu)化算法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++ 中函數(shù)重載、覆蓋與隱藏詳解

    C++ 中函數(shù)重載、覆蓋與隱藏詳解

    這篇文章主要介紹了C++ 中函數(shù)重載、覆蓋與隱藏詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 詳解C++中常用的四種類型轉(zhuǎn)換方式

    詳解C++中常用的四種類型轉(zhuǎn)換方式

    這篇文章主要為大家詳細(xì)介紹了C++中常用的四種類型轉(zhuǎn)換方式:static_cast<Type>、dynamic_cast<Type>、const_case<Type>和reinterpret_cast,感興趣的可以了解一下
    2022-08-08
  • C++流程控制中用于跳轉(zhuǎn)的return和goto語句學(xué)習(xí)教程

    C++流程控制中用于跳轉(zhuǎn)的return和goto語句學(xué)習(xí)教程

    這篇文章主要介紹了C++流程控制中用于跳轉(zhuǎn)的return和goto語句學(xué)習(xí)教程,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2016-01-01
  • C語言中進(jìn)程信號集的相關(guān)操作函數(shù)詳解

    C語言中進(jìn)程信號集的相關(guān)操作函數(shù)詳解

    這篇文章主要介紹了C語言中進(jìn)程信號集的相關(guān)操作函數(shù)詳解,包括sigismember函數(shù)和sigfillset函數(shù)以及sigemptyset函數(shù)的用法,需要的朋友可以參考下
    2015-09-09
  • C語言雙向鏈表的原理與使用操作

    C語言雙向鏈表的原理與使用操作

    雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個數(shù)據(jù)結(jié)點中都有兩個指針,分別指向直接后繼和直接前驅(qū)。本文主要介紹了C語言算法中雙向鏈表的實現(xiàn),需要的可以參考一下
    2022-05-05
  • 詳解C++ 前置聲明

    詳解C++ 前置聲明

    這篇文章主要介紹了C++ 前置聲明的相關(guān)資料,幫助大家更好的理解和使用c++,感興趣的朋友可以了解下
    2020-09-09
  • C++初始化列表學(xué)習(xí)

    C++初始化列表學(xué)習(xí)

    在C++中,struct和class的唯一區(qū)別是默認(rèn)的克訪問性不同,而這里我們不考慮訪問性的問題,所以下面的代碼都以struct來演示
    2013-09-09
  • c++11 新特性——智能指針使用詳解

    c++11 新特性——智能指針使用詳解

    這篇文章主要介紹了c++11 新特性——智能指針使用的相關(guān)資料,幫助大家更好的理解和使用c++,感興趣的朋友可以了解下
    2021-02-02
  • C語言 操作符分類解析與使用

    C語言 操作符分類解析與使用

    C 語言提供了豐富的操作符,有:算術(shù)操作符,移位操作符,位操作符,邏輯操作符,逗號表達(dá)式。讓我們通讀本篇來詳細(xì)了解吧
    2021-11-11
  • 手拉手教你如何理解c/c++中的指針

    手拉手教你如何理解c/c++中的指針

    當(dāng)你對C越來越熟悉時,你會發(fā)現(xiàn)把與指針攪和在一起的"類型"這個概念分成"指針的類型"和"指針?biāo)赶虻念愋?quot;兩個概念,是精通指針的關(guān)鍵點之一,這篇文章主要給大家介紹了關(guān)于c/c++中指針的相關(guān)資料,需要的朋友可以參考下
    2021-10-10

最新評論