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

资源简介

2018年IEEE进化计算大会(CEC)提出的全局优化问题的新的启发式算法。 土狼优化算法(COA)是由Juliano Pierezan和Leandro dos Santos Coelho(2018)提出的用于全局优化的自然启发的元启发式算法。

资源截图

代码片段和文件信息

function [GlobalParamsGlobalMin] = COA(FOBJ lu nfevalMAXn_packsn_coy)
%% ------------------------------------------------------------------------
% Coyote Optimization Algorithm (COA) for Global Optimization.
% A nature-inspired metaheuristic proposed by Juliano Pierezan and 
% Leandro dos Santos Coelho (2018).
%
% Pierezan J. and Coelho L. S. “Coyote Optimization Algorithm: A new 
% metaheuristic for global optimization problems“ Proceedings of the IEEE 
% Congress on Evolutionary Computation (CEC) Rio de Janeiro Brazil July 
% 2018 pages 2633-2640.
%
% Example:
% FOBJ        = @(x) sum(x.^2);         % Optimization problem
% D           = 30;                     % Problem dimension
% lu          = [zeros(1D);ones(1D)]; % Seach space
% nfevalMAX   = 10000*D;                % Stopping criteria
% Np          = 10;                     % Number of packs
% Nc          = 10;                     % Number of coyotes
% [GlobalParamsGlobalMin] = COA_vPub(FOBJ lu nfevalMAXNpNc);
%
% Federal University of Parana (UFPR) Curitiba Parana Brazil.
% juliano.pierezan@ufpr.br
%% ------------------------------------------------------------------------

%% Optimization problem variables
D           = size(lu2);
VarMin      = lu(1:);
VarMax      = lu(2:);

%% Algorithm parameters
if nargin < 5 n_coy = 5; 
elseif n_coy < 3 error(‘At least 3 coyotes per pack!‘); end
if nargin < 4 n_packs = 20; end

% Probability of leaving a pack
p_leave     = 0.005*n_coy^2;
Ps          = 1/D;

%% Packs initialization (Eq. 2)
pop_total   = n_packs*n_coy;
costs       = zeros(pop_total1);
coyotes     = repmat(VarMinpop_total1) + rand(pop_totalD).*(repmat(VarMaxpop_total1) - repmat(VarMinpop_total1));
ages        = zeros(pop_total1);
packs       = reshape(randperm(pop_total)n_packs[]);
coypack     = repmat(n_coyn_packs1);

%% Evaluate coyotes adaptation (Eq. 3)
for c=1:pop_total
    costs(c1) = FOBJ(coyotes(c:));
end
nfeval = pop_total;

%% Output variables
[GlobalMinibest]   = min(costs);
GlobalParams        = coyotes(ibest:); 
    
%% Main loop
year=0;
while nfeval    
    %% Update the years counter
    year = year + 1;

    %% Execute the operations inside each pack
    for p=1:n_packs
        % Get the coyotes that belong to each pack
        coyotes_aux = coyotes(packs(p:):);
        costs_aux   = costs(packs(p:):);
        ages_aux    = ages(packs(p:)1);
        n_coy_aux   = coypack(p1);
        
        % Detect alphas according to the costs (Eq. 5)
        [costs_auxinds] = sort(costs_aux‘ascend‘);
        coyotes_aux      = coyotes_aux(inds:);
        ages_aux         = ages_aux(inds:);
        c_alpha          = coyotes_aux(1:);
        
        % Compute the social tendency of the pack (Eq. 6)
        tendency         = median(coyotes_aux1);
        
        % Update coyotes‘ social condition
        new_coyo

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        6392  2018-10-06 11:51  COA.m
     文件         161  2018-10-06 11:51  Rastrigin.m
     文件         645  2018-10-06 11:51  RunCOA.m
     文件        1470  2018-10-06 11:51  license.txt

评论

共有 条评论