Hello Mat

 找回密码
 立即注册
查看: 49234|回复: 60

2-基于PSO改进策略--视频分享

  [复制链接]

1323

主题

1551

帖子

0

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22647
发表于 2017-1-20 13:23:44 | 显示全部楼层 |阅读模式
2-基于PSO改进策略:
百度网盘链接:
链接:http://pan.baidu.com/s/1pKKiFRd 密码:dsz0
具体链接在halcom.cn论坛,联系人QQ:3283892722
该论坛是一个学习交流平台,我会逐一的和大家分享学习。
欢迎大家录制视频,并提交给我,我来设置视频,你可在论坛进行打赏分享。
视频专用播放器:http://halcom.cn/forum.php?mod=viewthread&tid=258&extra=page%3D1

如:自适应权重PSO代码如下:
  1. clc,clear,close all
  2. warning off
  3. format longG
  4. tic;
  5. % PSO 参数
  6. c1 = 1.4995;  
  7. c2 = 1.4995;
  8. Vmin = -1;
  9. Vmax = 1;
  10. maxiter = 20;  % 迭代次数
  11. sizepop = 20;  % 种群数量
  12. popmin1 = -1;  popmax1 = 1; % x1
  13. popmin2 = -1;  popmax2 = 1; % x2
  14. % 初始化种群
  15. for i=1:sizepop
  16.     x1 = popmin1 + (popmax1-popmin1)*rand;
  17.     x2 = popmin2 + (popmax2-popmin2)*rand;
  18.     pop(i,1) = x1;
  19.     pop(i,2) = x2;
  20.     fitness(i) = fun([x1,x2]);
  21.     V(i,1) = 0;
  22.     V(i,2) = 0;
  23. end
  24. % 记录一组最优值
  25. [bestfitness,bestindex]=min(fitness);
  26. zbest=pop(bestindex,:);   % 全局最佳
  27. gbest=pop;                % 个体最佳
  28. fitnessgbest=fitness;     % 个体最佳适应度值
  29. fitnesszbest=bestfitness; % 全局最佳适应度值
  30. wmax = 0.9;  wmin = 0.4;
  31. % 迭代寻优
  32. for i=1:maxiter
  33.     for j=1:sizepop
  34.         % 自适应权重1
  35. %         w = wmin + (wmax-wmin)*(fitnessgbest(j)-min(fitness))/( max(fitness)-min(fitness) );
  36.         % 自适应权重2
  37. %         w = wmin - (wmax-wmin)*(fitnessgbest(j)-min(fitness))/( mean(fitness)-min(fitness) );
  38.         % 自适应权重3
  39.         if fitnessgbest(j)<=mean(fitness)
  40.             w = wmin - (wmax-wmin)*(fitnessgbest(j)-min(fitness))/( mean(fitness)-min(fitness) );
  41.         else
  42.             w = wmax;
  43.         end
  44.         % 速度更新
  45.         V(j,:) = w*V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));
  46.         % V--x1
  47.         if V(j,1)>Vmax
  48.             V(j,1)=Vmax;
  49.         end
  50.         if V(j,1)<Vmin
  51.             V(j,1)=Vmin;
  52.         end
  53.         % V--x2
  54.         if V(j,2)>Vmax
  55.             V(j,2)=Vmax;
  56.         end
  57.         if V(j,2)<Vmin
  58.             V(j,2)=Vmin;
  59.         end
  60.         % 个体更新
  61. %         pop(j,:) = pop(j,:) + 0.5 * V(j,:);
  62.         pop(j,1) = pop(j,1) + 0.5 * V(j,1);
  63.         pop(j,2) = pop(j,2) + 0.5 * V(j,2);
  64.         
  65.         % x1  越界限制
  66.         if pop(j,1)>popmax1
  67.             pop(j,1)=popmax1;
  68.         end
  69.         if pop(j,1)<popmin1
  70.             pop(j,1)=popmin1;
  71.         end
  72.         % x2  越界限制
  73.         if pop(j,2)>popmax2
  74.             pop(j,2)=popmax2;
  75.         end
  76.         if pop(j,2)<popmin2
  77.             pop(j,2)=popmin2;
  78.         end
  79.         
  80.         % 适应度更新
  81.         fitness(j) = fun(pop(j,:));
  82.         
  83.         % 比较  个体间比较
  84.         if fitness(j)<fitnessgbest(j)
  85.             fitnessgbest(j) = fitness(j);
  86.             gbest(j,:) = pop(j,:);
  87.         end
  88.         if fitness(j)<bestfitness
  89.             bestfitness = fitness(j);
  90.             zbest =  pop(j,:);
  91.         end
  92.         
  93.     end
  94.     fitness_iter(i) = bestfitness;
  95.    
  96. end
  97. toc ;
  98. times = toc;
  99. fprintf('\n')
  100. disp(['计算时间 Time =    ',   num2str(times) ])
  101. fprintf('\n')
  102. disp(['最优解   ', num2str(zbest)])
  103. fprintf('\n')

  104. figure('color',[1,1,1])
  105. plot(fitness_iter,'ro-','linewidth',2)
