ベースパーティクルクラスタアルゴリズムコード


function [xm,fv]=PSO_Kades(fitness,N,c1,c2,w,M,D)
%      :fitness
%    :N
%    :c1
%    :c2
%    :W
%      :M
%           :xm
%        :fv

%       
format long;
for i=1:N
   for j=1:D
        x(i,j)=randn;
		v(i,j)=randn;
   end
end
%
for i=1:N
   p(i)=fitness(x(i));
   y(i,:)=x(i,:);
end

%        
pg=x(N,:);
for i=1:(N-1)
    if fitness(x(i,:))<fitness(pg)
	  pg=x(i,:);
    end
end

%        
for t=1:M
   for i=1:N
       v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));
	   x(i,:)=x(i,:)+v(i,:)
      
      if fitness(x(i,:))<p(i)            %          
	      y(i,:)=x(i,:);
	  end
	  if fitness(y(i,:))<fitness(pg)       %      
	    pg=y(i,:)
	  end
	end
end
xm=pg';
fv=fitness(pg);