24小时热门版块排行榜    

Znn3bq.jpeg
查看: 3777  |  回复: 1

xiashaoyan

新虫 (正式写手)

[交流] 粒子群算法中的惯性权重的设置地方--w=ws-(ws-we)*i/maxgen; 已有1人参与

以下是粒子群算法寻优的程序(程序来自于MATLAB智能算法30个案例分析),惯性权重w=ws-(ws-we)*i/maxgen;是体现粒子继承先前速度的能力,所以感觉下面程序中的一条有点小问题,我觉的V(j,:)=V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:))丢掉w,应该改为V(j,:)=w*V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:)),但不知道我想的对不对,请前辈们多多指教!



%% 清空环境
clc
clear

%% 参数初始化
%粒子群算法中的两个参数
c1 = 1.49445;
c2 = 1.49445;

maxgen=300;    %进化次数  
sizepop=20;   %种群规模
Vmax=0.5;
Vmin=-0.5;
popmax=2;
popmin=-2;
ws=0.9;
we=0.4;

for k=1:100
    %% 产生初始粒子和速度
    k
    for i=1:sizepop
        %随机产生一个种群
        pop(i,:)=2*rands(1,2);    %初始种群
        V(i,:)=0.5*rands(1,2);  %初始化速度
        %计算适应度
        fitness(i)=fun(pop(i,:));   %染色体的适应度
    end

    %% 个体极值和群体极值
    [bestfitness bestindex]=max(fitness);
    zbest=pop(bestindex,:);   %全局最佳
    gbest=pop;    %个体最佳
    fitnessgbest=fitness;   %个体最佳适应度值
    fitnesszbest=bestfitness;   %全局最佳适应度值

    %% 迭代寻优
    for i=1:maxgen
   
        w=ws-(ws-we)*i/maxgen;
        
        for j=1:sizepop
        
            %速度更新
            V(j,:)=V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));
            V(j,find(V(j,:)>Vmax))=Vmax;
            V(j,find(V(j,:)<Vmin))=Vmin;

            %种群更新
            pop(j,:)=pop(j,:)+V(j,:);
            pop(j,find(pop(j,:)>popmax))=popmax;
            pop(j,find(pop(j,:)<popmin))=popmin;
        
            %适应度值
            fitness(j)=fun(pop(j,:));

        end

        for j=1:sizepop

            %个体最优更新
            if fitness(j) > fitnessgbest(j)
                gbest(j,:) = pop(j,:);
                fitnessgbest(j) = fitness(j);
            end

            %群体最优更新
            if fitness(j) > fitnesszbest
                zbest = pop(j,:);
                fitnesszbest = fitness(j);
            end
        end
        yy(i)=fitnesszbest;   

    end
    s(k,:)=yy;
end
%% 结果分析
for m=1:300
    s(101,m)=sum( s(:,m) )/100;
end
plot(s(101,:),'b-')
title('最优个体适应度','fontsize',12);
xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (职业作家)

Matlab专家


小木虫: 金币+0.5, 给个红包,谢谢回帖
本帖仅楼主可见
2楼2019-01-24 01:57:54
已阅   申请计算强帖   回复此楼   编辑   查看我的主页
相关版块跳转 我要订阅楼主 xiashaoyan 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 化学工程调剂289 +41 yang婷 2026-04-07 47/2350 2026-04-09 23:23 by wolf97
[考研] 22408调剂求助 +3 毂12 2026-04-09 5/250 2026-04-09 23:21 by zhouyuwinner
[考研] 调剂 +19 2261744733 2026-04-08 19/950 2026-04-09 19:11 by vgtyfty
[考研] 一志愿厦大生物学332求调剂 +10 池池池池池池 2026-04-08 10/500 2026-04-09 17:10 by 独醉梦孤城
[考研] 293求调剂 +3 勇远库爱314 2026-04-08 3/150 2026-04-09 15:51 by wp06
[考研] 327求调剂 +10 Xxjc1107. 2026-04-06 11/550 2026-04-09 01:21 by lature00
[考研] 土木水利专硕276分求调剂 +6 我想上学!!6 2026-04-05 9/450 2026-04-08 17:45 by 宋小宝HQ
[考研] 材料科学与工程320求调剂,080500 +12 黄瓜味薯片 2026-04-06 12/600 2026-04-08 16:26 by luoyongfeng
[考研] 281求调剂 +10 椰子蘑菇 2026-04-06 10/500 2026-04-08 11:43 by zzucheup
[考研] 284求调剂 +17 梵@@ 2026-04-06 17/850 2026-04-08 11:35 by 1shin_ichi
[考研] 277求调剂 +4 考研调剂lxh 2026-04-06 6/300 2026-04-08 10:40 by 逆水乘风
[考研] 292求调剂 +4 lilllllxccc 2026-04-05 5/250 2026-04-07 09:29 by 纺大杨老师
[考研] 一志愿安徽某211 0703化学总分339求调剂 +7 晚风不晚 2026-04-04 7/350 2026-04-06 14:06 by houyaoxu
[考研] 284求调剂 +7 徐同学_001 2026-04-04 13/650 2026-04-05 17:19 by yulian1987
[考研] 288求调剂,一志愿华南理工大学071005 +6 ioodiiij 2026-04-04 6/300 2026-04-05 10:09 by guoweigw
[考研] 考研调剂 +11 小sun要好运 2026-04-04 11/550 2026-04-05 08:02 by qlm5820
[考研] 338求调剂 +7 晟功? 2026-04-03 7/350 2026-04-04 20:37 by 蓝云思雨
[考研] 一志愿沪9,求生物学调剂,326分 +6 刘墨墨 2026-04-04 6/300 2026-04-04 19:44 by 唐沐儿
[考研] 357求调剂 +13 1050389037 2026-04-03 13/650 2026-04-03 22:27 by 无际的草原
[考研] 考研调剂 +3 Draa 2026-04-03 3/150 2026-04-03 17:37 by hgwz7468
信息提示
请填处理意见