复制代码
适应度函数:
  1. function y = fun(x)
  2. % y=-20*exp(-0.2*sqrt((x(1)^2+x(2)^2)/2))-exp((cos(2*pi*x(1))+cos(2*pi*x(2)))/2)+20+2.71289;

  3. y = (x(1)-0.5)^2 + (x(2)-0.6)^2;

  4. % y = (x(1)-0.3)^2 ;
复制代码

案例分享:
【1】PSO_source_error_NRMSE_惯性因子gbest,改进的PSO算法结构体化编程:对参数范围进行缩放的改进策略
【2】



算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复

使用道具 举报

0

主题

13

帖子

15

金钱

新手上路

Rank: 1

积分
28
发表于 2017-2-13 05:17:21 | 显示全部楼层
{:2_25:}太棒了!
回复

使用道具 举报

0

主题

3

帖子

1

金钱

新手上路

Rank: 1

积分
4
发表于 2017-2-28 15:39:08 | 显示全部楼层
交大人好酷~
回复 支持 反对

使用道具 举报

0

主题

3

帖子

1

金钱

新手上路

Rank: 1

积分
4
发表于 2017-3-1 21:02:47 | 显示全部楼层
hhhhhhhhhhhhhhhhhhhhhhhh
回复 支持 反对

使用道具 举报

0

主题

3

帖子

1

金钱

新手上路

Rank: 1

积分
4
发表于 2017-3-2 14:22:25 | 显示全部楼层
太感谢了。。。。。。。。
回复

使用道具 举报

0

主题

3

帖子

1

金钱

新手上路

Rank: 1

积分
4
发表于 2017-3-2 15:04:27 | 显示全部楼层
我要看代码,学习学习~~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

0

主题

33

帖子

1

金钱

新手上路

Rank: 1

积分
37
发表于 2017-3-3 23:02:31 | 显示全部楼层
非常感谢,学习学习
回复 支持 反对

使用道具 举报

0

主题

2

帖子

9

金钱

新手上路

Rank: 1

积分
11
发表于 2017-3-7 14:52:28 | 显示全部楼层
222222222222222
回复 支持 反对

使用道具 举报

0

主题

6

帖子

1

金钱

新手上路

Rank: 1

积分
7
发表于 2017-3-10 10:58:16 | 显示全部楼层
好东西,我来看看了
回复 支持 反对

使用道具 举报

0

主题

8

帖子

24

金钱

新手上路

Rank: 1

积分
32
发表于 2017-3-14 19:05:07 | 显示全部楼层
2-基于PSO改进策略--视频分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2024-11-22 19:43 , Processed in 0.225481 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表