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

Hello Mat

 找回密码
 立即注册
查看: 63422|回复: 93

47布谷鸟算法的函数寻优分析

  [复制链接]

1288

主题

1514

帖子

90

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22589
发表于 2017-7-30 12:15:57 | 显示全部楼层 |阅读模式
47布谷鸟算法的函数寻优分析
百度网盘链接:http://pan.baidu.com/s/1c2rip1I

具体链接在halcom.cn论坛,联系人QQ:3283892722
该论坛是一个学习交流平台,我会逐一的和大家分享学习。
欢迎大家录制视频,你可在论坛进行打赏分享。
视频专用播放器:http://halcom.cn/forum.php?mod=viewthread&tid=258&extra=page%3D1

具体的代码如下
  1. % 布谷鸟函数优化分析
  2. % cuckoo_search -- CS算法
  3. %% 清空环境
  4. clc % 清屏
  5. clear all; % 删除workplace变量
  6. close all; % 关掉显示图形窗口
  7. tic
  8. %% 参数初始化
  9. sizepop=200;    % 种群规模
  10. pa=0.25;        % 发现新巢的概率Discovery rate of alien eggs/solutions
  11. maxiter = 100;  % 最大迭代次数
  12. nvar = 2;       % 未知量个数
  13. popmin = -5*ones(1,nvar);  % 种群下边界值
  14. popmax = 5*ones(1,nvar);   % 种群上边界值
  15. %% 适应度函数
  16. fun = @Ackley_Fun;   % 目标函数--越小越好
  17. %% 产生初始粒子
  18. for i=1:sizepop
  19.     nest(i,:)=popmin+(popmax-popmin).*rand(1,nvar);  % 个体
  20.     fitness(i)=fun( nest(i,:) );    % 适应度
  21. end
  22. % 找当前最好的个体
  23. [bestfitness,bestindex]=min(fitness);  % 最优适应度值
  24. bestnest = nest(bestindex,:);   % 全局最佳种群
  25. %% 寻优
  26. for i=1:maxiter
  27.     % 粒子位置更新
  28.     new_nest = get_cuckoos(nest,bestnest,popmin,popmax); % Levy flights 粒子位置更新
  29.     [fitnessgbest,bestgbest,nest,fitness]=get_best_nest(nest, fitness, fun, new_nest);
  30.     % 寻找全局最优解
  31.     if fitnessgbest<bestfitness
  32.         bestnest =bestgbest;
  33.         bestfitness = fitnessgbest;
  34.     end
  35.    
  36.     % 寻找新的鸟巢--新的解
  37.     new_nest=empty_nests(nest, popmin, popmax, pa) ;
  38.     [fitnessgbest,bestgbest,nest,fitness]=get_best_nest(nest, fitness, fun, new_nest);
  39.     % 寻找全局最优解
  40.     if fitnessgbest<bestfitness
  41.         bestnest =bestgbest;
  42.         bestfitness = fitnessgbest;
  43.     end
  44.    
  45.     CS_fun(i)=bestfitness;
  46. end
  47. toc
  48. %% 结果分析
  49. plot(CS_fun,'Linewidth',2)
  50. title(['适应度曲线  ' '终止代数=' num2str(maxiter)]);
  51. grid on
  52. xlabel('进化代数');ylabel('适应度');
  53. % 结果输出
  54. disp('全局最优解:')
  55. bestnest     % 最佳个体值
复制代码
子函数如下:
游客,如果您要查看本帖隐藏内容请回复


分享:
【1】布谷鸟的改进算法(在桥梁悬臂梁结构参数化寻优分析应用): http://pan.baidu.com/s/1qY2Y3dq



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

使用道具 举报

0

主题

59

帖子

1

金钱

注册会员

Rank: 2

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

使用道具 举报

0

主题

44

帖子

1

金钱

新手上路

Rank: 1

积分
45
发表于 2017-8-12 15:17:30 | 显示全部楼层
布谷鸟算法的函数寻优分析
回复 支持 反对

使用道具 举报

0

主题

33

帖子

1

金钱

新手上路

Rank: 1

积分
37
发表于 2017-9-18 16:34:53 | 显示全部楼层

非常好的代码,谢谢
回复 支持 反对

使用道具 举报

0

主题

50

帖子

0

金钱

注册会员

Rank: 2

积分
50
发表于 2017-10-29 22:50:22 | 显示全部楼层
这个算法需要学习一下。
回复 支持 反对

使用道具 举报

0

主题

41

帖子

1

金钱

新手上路

Rank: 1

积分
42
发表于 2017-12-1 11:29:20 | 显示全部楼层
学习了,谢谢楼主分享~
回复 支持 反对

使用道具 举报

0

主题

42

帖子

1

金钱

新手上路

Rank: 1

积分
43
发表于 2017-12-21 10:17:42 | 显示全部楼层
非常好的代码,谢谢
回复 支持 反对

使用道具 举报

0

主题

16

帖子

1

金钱

新手上路

Rank: 1

积分
17
发表于 2017-12-25 16:34:03 | 显示全部楼层
学习学习,谢谢分享!
回复 支持 反对

使用道具 举报

0

主题

3

帖子

11

金钱

新手上路

Rank: 1

积分
14
发表于 2017-12-28 09:50:06 | 显示全部楼层
布谷鸟算法不错,想学习一下
回复 支持 反对

使用道具 举报

0

主题

3

帖子

11

金钱

新手上路

Rank: 1

积分
14
发表于 2017-12-28 09:51:42 | 显示全部楼层
布谷鸟算法很不错,需要仔细认真的学习一下,能应用到很多地方。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 21:34 , Processed in 0.233919 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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