基础的粒子群算法代码

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);


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值