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

Hello Mat

 找回密码
 立即注册
查看: 5287|回复: 5

61-免疫布谷鸟算法的函数寻优分析(MATLAB视频)

[复制链接]

1100

主题

1277

帖子

19

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
21551
发表于 2018-7-26 23:11:49 | 显示全部楼层 |阅读模式
免疫布谷鸟算法的函数寻优分析(MATLAB视频)
百度网盘链接:
链接:https://pan.baidu.com/s/1alG9Eqe7YF4ojHKayRl51g
具体链接在halcom.cn论坛,联系人QQ:3283892722
该论坛是一个学习交流平台,我会逐一的和大家分享学习。
欢迎大家录制视频,并提交给我,我来设置视频,你可在论坛进行打赏分享。
视频专用播放器:http://halcom.cn/forum.php?mod=viewthread&tid=258&extra=page%3D1
主程序如下:
  1. % 基于免疫布谷鸟算法的函数寻优
  2. clc,clear,close all
  3. warning off
  4. tic  % 计时开始
  5. %% AIA算法参数
  6. nvar = 2;   % 2个未知数
  7. % 取值范围
  8. popmin = [-1, -1];  % Lb
  9. popmax =[ 1, 1];    % Ub
  10. itermax = 30; % 迭代次数
  11. sizepop = 30; % 种群
  12. Ak = -0.01;   % 聚合适应度常数k
  13. lamda = 0.9;  % 相似度常数[0.9,1]
  14. %% CS算法参数
  15. pa=0.25;        % 发现新巢的概率Discovery rate of alien eggs/solutions
  16. %% 初始化种群
  17. for i=1:sizepop
  18.     pop(i,:) = code(popmin,popmax);    % 实数编码
  19.     fitness(i) = fun(pop(i,:));        % 目标函数值
  20. end
  21. [bestfitness,index] = min(fitness); % 极小值
  22. zbest = pop(index,:);        % 最佳个体
  23. fitnesszbest = bestfitness;  % 全局最优

  24. %% 迭代寻优
  25. for i=1:itermax
  26.     % 选择算子
  27.     pop = select_AIA(sizepop,pop,fitness,popmin,popmax);
  28.     % 布谷鸟的位置更新
  29.     new_nest = get_cuckoos(pop,zbest,popmin,popmax); % Levy flights 粒子位置更新
  30.     [fitnessgbest,bestgbest,pop,fitness]=get_best_nest(pop, fitness, new_nest);
  31.     % 比较适应度值
  32.     if fitnessgbest<fitnesszbest
  33.         fitnesszbest = fitnessgbest;
  34.         zbest = bestgbest;
  35.     end
  36.    
  37.     % 计算相似度
  38.     for j=1:sizepop
  39.         % 交叉算子
  40.         pop1 = cross_AIA2(sizepop,pop,popmin,popmax);
  41.         AN = 1./( 1+norm( zbest-pop1, 2 ) );
  42.         if(AN>lamda)
  43.             Ci = 1;
  44.         else
  45.             Ci = 0;
  46.         end
  47.         fitness1 = fun( pop1 ) .* exp( Ak*Ci );   % 计算适应度值
  48.         if fitness1<fitness(j)
  49.             fitness(j) = fitness1;
  50.             pop(j,:) = pop1;
  51.         end
  52.         
  53.         % 变异
  54.         pop2 = mutation_AIA2(sizepop,pop,popmin,popmax);
  55.         AN = 1./( 1+norm( zbest-pop2, 2 ) );
  56.         if(AN>lamda)
  57.             Ci = 1;
  58.         else
  59.             Ci = 0;
  60.         end
  61.         fitness2 = fun( pop2 ) .* exp( Ak*Ci );   % 计算适应度值
  62.         if fitness2<fitness(j)
  63.             fitness(j) = fitness2;
  64.             pop(j,:) = pop2;
  65.         end
  66.         
  67.         % 全局比较
  68.         if fitness(j)<fitnesszbest
  69.             fitnesszbest = fitness(j);
  70.             zbest = pop(j,:);
  71.         end
  72.         
  73.         % 寻找新的鸟巢--新的解
  74.         new_nest=empty_nests(pop, popmin, popmax, pa) ;
  75.         [fitnessgbest,bestgbest,pop,fitness]=get_best_nest(pop, fitness, new_nest);
  76.         % 比较适应度值
  77.         if fitnessgbest<fitnesszbest
  78.             fitnesszbest = fitnessgbest;
  79.             zbest = bestgbest;
  80.         end
  81.         
  82.     end
  83.    
  84.     fitness_iter(i) = fitnesszbest;
  85. end
  86. toc;  % 结束开始
  87. figure,
  88. plot(fitness_iter,'ro-','linewidth',2)
  89. % loglog(fitness_iter,'ro-','linewidth',2)
  90. grid on
  91. axis tight
  92. disp(['最优解   ', num2str(zbest)] )
复制代码








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

使用道具 举报

0

主题

12

帖子

25

金钱

新手上路

Rank: 1

积分
37
发表于 2018-8-4 21:45:36 | 显示全部楼层
有没有完整的代码?
回复 支持 反对

使用道具 举报

0

主题

33

帖子

1

金钱

新手上路

Rank: 1

积分
37
发表于 2018-9-18 11:19:35 | 显示全部楼层

有没有完整的代码?
回复 支持 反对

使用道具 举报

0

主题

21

帖子

1

金钱

新手上路

Rank: 1

积分
22
发表于 2018-10-15 17:20:53 | 显示全部楼层
代码好像不完整,那个38块的教程是62个算法一起的价格,还是一个算法的价格?
回复 支持 反对

使用道具 举报

0

主题

9

帖子

1

金钱

限制会员

积分
-20
发表于 2020-3-26 17:43:44 | 显示全部楼层
请问完整的代码在哪里呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

Python|Opencv|MATLAB|Halcom.cn

GMT+8, 2022-8-10 14:09 , Processed in 0.176151 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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