资源简介

XinShe Yang教授提出的Cuckoo Search优化算法Matlab原代码,可用于全局优化,并附有算法原理的文章及测试函数,供大家参考学习。

资源截图

代码片段和文件信息

% -----------------------------------------------------------------
% Cuckoo Optimization Algorithm (COA) by Ramin Rajabioun          %
% Programmed by Ramin Rajabioun                                   %
% -----------------------------------------------------------------
% Paper: R. Rajabioun. Cuckoo Optimization Algorithm Applied Soft
% Computing 11 (2011) 5508?518
% ----------------------------------------------------------------%
% This program implements a standard version of Cuckoo            %
% Optimization Algorithm (COA) which minimizes any Cost Function  %
% --------------------------------------------------------------- %
% Email: r.rajabioun@ece.ut.ac.ir                                 %
% Website: www.coasite.info                                       %
% --------------------------------------------------------------- %
%
% To use the code easily prepare your cost function and type its  %
% name in: costFunction = ‘YourCostFunctionName‘ then set number %
% of optimization parameters in “npar“ and set the upper and lower%
% bands of the problem                                            %
% --------------------------------------------------------------- %

clc clear close all

%% Set problem parameters

% select your cost function:
costFunction = ‘rastrigin‘;           % F6 +/-5.12

npar  = 100;          % number of optimization variables
varLo = -5;         % Lower  band of parameter
varHi =  5;         % Higher band of parameter


%% Set COA parameters

numCuckooS = 5;             % number of initial population
minNumberOfEggs = 2;        % minimum number of eggs for each cuckoo
maxNumberOfEggs = 4;        % maximum number of eggs for each cuckoo
maxIter = 100;              % maximum iterations of the Cuckoo Algorithm
knnClusterNum = 1;          % number of clusters that we want to make
motionCoeff = 30;            % Lambda variable in COA paper default=2
accuracy = -inf;           % How much accuracy in answer is needed
maxNumOfCuckoos = 10;      % maximum number of cuckoos that can live at the same time
radiusCoeff = 5;           % Control parameter of egg laying
cuckooPopVariance = 1e-13;   % population variance that cuts the optimization


%% initialize population:

cuckooPop = cell(numCuckooS1);
% initialize egg laying center for each cuckoo
for cuckooNumber = 1:numCuckooS    
    cuckooPop{cuckooNumber}.center = ( varHi-varLo )*rand(1npar) + varLo;
end


%% initialize COA cost minimization plot
figure(1)
hold on
xlabel ‘Cuckoo iteration‘
ylabel ‘Cost Value‘


%% Start Cuckoo Optimization Algorithm

iteration = 0;
maxProfit = -1e20;        % Let initial value be negative number
goalPoint = (varHi - varLo)*rand(1npar) + varLo; % a random goalpoint to start COA
globalBestCuckoo = goalPoint;
globalMaxProfit = maxProfit;
profitVector = [];
while ( (iteration <= maxIter) && (-maxProfit > accuracy) )
    
    iteration = iteration + 1
    
    % initial

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     304076  2014-04-14 19:15  CK\Cuckoo Search and Firefly Algorithm - Overview and Analysis.pdf

     文件      13895  2014-03-27 08:55  CK\cuckooMain.m

     文件       6598  2014-02-12 14:17  CK\cuckoo_search.m

     文件       6832  2014-02-12 14:17  CK\cuckoo_search_new.m

     文件       5768  2014-02-12 14:17  CK\cuckoo_search_spring.m

     文件       1315  2014-02-12 14:07  CK\license.txt

     文件         95  2014-02-12 14:07  CK\rastrigin.m

     目录          0  2014-10-29 22:40  CK

----------- ---------  ---------- -----  ----

               338579                    8


评论

共有 条评论