请选择 进入手机版 | 继续访问电脑版

Hello Mat

 找回密码
 立即注册
查看: 19519|回复: 10

11人群搜索算法函数优化--视频分享

[复制链接]

1278

主题

1504

帖子

90

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22549
发表于 2017-1-20 19:55:16 | 显示全部楼层 |阅读模式
11人群搜索算法函数优化--视频分享
百度网盘链接:链接:http://pan.baidu.com/s/1cMkmPw 密码:4muk

具体链接在halcom.cn论坛,联系人QQ:3283892722
该论坛是一个学习交流平台,我会逐一的和大家分享学习。
欢迎大家录制视频,并提交给我,我来设置视频,你可在论坛进行打赏分享。
视频专用播放器:http://halcom.cn/forum.php?mod=viewthread&tid=258&extra=page%3D1
具体的代码如下:
  1. clc,clear,close all
  2. warning off
  3. format longG
  4. %% SOA 参数
  5. maxiter = 20;  % 迭代次数
  6. sizepop = 10;  % 种群数量
  7. Umax=0.9500;   % 最大隶属度值
  8. Umin=0.0111;   % 最小隶属度值
  9. popmin1 = -1;  popmax1 = 1; % x1
  10. popmin2 = -1;  popmax2 = 1; % x2
  11. fai1 = 0.5;
  12. fai2 = 0.5;
  13. w1 = 0.5;
  14. % w2 = 0.5;
  15. w2max = 0.7;
  16. w2min = 0.2;
  17. %% 初始化种群
  18. for i=1:sizepop
  19.     x1 = popmin1 + (popmax1-popmin1)*rand;
  20.     x2 = popmin2 + (popmax2-popmin2)*rand;
  21.     pop(i,1) = x1;
  22.     pop(i,2) = x2;
  23.     fitness(i) = fun([x1,x2]);
  24. end
  25. %% 记录一组最优值
  26. [bestfitness,bestindex]=min(fitness); % 索引最小值
  27. zbest=pop(bestindex,:);   % 全局最佳
  28. gbest=pop;                % 个体最佳
  29. fitnessgbest=fitness;     % 个体最佳适应度值
  30. fitnesszbest=bestfitness; % 全局最佳适应度值
  31. Frontpop = pop;
  32. %% 迭代寻优
  33. for i=1:maxiter
  34.     for j=1:sizepop
  35.        dego = gbest(j,:)-pop(j,:);
  36.        dalt = zbest-pop(j,:);
  37.        dpro = Frontpop(j,:) - pop(j,:);
  38.             Frontpop = pop;  % 记录上一时刻的最优种群
  39.        dij = sign( w1*dpro+fai1*dego+fai2*dalt );   % 确定方向
  40.        % 确定步长
  41.        [maxfitness,index] = sort(fitness,'descend');
  42.        u = Umax - index(j)/sizepop *(Umax-Umin);
  43.        u = u.*rand(1,2);          % 2个变量
  44.        T = sqrt(-log(u) );
  45.        xmin = pop(index(1),:);    % 最差的个体
  46.        xmax = pop(index(end),:);  % 最优的个体
  47.       
  48.        w2 = w2max - j/sizepop*(w2max-w2min);
  49.        delta = w2*abs( xmin-xmax );
  50.       
  51.        alpha = delta.*T;
  52.       
  53.        % 步长进行限制
  54.        for k=1:length(alpha)
  55.            if alpha(k)>0.6
  56.                alpha(k)=0.6;
  57.            elseif alpha(k)<-0.6
  58.                alpha(k) = -0.6;
  59.            end
  60.        end
  61.       
  62.        % 位置更新
  63.        pop(j,:) = pop(j,:) + dij.*alpha;        

  64.         % x1  越界限制
  65.         if pop(j,1)>popmax1
  66.             pop(j,1)=popmax1;
  67.         end
  68.         if pop(j,1)<popmin1
  69.             pop(j,1)=popmin1;
  70.         end
  71.         % x2  越界限制
  72.         if pop(j,2)>popmax2
  73.             pop(j,2)=popmax2;
  74.         end
  75.         if pop(j,2)<popmin2
  76.             pop(j,2)=popmin2;
  77.         end
  78.         
  79.         % 适应度更新
  80.         fitness(j) = fun(pop(j,:));
  81.         
  82.         % 比较  个体间比较
  83.         if fitness(j)<fitnessgbest(j)
  84.             fitnessgbest(j) = fitness(j);
  85.             gbest(j,:) = pop(j,:);
  86.         end
  87.         if fitness(j)<bestfitness
  88.             bestfitness = fitness(j);
  89.             zbest =  pop(j,:);
  90.         end
  91.         
  92.     end
  93.     fitness_iter(i) = bestfitness;
  94.    
  95. end
  96. disp('最优解')
  97. disp(zbest)
  98. fprintf('\n')

  99. figure('color',[1,1,1])
  100. plot(fitness_iter,'ro-','linewidth',2)

  101. figure('color',[1,1,1])
  102. loglog(fitness_iter,'ro-','linewidth',2)
  103. axis tight
  104. grid on
复制代码





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

使用道具 举报

0

主题

50

帖子

0

金钱

注册会员

Rank: 2

积分
50
发表于 2017-3-23 00:41:16 | 显示全部楼层
人群搜索算法,以前未涉及。
回复 支持 反对

使用道具 举报

0

主题

11

帖子

1

金钱

新手上路

Rank: 1

积分
12
发表于 2017-4-13 20:04:09 | 显示全部楼层
好好好好好好,支持支持
回复 支持 反对

使用道具 举报

0

主题

27

帖子

1

金钱

新手上路

Rank: 1

积分
28
发表于 2017-5-2 18:05:23 | 显示全部楼层
看看看看看看
回复 支持 反对

使用道具 举报

0

主题

4

帖子

12

金钱

新手上路

Rank: 1

积分
16
发表于 2017-5-10 22:07:58 | 显示全部楼层
感谢分享!
回复

使用道具 举报

0

主题

59

帖子

1

金钱

注册会员

Rank: 2

积分
72
发表于 2017-7-27 22:04:10 | 显示全部楼层
非常好的代码,谢谢
回复 支持 反对

使用道具 举报

0

主题

44

帖子

1

金钱

新手上路

Rank: 1

积分
45
发表于 2017-8-12 13:35:18 | 显示全部楼层
人群搜索算法函数优化--视频分享 [修改]
高级模式
回复 支持 反对

使用道具 举报

0

主题

8

帖子

24

金钱

新手上路

Rank: 1

积分
32
发表于 2017-8-22 15:02:54 | 显示全部楼层
我看看,人群搜索算法。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

16

金钱

新手上路

Rank: 1

积分
20
发表于 2017-8-23 10:40:06 | 显示全部楼层
谢谢分享!!!!!!
回复

使用道具 举报

0

主题

2

帖子

13

金钱

新手上路

Rank: 1

积分
15
发表于 2017-9-24 17:42:10 | 显示全部楼层
多谢多谢学习一下
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 22:33 , Processed in 0.246498 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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