• 大小: 704B
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: Matlab
  • 标签: 粒子群  matlab  优化  

资源简介

简单的matlab版本的粒子群算法 可解决TSP问题 简单优化改进版本 fitness 和最后函数自己写 只给了主体函数 其余只有几行代码了 自力更生才学的会啊

资源截图

代码片段和文件信息

function [xmfv] = SelPSO(fitnessNc1c2wMD)

format long;

%------初始化种群的个体------------
%x=[8276;9444;505;498;137;2989;5830;8439;1424;239;382;510;9852;8425;6159;165;8851;912;1932;933;5093;9814;542;429;6162;997;8055;5769;2315;2070;8560;985]
%N=32;
%D=32;
for i=1:N

    for j=1:D

        x(ij)=randn;  %随机初始化位置

        v(ij)=randn;  %随机初始化速度

    end

end

%------初始化Pi和Pg----------------------

for i=1:N

    p(i)=fitness(x(i:));

    y(i:)=x(i:);

end

pg = x(N:);             %Pg为全局最优

for i=1:(N-1)

    if fitness(x(i:))
        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:);
        
        fx(i) = fitness(x(i:));

        if fx(i)
            p(i)=fx(i);

            y(i:)=x(i:);

        end

        if p(i)
            pg=y(i:);

        end

    end
    
    [sortfsortx] = sort(fx);%返回位置
    
    exIndex = round((N-1)/2);
    
    x(sortx((N-exIndex+1):N)) = x(sortx(1:exIndex));
    
    v(sortx((N-exIndex+1):N)) = v(sortx(1:exIndex));
    
end

xm = pg‘;

fv = fitness(pg);




 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1306  2012-03-14 12:25  SelPSO.m

评论

共有 条评论