• 大小: 13KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: 其他
  • 标签: 工具箱  

资源简介

是在mathworks广泛论坛上下载的,作者发表过多篇相关论文

资源截图

代码片段和文件信息

%% Bacterial foraging 
% Animiation of bacteria movement to get the global minimum solution every chemotactic 
%
% Author: Wael Mansour (wael192@yahoo.com)
%
% MSc Student Electrical Enginering Dept 
% Faculty of Engineering Cairo University Egypt





%%
%Initialization
clear all   
clc
p=2;                         % dimension of search space 
s=26;                        % The number of bacteria 
Nc=50;                       % Number of chemotactic steps 
Ns=4;                        % Limits the length of a swim 
Nre=4;                       % The number of reproduction steps 
Ned=2;                       % The number of elimination-dispersal events 
Sr=s/2;                      % The number of bacteria reproductions (splits) per generation 
Ped=0.25;                    % The probabilty that each bacteria will be eliminated/dispersed 
c(:1)=0.05*ones(s1);       % the run length  
for m=1:s                    % the initital posistions 
    P(1:111)= 50*rand(s1)‘;
    P(2:111)= .2*rand(s1)‘;
   %P(3:111)= .2*rand(s1)‘;
end                                                                  
     
%%
%Main loop 
    

%Elimination and dispersal loop 
for ell=1:Ned
    

%Reprodution loop


    for K=1:Nre    

%  swim/tumble(chemotaxis)loop   

        for j=1:Nc
            
            for i=1:s        
                J(ijKell)=Live_fn(P(:ijKell));         

% Tumble

                        
                Jlast=J(ijKell);   
                Delta(:i)=(2*round(rand(p1))-1).*rand(p1);               
                P(:ij+1Kell)=P(:ijKell)+c(iK)*Delta(:i)/sqrt(Delta(:i)‘*Delta(:i)); % This adds a unit vector in the random direction            
 
% Swim (for bacteria that seem to be headed in the right direction)     
                
                J(ij+1Kell)=Live_fn(P(:ij+1Kell));  
                m=0;         % Initialize counter for swim length 
                    while m                          m=m+1;
                          if J(ij+1Kell)                             Jlast=J(ij+1Kell);    
                             P(:ij+1Kell)=P(:ij+1Kell)+c(iK)*Delta(:i)/sqrt(Delta(:i)‘*Delta(:i)) ;  
                             J(ij+1Kell)=Live_fn(P(:ij+1Kell));  
                          else       
                             m=Ns ;     
                          end        
                    
                    end 
                J(ijKell)=Jlast;
                sprintf(‘The value of interation i %3.0f j = %3.0f   K= %3.0f ell= %3.0f‘  i j K ell );
                   
            end % Go to next bacterium
            
            x = P(1:jKell);
            y = P(2:jKell);
            clf    
            plot(x y  ‘h‘)   
            axis([-5 5 -5 5]);
            pause(.1)
        end  % Go to the next chemotactic    

                

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        5211  2008-06-08 16:42  BG_Wael\BG.asv
     文件        4598  2008-06-08 19:34  BG_Wael\BG.m
     目录           0  2008-06-08 19:38  BG_Wael\html\
     文件       12374  2008-06-08 19:37  BG_Wael\html\BG.html
     文件        1234  2008-06-08 19:37  BG_Wael\html\BG.png
     文件        3022  2008-06-08 19:37  BG_Wael\html\BG_01.png
     文件        5632  2008-06-08 19:38  BG_Wael\html\Thumbs.db
     文件         184  2008-06-07 00:36  BG_Wael\Live_fn.m
     目录           0  2008-06-08 19:00  BG_Wael\

评论

共有 条评论