国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

首頁(yè) > 行業(yè)資訊 > 多種智能優(yōu)化算法運(yùn)行時(shí)間和不同函數(shù)測(cè)試對(duì)比附matlab代碼

多種智能優(yōu)化算法運(yùn)行時(shí)間和不同函數(shù)測(cè)試對(duì)比附matlab代碼

時(shí)間:2023-06-20 來(lái)源: 瀏覽:

多種智能優(yōu)化算法運(yùn)行時(shí)間和不同函數(shù)測(cè)試對(duì)比附matlab代碼

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主簡(jiǎn)介:擅長(zhǎng)智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無(wú)人機(jī)等多種領(lǐng)域的Matlab仿真,完整matlab代碼或者程序定制加qq1575304183。

收錄于合集

?作者簡(jiǎn)介:熱愛(ài)科研的Matlab仿真開(kāi)發(fā)者,修心和技術(shù)同步精進(jìn),matlab項(xiàng)目合作可私信。

個(gè)人主頁(yè): Matlab科研工作室

個(gè)人信條:格物致知。

更多Matlab仿真內(nèi)容點(diǎn)擊

智能優(yōu)化算法       神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)       雷達(dá)通信       無(wú)線傳感器         電力系統(tǒng)

信號(hào)處理               圖像處理               路徑規(guī)劃       元胞自動(dòng)機(jī)         無(wú)人機(jī)

? 內(nèi)容介紹

智能優(yōu)化算法是一種常用的求解最優(yōu)化問(wèn)題的方法,包括遺傳算法、粒子群優(yōu)化算法、蟻群算法等等。這些算法具有不同的優(yōu)缺點(diǎn)和適用范圍,因此在實(shí)際應(yīng)用中需要進(jìn)行對(duì)比。

下面是一些常見(jiàn)的智能優(yōu)化算法及其特點(diǎn):

  1. 遺傳算法(GA):通過(guò)模擬種群遺傳過(guò)程來(lái)尋找最優(yōu)解,具有全局搜索能力和收斂速度較快的特點(diǎn)。

  2. 粒子群算法(PSO):通過(guò)模擬粒子在解空間中的運(yùn)動(dòng)過(guò)程來(lái)尋找最優(yōu)解,具有易于實(shí)現(xiàn)和求解速度快的特點(diǎn)。

  3. 蟻群算法(ACO):利用蟻群在食物與螞蟻巢穴之間的搜索規(guī)律來(lái)尋找最優(yōu)解,具有分布式搜索和適用于多目標(biāo)優(yōu)化等特點(diǎn)。

  4. 本文 涵蓋鯨魚(yú)算法、麻雀算法 遺傳算法、 蝗蟲(chóng)算法、 灰狼算法 、改進(jìn)蝗蟲(chóng)算法、改進(jìn)灰狼算法 、 進(jìn) 飛蛾算法 、飛蛾算法 、多元宇宙算法、 北方蒼鷹算法、 粒子群算法、蛇群算法、 正弦算法等

為了比較這些算法的性能,通常需要進(jìn)行不同函數(shù)測(cè)試。常用的測(cè)試函數(shù)包括Sphere、Rastrigin、Griewank、Ackley、Schwefel和Rosenbrock等。這些函數(shù)具有不同的復(fù)雜度和性質(zhì),可以用于評(píng)估不同算法的性能。另外加入了運(yùn)行時(shí)間對(duì)比。

? 部分代碼

%_________________________________________________________________________________

%  Equilibrium Optimizer source code (Developed in MATLAB R2015a)

%

%  programming: Afshin Faramarzi & Seyedali Mirjalili

%

%  e-Mail: afaramar@hawk.iit.edu,

%

%  paper:

%  A. Faramarzi, M. Heidarinejad, B. Stephens, S. Mirjalili, 

%  Equilibrium optimizer: A novel optimization algorithm

%  Knowledge-Based Systems

%  DOI: https://doi.org/10.1016/j.knosys.2019.105190

%____________________________________________________________________________________

function [Ave,Sd,Convergence_curve]=EO(Particles_no,Max_iter,lb,ub,dim,fobj,Run_no)

for irun=1:Run_no

Ceq1=zeros(1,dim);   Ceq1_fit=inf; 

Ceq2=zeros(1,dim);   Ceq2_fit=inf; 

Ceq3=zeros(1,dim);   Ceq3_fit=inf; 

Ceq4=zeros(1,dim);   Ceq4_fit=inf;

C=initialization(Particles_no,dim,ub,lb);

