function f=pso()
max=10;
min=-10;
for i=1:30
randX=rand(10,1);
randX=min+randX*(max-min);
X(i,:)=randX;
end
format short;
%init
for i=1:30
Y=fitness(X(i,:));
pbest(i,:)=X(i,:);
pbestValue(i)=Y;
end
min=5.4e+7666;
for i=1:30
if pbestValue(i)<min
min=pbestValue(i);
indexMin=i;
end
end
gbest=pbest(indexMin,:);
gbestValue=pbestValue(indexMin);
velocity=rand(30,10)*2
A=3;
B=1;
W=.4;
hi='Hello';
for k=1:6
for i=1:30
newPbestValue(i)=fitness(X(i,:));
%newPbest(i,:)=X(i,:);
if newPbestValue(i)<pbestValue(i)
pbest(i,:)=X(i,:);
pbestValue(i)=newPbestValue(i);
end
end
min=pbestValue(1);
for i=1:30
if pbestValue(i)<min
min=pbestValue(i);
indexMin=i;
end
end
newGbest=pbest(indexMin,:);
newGbestValue=pbestValue(indexMin);
if newGbestValue<gbestValue
gbestValue=newGbestValue;
end
%gbestValue
for j=1:30
for i=1:10
% p=gbestValue-pbest(1,1)
% q=pbest(1,1)-X(1,1)
velocity(j,i)=W*velocity(j,i)+A*rand(1,1)*(pbest(j,i)-X(j,i))+B*rand(1,1)*(gbestValue-pbest(j,i));
X(j,i)=X(j,i)+velocity(j,i);
%m=B*rand(1,1)*p
% n=A*rand(1,1)*q
%v=W*velocity(1,1)
%velocity(1,1)=v+n+m;
end
%velocity(1,1)
end
% X=X+velocity;
for row=1:30
for col=1:10
if X(row,col)>10
X(row,col)=10;
end
if X(row,col)<-10
X(row,col)=-10;
end
end
end
end
gbestValue