本文提出了一种新颖的基于群体智能的元启发式优化算法——壮丽细尾鹩优化算法(SFOA),SFOA从精湛的神仙莺的生活习性中汲取灵感。融合了精湛的神仙莺群体中幼鸟的发育、繁殖后鸟类喂养幼鸟的行为以及它们躲避捕食者的策略。通过模拟幼鸟生长、繁殖和摄食阶段对应的精湛的三种自然行为以及躲避天敌,建立了数学模型。该算法结合了壮丽细尾鹩莺群体中幼鸟的发育,繁殖后喂养幼鸟的行为,以及它们躲避捕食者的策略,于2025年2月最新发表在JCR 1区,中科院3区 SCI计算机类期刊 Cluster Computing。
3.2 初始化
所提出的 SFOA 方法是一种基于种群的技术,它通过模拟评估时间的变化来模拟其在空间中的搜索能力,以有效地解决现实环境中的优化问题。每个 SFOA 成员将根据搜索空间中问题文章确定问题决策变量的值。每个 SFOA 成员是问题的候选解决方案,并使用向量进行数学建模。向量的每个元素对应于决策变量,所有 SFOA 成员共同构成整个算法 (公式 (1))。同时,每个 SFOA 成员将在算法开始时使用公式 (2) 初始化为初始位置。
X = ( u b − l b ) × r a n d ( 0 , 1 ) + l b X = (ub - lb) \times rand(0, 1) + lb X=(ub−lb)×rand(0,1)+lb
其中 X 是 SFOA 全局矩阵, X i X_i Xi 是第 i 个 SFOA 成员(候选解), x i , d x_{i,d} xi,d 是搜索空间中 SFOA 的 D 维(决策变量),N 是全局成员的数量,rand 是区间 [0,1] 中的随机数,ub 和 lb 分别表示决策变量的上界和下界。
3.3 SFOA 的数学模型
在所提出的 SFOA 方法的设计中,问题求解空间中种群成员的位置基于壮丽细尾鹩莺幼鸟和成鸟之间自然行为的模拟进行更新。在这个自然过程中,幼鸟首先进入生长阶段,然后使用喂食代码孵化幼鸟至成熟,或使用其防御机制来吓跑捕食者。因此,在评估中,SFOA 种群成员的位置将在三个阶段进行更新:(i) 基于幼鸟生长的广泛探索,(ii) 基于喂食代码繁殖的探索,以及 (iii) 基于模拟捕食者防御行为的探索。
3.3.1 幼鸟生长阶段
在 SFOA 的生长阶段中,种群成员的位置根据需要大量经验的幼鸟生长动态模拟进行更新。由于种群中幼鸟的数量很大,这对种群的生存不利,因此通过不断学习大量经验并不断更新幼鸟快速生长时的位置来模拟 SFOA 成员在问题求解空间中的位置。学习经验是一系列过程运动,模拟导致 SFOA 成员位置的广泛变化,从而增加全局搜索算法的探索能力。SFOA 将通过公式 (3) 确定每个成员的位置,以获得更好的目标函数。
X n e w i , j = X i , j t + ( l b + ( u b − l b ) × r a n d ) , r > 0.5 X_{new_{i,j}} = X_{i,j}^t + (lb + (ub - lb) \times rand), \quad r > 0.5 Xnewi,j=Xi,jt+(lb+(ub−lb)×rand),r>0.5
其中 X n e w i , j X_{new_{i,j}} Xnewi,j 表示种群更新后 j 维中壮丽细尾鹩莺的位置, X i , j X_{i,j} Xi,j 表示迭代后 j 维中壮丽细尾鹩莺的位置,rand 是 [0,1] 之间的随机数。
3.3.2 繁殖和喂养阶段
在第二阶段中,种群成员的位置通过模拟繁殖和喂养期间壮丽细尾鹩莺的教学机制进行更新。当风险阈值较低时,雌鸟将进入繁殖阶段,并使用独特的父性测试孵化卵以防止外来物种入侵。危险阈值的计算方法如公式 (5) 所示。
s = r 1 ∗ 20 + r 2 ∗ 20 s = r_1 * 20 + r_2 * 20 s=r1∗20+r2∗20
其中, r 1 r_1 r1 和 r 2 r_2 r2 都是正态分布的随机数。
由于 SFOA 的合作繁殖特性,卵全年由多只鸟孵化以实现识别教学。在这个周期 (m) 中,每个 SFOA 都不是静止的,而是轮流进行喂养和教学。模拟这种现象导致 SFOA 成员位置的微小变化,增加了算法对局部搜索的探索能力。同时,定义一个因子 p 表示成熟度,教学周期越接近成熟,每个 SFOA 成员的活动范围越大。基于教学繁殖期间位置变化的建模,每个 SFOA 成员的新位置通过公式 (5) 计算。然后,如果这个新位置提高了目标函数的值,则替换相应的成员。
X n e w i , j = X G + ( X b X i , j t ) × p , r < 0.5 and s < 20 X_{new_{i,j}} = X_G + (X_b X_{i,j}^t) \times p, \quad r < 0.5 \quad \text{and} \quad s < 20 Xnewi,j=XG+(XbXi,jt)×p,r<0.5ands<20
X G = X b × C X_G = X_b \times C XG=Xb×C
其中 X b X_b Xb 表示当前最优位置,C 是值为 0.8 的常数。
p = sin ( ( u b − l b ) × 2 + ( u b − l b ) × m ) p = \sin((ub - lb) \times 2 + (ub - lb) \times m) p=sin((ub−lb)×2+(ub−lb)×m)
m = ( F E s M a x F E s ) × 2 m = \left( \frac{FEs}{MaxFEs} \right) \times 2 m=(MaxFEsFEs)×2
其中,FEs 表示当前评估次数,MaxFEs 表示评估的最大次数。
3.3.3 避免自然敌人阶段
在 SFOA 的捕食者回避阶段中,种群成员的位置根据壮丽细尾鹩莺对捕食者攻击的防御机制进行更新。当壮丽细尾鹩莺被捕食者发现时,它会快速奔跑,不断拍打翅膀以扰乱捕食者的视线。同时,会发出警告声以提醒其他 SFOA 成员。在这种情况下,被捕食者盯上的 SFOA 成员会迅速逃脱,导致成员位置发生轻微变化。其他成员则会在空中盘旋以避免捕食者,导致位置发生较大变化。SFOA 成员的这两种不同表现力增强了算法在问题求解空间中的搜索范围,并提高了利用局部搜索的能力,它们的运动模式由数学公式 (9) 描述。
X n e w i , j = X b + X i , j × l × k , r < 0.5 and s > 20 X_{new_{i,j}} = X_b + X_{i,j} \times l \times k, \quad r < 0.5 \quad \text{and} \quad s > 20 Xnewi,j=Xb+Xi,j×l×k,r<0.5ands>20
其中l是莱维飞行随机步长,控制算法跳转到局部最优 k 是自适应飞行平衡因子,公式如公式 (10) 所示,该公式调节了鸟群与l的飞行距离。同时, X b X_b Xb 被添加以控制鸟群的运动方向,防止鸟群移动到不良位置,导致评估次数增加。
k = 0.2 × sin ( π 2 − w ) k = 0.2 \times \sin \left( \frac{\pi}{2} - w \right) k=0.2×sin(2π−w)
w = π 2 × F E s M a x F E s w = \frac{\pi}{2} \times \frac{FEs}{MaxFEs} w=2π×MaxFEsFEs
其中 w 是呼叫频率值,在躲避自然敌人的飞行过程中起到早期预警的作用。
3.4 SFOA 的实现
种群的初始化:定义了种群 N、维度 D、最大评估次数 FEs、上界 ub 和下界 lb。可以通过公式 (2) 获得搜索空间中种群 X 的初始化。
幼鸟生长阶段:在生长阶段,幼鸟将继续改变位置以学习大量经验以实现快速生长。因此,基于幼鸟生长建立模型使 SFOA 能够在有限的问题求解空间内进行广泛的探索。SFOA 位置变化将通过公式 (3) 计算。
繁殖和喂养阶段:当环境更安全时,SFOA 在繁殖期间进行教育,当几只成员轮流照顾卵直到它们孵化。这种行为导致 SFOA 在巢附近小范围内移动,并且每个 SFOA 成员都有机会外出寻找食物和照顾孩子。基于此,模型可以建立以使 SFOA 在一定局部范围内进行深入探索。繁殖和喂养阶段的计算公式如公式 (5) 所示。
避免自然敌人阶段:面对危险时,SFOA 会抖动羽毛以迷惑捕食者并提醒其他 SFOA 成员。基于 SFOA 避免自然敌人的特性建立模型,极大地增加了 SFOA 在空间探索中的随机性。SFOA 的计算公式如公式 (9) 所示。
X n e w i , j = { X i , j t + ( l b + ( u b − l b ) × r a n d ) , r > 0.5 X b × C + ( X b − X i , j t ) × p , r < 0.5 and s > 20 X b + X i , j × l × k , r < 0.5 and s < 20 X_{new_{i,j}} = \begin{cases} X_{i,j}^t + (lb + (ub - lb) \times rand), & r > 0.5 \\ X_b \times C + (X_b - X_{i,j}^t) \times p, & r < 0.5 \text{ and } s > 20 \\ X_b + X_{i,j} \times l \times k, & r < 0.5 \text{ and } s < 20 \end{cases} Xnewi,j=⎩ ⎨ ⎧Xi,jt+(lb+(ub−lb)×rand),Xb×C+(Xb−Xi,jt)×p,Xb+Xi,j×l×k,r>0.5r<0.5 and s>20r<0.5 and s<20
在本文中,提出了一种新的群体智能优化算法 SFOA,并建立了基于壮丽细尾鹩莺的生长、繁殖、喂养和捕食者回避行为的数学模型(图 3)。与其他群体智能算法相比,SFOA 引用了壮丽细尾鹩莺独特的教学技术和合作繁殖特征,这可以表明该算法具有一定的新颖性。在下一节中,我们将比较 SFOA 性能。
function[best_fitness,best_position,curve]=SFOA(N,MaxFEs,lb,ub,dim,fobj)curve=zeros(1,MaxFEs);X=initialization(N,dim,ub,lb);Xnew=zeros(N,dim);best_fitness = inf;best_position = zeros(1,dim);fitness=zeros(1,N);FEs=1;LB=ones(1,dim).*(lb); % Lower limit for variablesUB=ones(1,dim).*(ub); % Upper limit for variablesfor i=1:Nfitness(i)=fobj(X(i,:));if fitness(i)<best_fitnessbest_fitness=fitness(i);best_position=X(i,:);endFEs=FEs+1;curve(FEs)=best_fitness;endwhile(FEs<=MaxFEs)C=0.8;r1=rand;r2=rand;w=(pi/2)*(FEs/MaxFEs);k=0.2*sin(pi/2-w);l=0.5*levy(N,dim,1.5);y=randi(N);c1=rand;T=0.5;m=FEs/MaxFEs*2;p = sin(UB-LB)*2+(UB-LB)*m;Xb=best_position;XG=best_position*C;for i=1:Nif T<c1Xnew(i,:)=X(i,:)+(LB+(UB-LB).*rand(1,dim));elses=r1*20+r2*20;if s>20Xnew(i,:)=Xb+X(i,:).*l(y,:)*k;elseXnew(i,:)=XG+(Xb-X(i,:)).*(p);endendendX=Xnew;for i=1:NXnew(i,:) = max( Xnew(i,:),lb);Xnew(i,:) = min( Xnew(i,:),ub);fitness(i)=fobj(Xnew(i,:));if fitness(i)<best_fitnessbest_fitness=fitness(i);best_position=Xnew(i,:);endFEs=FEs+1;curve(FEs)=best_fitness;if FEs>=MaxFEsbreak;endendif FEs>=MaxFEsbreak;end end
endfunction [z] = levy(n,m,beta)num = gamma(1+beta)*sin(pi*beta/2); % used for Numerator den = gamma((1+beta)/2)*beta*2^((beta-1)/2); % used for Denominatorsigma_u = (num/den)^(1/beta);% Standard deviationu = random('Normal',0,sigma_u,n,m); v = random('Normal',0,1,n,m);z =u./(abs(v).^(1/beta));end