Iter=0; V=1;

a1=2;

a2=1;

GP=0.5;

while Iter<Max_iter

   

      for i=1:size(C,1)  

        

        Flag4ub=C(i,:)>ub;

        Flag4lb=C(i,:)<lb;

        C(i,:)=(C(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;         

          

        fitness(i)=fobj(C(i,:));

      

        if fitness(i)<Ceq1_fit 

              Ceq1_fit=fitness(i);  Ceq1=C(i,:);

        elseif fitness(i)>Ceq1_fit && fitness(i)<Ceq2_fit  

              Ceq2_fit=fitness(i);  Ceq2=C(i,:);              

        elseif fitness(i)>Ceq1_fit && fitness(i)>Ceq2_fit && fitness(i)<Ceq3_fit

              Ceq3_fit=fitness(i);  Ceq3=C(i,:);

        elseif fitness(i)>Ceq1_fit && fitness(i)>Ceq2_fit && fitness(i)>Ceq3_fit && fitness(i)<Ceq4_fit

              Ceq4_fit=fitness(i);  Ceq4=C(i,:);

                         

        end

      end

      

%---------------- Memory saving-------------------   

      if Iter==0

        fit_old=fitness;  C_old=C;

      end

    

     for i=1:Particles_no

         if fit_old(i)<fitness(i)

             fitness(i)=fit_old(i); C(i,:)=C_old(i,:);

         end

     end

    C_old=C;  fit_old=fitness;

%-------------------------------------------------

       

Ceq_ave=(Ceq1+Ceq2+Ceq3+Ceq4)/4;                              % averaged candidate 

C_pool=[Ceq1; Ceq2; Ceq3; Ceq4; Ceq_ave];                     % Equilibrium pool

 

 t=(1-Iter/Max_iter)^(a2*Iter/Max_iter);                      % Eq (9)

 

    for i=1:Particles_no

           lambda=rand(1,dim);                                % lambda in Eq(11)

           r=rand(1,dim);                                     % r in Eq(11)  

           Ceq=C_pool(randi(size(C_pool,1)),:);               % random selection of one candidate from the pool

           F=a1*sign(r-0.5).*(exp(-lambda.*t)-1);             % Eq(11)

           r1=rand(); r2=rand();                              % r1 and r2 in Eq(15)

           GCP=0.5*r1*ones(1,dim)*(r2>=GP);                   % Eq(15)

           G0=GCP.*(Ceq-lambda.*C(i,:));                      % Eq(14)

           G=G0.*F;                                           % Eq(13)

           C(i,:)=Ceq+(C(i,:)-Ceq).*F+(G./lambda*V).*(1-F);   % Eq(16)                                                             

    end

 

       Iter=Iter+1;  

       Convergence_curve(Iter)=Ceq1_fit; 

       Ceqfit_run(irun)=Ceq1_fit;

end

% display([’Run no : ’, num2str(irun)]);

% display([’The best solution obtained by EO is : ’, num2str(Ceq1,10)]);

% display([’The best optimal value of the objective funciton found by EO is : ’, num2str(Ceq1_fit,10)]);

% disp(sprintf(’--------------------------------------’));

end

Ave=mean(Ceqfit_run);

Sd=std(Ceqfit_run);

end

%%

function [Cin,domain]=initialization(SearchAgents_no,dim,ub,lb)

Boundary_no= size(ub,2); % numnber of boundaries

% If the boundaries of all variables are equal and user enter a signle

% number for both ub and lb

if Boundary_no==1

    Cin=rand(SearchAgents_no,dim).*(ub-lb)+lb;

    domain=ones(1,dim)*(ub-lb);

end

% If each variable has a different lb and ub

if Boundary_no>1

    for i=1:dim

        ub_i=ub(i);

        lb_i=lb(i);

        Cin(:,i)=rand(SearchAgents_no,1).*(ub_i-lb_i)+lb_i;

    end

    domain=ones(1,dim).*(ub-lb);

end

end

? 運(yùn)行結(jié)果

? 參考文獻(xiàn)

?? 代碼獲取關(guān)注我

??部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除
?? 關(guān)注我領(lǐng)取海量matlab電子書(shū)和數(shù)學(xué)建模資料

版權(quán):如無(wú)特殊注明,文章轉(zhuǎn)載自網(wǎng)絡(luò),侵權(quán)請(qǐng)聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習(xí)使用,務(wù)必24小時(shí)內(nèi)刪除。
相關(guān)推薦