【优化求解】磷虾群算法(Krill Herd Algorithm,KHA)

由来:根据磷虾群觅食的特性,由Gandomi等在2012年首次提出[1]。在运动过程中,磷虾群不断地聚集以增大种群密度,并减少被捕食的几率,同时探索生存区域,尽可能缩短它们与食物的距离,最终使得种群获得食物。

算法描述:

1、磷虾个体的速度(位置X的微分)更新公式:

解释:磷虾群位置的变化受到三种影响:邻居磷虾的诱导,食物位置的影响和扰动

诱导运动N

诱导运动指的是,每一个磷虾个体会受到其一定范围内的邻居磷虾个体和最佳位置的个体的影响。其形式化表达为:

【优化求解】磷虾群算法(Krill Herd Algorithm,KHA)_第1张图片

觅食运动F

类似于诱导运动,觅食运动包含两个部分,第一部分是食物位置,第二部分是先前关于食物位置的经验。表达形式是:

【优化求解】磷虾群算法(Krill Herd Algorithm,KHA)_第2张图片

【优化求解】磷虾群算法(Krill Herd Algorithm,KHA)_第3张图片

【优化求解】磷虾群算法(Krill Herd Algorithm,KHA)_第4张图片

4、最后给出算法步骤和流程图

I.    Data Structures: 定义边界,确定算法参数(种群规模Np,最大迭代次数t^max,最大诱导速度N^max,最大觅食速度V_f,最大随机扩散速度D^max,诱导惯性权重w_n,觅食惯性权重w_f和步长缩放因子C_t)等.
II.   Initialization: 在搜索空间里随机产生初始种群.
III.  Fitness evaluation: 根据磷虾的位置对每个磷虾个体进行评估(适应值函数计算/优化目标函数计算).
IV.   Motion calculation:速度分量计算,计算运动速度和位置
        * Motion induced by the presence of other individuals
        * Foraging motion
        * Physical diffusion
V.    Implement the genetic operators:多只采用交叉操作
VI.   Updating: 在搜索空间内更新个体位置.
VII.  Repeating:t=t+1, 返回步骤 III 直到满足停止条件(最大迭代次数t^max).
VIII. End

【优化求解】磷虾群算法(Krill Herd Algorithm,KHA)_第5张图片

参考资料:

论文:

  1. Krill herd_ a new bio-inspired optimization algorithm
  2. An improved krill herd algorithm: Krill herd with linear decresing step

 

 

编辑于 2020-04-01

% Krill Herd Algorithm V 1.1

% Main paper:
% Gandomi A.H., Alavi A.H., Krill Herd: A New Bio-Inspired Optimization Algorithm.
% Communications in Nonlinear Science and Numerical Simulation, 

function KH
clc; close all; clear all
format long

%% Initial Parameter Setting
NR = 10;                                  % Number if Runs
NK = 25; 						     	  % Number if Krills
MI = 200; 		                          % Maximum Iteration
C_flag = 1;                               % Crossover flag [Yes=1]

% Bounds (Normalize search space in case of highly imbalanced search space)
UB = 10*ones(1,10);
LB = -10*ones(1,10);

NP = length(LB); % Number if Parameter(s)
Dt = mean(abs(UB-LB))/2; % Scale Factor

F = zeros(NP,NK);D = zeros(1,NK);N = zeros(NP,NK); %R = zeros(NP,NK);
Vf = 0.02; Dmax = 0.005; Nmax = 0.01; Sr = 0;
%% Optimization & Simulation
for nr = 1:NR
    %Initial Krills positions
    for z1 = 1:NP
        X(z1,:) = LB(z1) + (UB(z1) - LB(z1)).*rand(1,NK);
    end
    
    for z2 = 1:NK
        K(z2)=cost(X(:,z2));
    end
    
    Kib=K;
    Xib=X;
    [Kgb(1,nr), A] = min(K);
    Xgb(:,1,nr) = X(:,A);
    
    for j = 1:MI 
        % Virtual Food
        for ll = 1:NP;
            Sf(ll) = (sum(X(ll,:)./K));
        end
        Xf(:,j) = Sf./(sum(1./K)); %Food Location       
        Xf(:,j) =findlimits(Xf(:,j)',LB,UB,Xgb(:,j,nr)');% Bounds Checking
        Kf(j) = cost(Xf(:,j));
        if 2<=j
            if Kf(j-1)

【优化求解】磷虾群算法(Krill Herd Algorithm,KHA)_第6张图片

完整代码或者代写添加QQ1575304183

往期回顾>>>>>>

【优化求解】混沌粒子群matlab源码

【优化求解】土狼算法matlab源码

【优化求解】基于混沌反向学习改进灰狼算法matlab源码

【优化求解】粒子群优化灰狼算法matlab源码

【优化求解】改进灰狼算法求解重油热解模型matlab源码

【优化求解】多目标灰狼优化算法MOGWOmatlab源码

【优化求解】蜉蝣算法matlab源码

【优化求解】平衡优化器算法matlab源码

【优化求解】麻雀算法matlab源码

【优化求解】探路者优化算法matlab源码

【优化求解】改进的萤火虫算法matlab源码

你可能感兴趣的:(matlab,优化求解,磷虾群算法)