基本的pso算法

PSO算法中的微粒飞行规则类似于鸟类的运动,从而使得整个微粒群的运动表现出与鸟类觅食类似的特性,进而用于求解复杂的优化问题,该算法的基本思想是通过群体中之间的协作和信息共享来寻找最优解。

基本流程:初始化种群和速度—>计算适应度值—>找到个体的极值和种群的极值——>速度更新和个体更新—>计算适应度值—>更新个体极值和种群的极值—>判断是否满足终止条件(如果是否则返回速度更新和个体的更新,是的话就结束该算法)

%自适应权重粒子群优化算法的matlab程序
%fitness适应度函数
%N种群个数
%c1粒子群参数
%c2粒子群参数
%wmax最大权重
%wmin最小权重
%M循环迭代次数
%D种群中个体
format long;
for i=1:N
    for j=1:D
        x(i,j)=randn;
        v(x,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 j=1:N
        fv(j)=fitness(x(j,:));
    end
    fvg=sum(fv)/N;
    fmin=min(fv);
    for i=1:N
        if fv(i)<=fvag
            w=wmin+(fv(i)-fmin)*(wmax-wmin)/(fvg-fmin);
        else
            w=wmax;
            
        end
        v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));
        x(i,:)=x(i,;)+v(i,;);
    end
    if p(i)<fitness(pg)
        pg=y(i,:);
    end
end
pbest(t)=fitness(pg);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值