• 大小: 9KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-06
  • 语言: Matlab
  • 标签: matlab  

资源简介

这是原作者写的关于布谷鸟算法的源代码,包含三种情形:给定干扰的;固定迭代次数的;带约束优化的。分享给正在学习的各位

资源截图

代码片段和文件信息

% -----------------------------------------------------------------
% Cuckoo Search (CS) algorithm by Xin-She Yang and Suash Deb      %
% Programmed by Xin-She Yang at Cambridge University              %
% Programming dates: Nov 2008 to June 2009                        %
% Last revised: Dec  2009   (simplified version for demo only)    %
% -----------------------------------------------------------------
% Papers -- Citation Details:
% 1) X.-S. Yang S. Deb Cuckoo search via Levy flights
% in: Proc. of World Congress on Nature & Biologically Inspired
% Computing (NaBIC 2009) December 2009 India
% IEEE Publications USA  pp. 210-214 (2009).
% http://arxiv.org/PS_cache/arxiv/pdf/1003/1003.1594v1.pdf 
% 2) X.-S. Yang S. Deb Engineering optimization by cuckoo search
% Int. J. Mathematical Modelling and Numerical Optimisation 
% Vol. 1 No. 4 330-343 (2010). 
% http://arxiv.org/PS_cache/arxiv/pdf/1005/1005.2908v2.pdf
% ----------------------------------------------------------------%
% This demo program only implements a standard version of         %
% Cuckoo Search (CS) as the Levy flights and generation of       %
% new solutions may use slightly different methods.               %
% The pseudo code was given sequentially (select a cuckoo etc)   %
% but the implementation here uses Matlab‘s vector capability    %
% which results in neater/better codes and shorter running time.  % 
% This implementation is different and more efficient than the    %
% the demo code provided in the book by 
%    “Yang X. S. Nature-Inspired metaheuristic Algoirthms       % 
%     2nd Edition Luniver Press (2010).                 “       %
% --------------------------------------------------------------- %

% =============================================================== %
% Notes:                                                          %
% Different implementations may lead to slightly different        %
% behavour and/or results but there is nothing wrong with it    %
% as this is the nature of random walks and all metaheuristics.   %
% -----------------------------------------------------------------

function [bestnestfmin]=cuckoo_search(n)
if nargin<1
% Number of nests (or different solutions)
n=25;
end

% Discovery rate of alien eggs/solutions
pa=0.25;

%% Change this if you want to get better results
% Tolerance
Tol=1.0e-5;
%% Simple bounds of the search domain
% Lower bounds
nd=15; 
Lb=-5*ones(1nd); 
% Upper bounds
Ub=5*ones(1nd);

% Random initial solutions
for i=1:n
nest(i:)=Lb+(Ub-Lb).*rand(size(Lb));
end

% Get the current best
fitness=10^10*ones(n1);
[fminbestnestnestfitness]=get_best_nest(nestnestfitness);

N_iter=0;
%% Starting iterations
while (fmin>Tol)

    % Generate new solutions (but keep the current best)
     new_nest=get_cuckoos(nestbestnestLbUb);   
     [fnewbestnestfitness]=get_best_nest(nestnew_nestfitness);
    % Update the counter

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        6598  2013-02-10 22:32  cuckoo_search.m
     文件        6832  2013-02-10 22:32  cuckoo_search_new.m
     文件        5768  2013-02-14 02:19  cuckoo_search_spring.m
     文件        1312  2014-02-12 14:17  license.txt

评论

共有 条评论