can anyone point out the error in this code ......

  1. Noor Us Sabah
    Noor Us Sabah
    % eg: firefly_demo( [25,20]);
    function [best]=firefly_demo(instr)
    % n=number of f i r e f l i es
    y. MaxGeneration=number of pseudo time steps
    if nargin<l, instr=[25 20]; end
    n = i n s t r ( l ) ; MaxGeneration=instr(2);
    r a n d ( ' s t a t e ' , 0 ) ; % Reset the random generator
    % Four peak functions
    funstr='(abs(x)+abs(y))*exp(-0.0625*(x~2+y~2))';
    y, Converting to an inline function
    f=vectorize(inline(funstr));
    % range= [xmin xmax ymin ymax] ;
    range=[-5 5 - 5 5];
    %
    alpha=0.2; % Randomness 0—1 (highly random)
    gamma=1.0; % Absorption coefficient

    % Grid values are used for display only
    Ndiv=100;
    dx=(range(2)-range(1))/Ndiv; dy=(range(4)-range(3))/Ndiv;
    [x,y]=meshgrid(range(l):dx:range(2),range(3):dy:range(4 ));
    z=f(x,y);
    % Display the shape of the objective function
    figure(l); surfc(x,y,z);
    %
    % generating the initial locations of n fireflies
    [xn,yn,Lightn]=init_ffa(n,range);

    % Display the paths of fireflies in a figure with
    % contours of the function to be optimized
    figure(2);
    %'A I t e r a t i o n s or pseudo time marching
    for i=l:MaxGeneration, °/°/°/°/,°l. s t a r t i t e r a t i o ns
    % Show the contours of the function
    contour(x,y,z,15); hold on;
    % Evaluate new solutions
    zn=f(xn.yn);
    % Ranking the fireflies by their light intensity
    [Lightn,Index]=sort(zn);
    xn=xn(Index); yn=yn(Index);
    xo=xn; yo=yn; Lighto=Lightn;
    % Trace the paths of all roaming fireflies
    plot(xn,yn,'.','markersize',10,'markerfacecolor',' g');
    % Move all fireflies to the better locations
    [xn,yn]=ffa_move(xn,yn,Lightn,xo.yo,...
    Lighto,alpha,gamma,range);
    drawnow;
    % Use "hold on" to show the paths of fireflies
    hold off;
    end V/°/°/X
    end of iterations
    best(:,l)=xo'; best(:,2)=yo'; best(:,3)=Lighto';
    % All subfunctions are listed here
    % The initial locations of n fireflies
    function [xn,yn,Lightn]=init_ffa(n,range)
    xrange=range(2)-range(l);
    yrange=range(4)-range(3);
    xn=rand(1,n)*xrange+range(1);
    yn=rand(1,n)*yrange+range(3);
    Lightn=zeros(size(yn));
    %Move all fireflies toward brighter ones
    function [xn,yn]=ffa_move(xn,yn,Lightn,xo.yo,...
    Lighto,alpha,gamma,range)
    ni=size(yn,2); nj=size(yo,2);
    for i=l:ni,
    % The attractiveness parameter beta=exp(-gamma*r)
    for j=l:nj,
    r=sqrt((xn(i)-xo(j))~2+(yn(i)-yo(j))~2) ;
    if Lightn(i)<Lighto(j) , */, Brighter and more attractive
    beta0=l; beta=betaO*exp(-gamma*r."2);
    xn(i)=xn(i).*(l-beta)+xo(j).*beta+alpha.*(rand-0.5);
    yn(i)=yn(i).*(l-beta)+yo(j).*beta+alpha.*(rand-0.5);
    end
    end 7, end for j

    end */, end for i
    [xn,yn]=findrange(xn,yn,range);
    % Make sure the f i r e f l i e s are within the range
    function [xn,yn]=findrange(xn,yn,range)
    for i=l:length(yn),
    if xn(i)<=range(l), xn(i)=range(l); end
    if xn(i)>=range(2), xn(i)=range(2); end
    if yn(i)<=range(3), yn(i)=range(3); end
    if yn(i)>=range(4), yn(i)=range(4); end
    end
Results 1 to 1 of 1