2025年KBS顶刊新算法-向光优化算法Phototropic growth algorithm-附Matlab免费代码
文章提出了一种称为向光生长算法(PGA)的新型优化算法,其灵感来自植物细胞响应阳光的生长模式。所提出的算法已经在两个基准测试函数套件CEC 2017和CEC 2020上进行了评估,并根据获得的解决方案的质量与其他已建立的metaheuristic-optimization算法进行了比较。PGA的有效性通过在六个具有约束的具有挑战性的工程设计问题上对其进行测试得到进一步证明,展示了其在解决未知搜索空间的现实世界问题时的稳健性。仿真结果表明,PGA通过始终如一地生成卓越的解决方案来优于其他竞争算法,并展示了使用受自然启发的方法解决复杂优化任务的强大潜力。于2025年7月最新发表在计算机领域一区期刊Knowledge-Based Systems上。
1. 光趋向生长算法的数学表述
在本节中,我们阐明光趋向生长算法(Phototropic Growth Algorithm,PGA)的数学表述。
1.1. 初始化
所提出的算法从种群的初始化开始,该种群通常称为搜索代理,用集合 XXX 表示。在该算法的背景下,光照与细胞行为之间的相互作用具有至关重要的意义。因此,整个种群集合被划分为两个不同的区域:XLX_LXL 表示有利于暴露在光照下的细胞,而 XSX_SXS 表示位于阴影区域的细胞。
处于光照区的细胞数量 NLN_LNL 由一个派生的随机值决定,该随机值本质上根植于区间 [C1,C2][C_1, C_2][C1,C2] 内。此处,常数 C1C_1C1 和 C2C_2C2 为总细胞数 NNN 中 NLN_LNL 所允许的比例。该随机值的导出通过表达式 (C1+(C2−C1)×r1)(C_1 + (C_2 - C_1) \times r1)(C1+(C2−C1)×r1)。其中 r1r1r1 是 0 到 1 之间均匀分布的随机变量。该结构确保所得分数审慎地限制在 C1C_1C1 和 C2C_2C2 规定的界限内。
为了将该分数转换为具体的细胞数量,它与总种群大小 NNN 相乘。然而,由于 NLN_LNL 表示单个细胞的计数,这可能会产生小数,因此采用下取整函数将其舍入为最接近的整数。计算 NLN_LNL 的结果公式如下所示:
NL=⌊(C1+(C2−C1)×r1)×N⌋(1) N_L = \lfloor (C_1 + (C_2 - C_1) \times r1) \times N \rfloor \tag{1} NL=⌊(C1+(C2−C1)×r1)×N⌋(1)
由此确定 NLN_LNL 后,算法将解集 XXX 的前 NLN_LNL 个成员指定为处于光照下的细胞(用 XLX_LXL 表示)。从数学上讲,该子集表示为:
XL=[x1,x2,…,xNL],where xi∈X, 1≤i≤NL(2) X_L = [x_1, x_2, \dots, x_{N_L}], \quad \text{where } x_i \in X,\;1 \le i \le N_L \tag{2} XL=[x1,x2,…,xNL],where xi∈X,1≤i≤NL(2)
阴影区的细胞数量 NSN_SNS 等于总细胞数 NNN 与光照区细胞数 NLN_LNL 之差,可表示为:
NS=N−NL(3) N_S = N - N_L \tag{3} NS=N−NL(3)
阴影区细胞的集合 XSX_SXS 是解集 XXX 中的最后 NSN_SNS 个细胞,可定义为:
XS=[xNL+1,xNL+2,…,xN],where xi∈X for NL+1≤i≤N(4) X_S = [x_{N_L+1}, x_{N_L+2}, \dots, x_N], \quad \text{where } x_i \in X \text{ for } N_L+1 \le i \le N \tag{4} XS=[xNL+1,xNL+2,…,xN],where xi∈X for NL+1≤i≤N(4)
1.2. 阶段1:有丝分裂
为了在数学上模拟有丝分裂过程,种群中的每个细胞分裂成两个子细胞,将一个母细胞分裂为两个子细胞的现象称为有丝分裂[54]。生成的子细胞通过包含变异算子或生长素重分配算子的过程发生变化。光照区和阴影区细胞的有丝分裂建模如下:
1.2.1. 光照区细胞的有丝分裂
变异算子:作用于第一次有丝分裂复制。变异算子是在子细胞生成过程中产生多样性的关键组成部分。该算子应用于第一次有丝分裂复制,并相对于从种群集合中随机选择的细胞进行计算。通过采用随机细胞选择方法,该方法准确模拟了由于辐射或化学物质等各种环境因素暴露导致的突变的随机性。该方法确保变异算子具有广泛的可能结果,从而生成多样化的解集。
计算所选随机细胞与母细胞之间的差异,以确定突变引起的偏差。此外,为了引导子细胞朝向最佳光照细胞,还将最佳光照细胞与母细胞之间的差异包含在变异算子中。然后,该偏差由两个因子缩放:随机变异因子 βββ 和生长限制因子 ααα。随机变异因子 βββ 是一个离散随机变量,其可能取值为 {−1,1}\{-1,1\}{−1,1}。该设计具有两个主要优点。首先,它在突变过程中提供了方向控制,确保可以进行正向和负向的改变。其次,通过允许在这两个不同方向的突变,算法能够更有效地探索整个搜索空间,降低被局部最优限制的可能性,并确保对潜在解进行充分考察。生长限制因子 ααα 是用于调节当前迭代增长的关键参数。该因子受到指数衰减的影响,并用于限制算法在每次迭代中的增长。
在许多生物系统中,增长和适应率在初期通常表现出强劲的特点,但会随着时间的推移而减弱[55]。例如,细胞生物学表明,细胞在早期阶段主要经历快速的生长和分裂。然而,随着细胞接近成熟,这种迅猛的速度会减缓,这一现象通常归因于资源限制、环境压力和细胞固有的老化过程等因素。从中获得启示,算法将 ααα 作为一个指数衰减函数,以模拟这一自然进程。这一设计确保搜索代理(类似于此处的细胞)在初始阶段进行积极的探索,但随着成熟,采用更审慎和保守的方法。这种策略基于受控探索的原则。尽管算法的早期迭代以广泛搜索为特征,但后续阶段变得越来越谨慎,进行渐进的精细调整。这种平衡确保了广泛的初始探索,随后对有前景的区域进行细致聚焦,从而促进最终收敛到最优解。
α=e−tα = e^{-t}α=e−t
(5) \tag{5} (5)
该方程源自指数衰减函数的标准形式,其一般表示为:
f(t)=A⋅e−kt(6) f(t) = A \cdot e^{-kt} \tag{6} f(t)=A⋅e−kt(6)
其中 AAA 是初始值,kkk 是衰减常数,ttt 是时间或迭代数(在我们的背景中)。在特定情况下,初始值 AAA 被简化为1,衰减常数 kkk 被简化为1,ttt 被视为迭代次数的倒数。由此,表达式被简化为公式(5)所示的形式。
在生物系统中,例如细胞过程,有丝分裂是指单个母细胞通过复制产生两个基因上相同的子细胞的过程。该过程具有不同的确定性特征,受到一系列因素的影响,包括环境影响和内在遗传信号。环境因素可以引入变异,导致产生具适应性的遗传突变。这些突变赋予细胞适应环境变化的能力。另一方面,突变的影响因个体而异。如图4所示,细胞通过两种子代进行分裂。一个子代受到遗传变异算子的影响,另一个则通过生长素重分配算子调整位置,响应光照刺激的方向性。随机选择突变方向与对最优光细胞的方向相结合,使得子细胞更有可能定位在更优的解区域。
该方法的核心在于自然算法的策略:通过对遗传图案的建模及其变异,模拟出自然界的生存机制。这种机制包括个体对环境变化的适应力,从而提高其生存和进化能力。通过引入两个子细胞模型,算法使用等式(7)和(8)模拟此过程。
为了更直观地理解,请考虑以下有丝分裂的生物表示法:
母细胞 Cell1 →mitosis\xrightarrow{\text{mitosis}}mitosis 子细胞 Cell1 + 子细胞 Cell2
(7) \tag{7} (7)
在算法术语中,这转换为:
Xt(i)→Xt+1(i)+变异项(8) X_{t}(i) \rightarrow X_{t+1}(i) + \text{变异项} \tag{8} Xt(i)→Xt+1(i)+变异项(8)
该变异项是引入多样性的关键,通过下式定义:
Xt+1(i)=Xt(i)+αβi[Xrand−Xt(i)]+αβi[Xbest−Xt(i)](9) X_{t+1}(i) = X_{t}(i) + αβ_{i} \left[ X_{\text{rand}} - X_{t}(i) \right] + αβ_{i} \left[ X_{\text{best}} - X_{t}(i) \right] \tag{9} Xt+1(i)=Xt(i)+αβi[Xrand−Xt(i)]+αβi[Xbest−Xt(i)](9)
该等式在多方面反映自然系统的象征性表现,尤其是ααα和βiβ_{i}βi。虽然它源自遗传突变机制,但仍保持强大的适应能力,可在多样的边界中找到全局最优解。
变异算子 Xt+1X_{t+1}Xt+1 对于光照区细胞来说至关重要,它体现了提出的优化算法的探索潜力。通过将母细胞与随机细胞、最佳细胞的偏差结合在一起,加权合成,提供了多样性来源,同时保持对最优区域的收敛能力。
生长素重分配算子:作用于第二次有丝分裂
生长素重分配算子是一种启发式模型,灵感来源于植物细胞对光刺激的响应。在植物体内,生长素是一类植物激素,在光合作用中起到关键作用,引导植物朝向光源弯曲。这种光趋性(phototropism)通过在远离光源一侧积累生长素,从而促使该侧细胞伸长,使植物向光侧弯曲生长。
为了数学建模这一行为,该算子模拟光引导下的生长素转移。通过等式(10),算子定义了光照区最优细胞 XbestX_{\text{best}}Xbest 与当前细胞 Xt(i)X_{t}(i)Xt(i) 的位移差异 ΔX\Delta XΔX,并通过生长素水平因子 r1r_{1}r1 进行缩放。
ΔX=Xbest−Xt(i)(10) \Delta X = X_{\text{best}} - X_{t}(i) \tag{10} ΔX=Xbest−Xt(i)(10)
不过,这种差异 ΔX\Delta XΔX 需要通过因子调整,以捕捉生长素在时间维度上对生物过程的影响。该过程也受到随机扰动因素影响,表达如下:
Xt+1(i)=σ1×ΔX(11) X_{t+1}(i) = σ_{1} \times \Delta X \tag{11} Xt+1(i)=σ1×ΔX(11)
将ΔX\Delta XΔX代入公式(10)后,等式变为:
Xt+1(i)=σ1[Xbest−Xt(i)](12) X_{t+1}(i) = σ_{1} \left[ X_{\text{best}} - X_{t}(i) \right] \tag{12} Xt+1(i)=σ1[Xbest−Xt(i)](12)
最终,该细胞的新位置 Xt+1(i)X_{t+1}(i)Xt+1(i) 是当前位置与偏移项之和:
Xt+1(i)=Xt(i)+σ1[Xbest−Xt(i)](13) X_{t+1}(i) = X_{t}(i) + σ_{1} \left[ X_{\text{best}} - X_{t}(i) \right] \tag{13} Xt+1(i)=Xt(i)+σ1[Xbest−Xt(i)](13)
其中,σ1σ_{1}σ1 是从以下函数中获得的:
σ1=2×rand()−1(14) σ_{1} = 2 \times \text{rand()} - 1 \tag{14} σ1=2×rand()−1(14)
该规则允许正负变化,模拟光照对植物细胞的双向影响。该算子考虑细胞间差异并应用生长素水平的非线性变化,提供对植物朝向光源生长的简化建模。
1.2.2 阴影区细胞的有丝分裂
本节中,提出两种突变算子用于更新阴影区细胞的位置。阴影区细胞由于缺乏光照,其生长主要取决于遗传因子的内在影响。以下分别是两种情况:
突变算子(第一次复制)
该算子用于更新阴影区细胞的第一次有丝分裂复制,类似于光照区中的 Xt+1(i)X_{t+1}(i)Xt+1(i)。更新方式如下:
Xt+1(i)=Xt(i)+αβi[Xrand−Xworst](15) X_{t+1}(i) = X_{t}(i) + αβ_{i} \left[ X_{\text{rand}} - X_{\text{worst}} \right] \tag{15} Xt+1(i)=Xt(i)+αβi[Xrand−Xworst](15)
其中 XworstX_{\text{worst}}Xworst 是最差细胞。该算子体现出独立于物理条件的遗传机制。
生长素重分配算子(第二次复制)
该算子用于阴影区细胞的第二次有丝分裂复制。生长素重分配模拟细胞在微弱光照下的适应策略。该算子的更新表达式如下:
Xt+1(i)=Xt(i)+α×r×βi×[Xbest−Xt(i)](16) X_{t+1}(i) = X_{t}(i) + α \times r \times β_{i} \times \left[ X_{\text{best}} - X_{t}(i) \right] \tag{16} Xt+1(i)=Xt(i)+α×r×βi×[Xbest−Xt(i)](16)
其中 rrr 是在区间 [−1,1][-1,1][−1,1] 内的随机数。该方法生成的新细胞将与 XbestX_{\text{best}}Xbest 更接近。
最终,所有新解会被评估其适应度,最差者被剔除,保证种群规模恒定,只保留最优个体。
1.2.3 阶段2:细胞伸长
在算法第二阶段,引入细胞伸长机制。植物中生长素在不同部位分布不均,光照区因接近光源积累更多生长素,从而比阴影区细胞更快伸长。
该差异造成光照区细胞加速弯曲,因此该区域赋予更高权重。细胞的曲率定义如下:
curvature=β×(α−Meanfitness(X)Bestfitness(X))(17) \text{curvature} = β \times \left( α - \frac{\text{Mean}_{\text{fitness}}(X)}{\text{Best}_{\text{fitness}}(X)} \right) \tag{17} curvature=β×(α−Bestfitness(X)Meanfitness(X))(17)
其中:ααα 是适应度调节参数,增强早期探索和后期收敛能力; β∈{−1,+1}β \in \{-1, +1\}β∈{−1,+1} 是方向切换因子,模拟左右弯曲; Meanfitness(X)\text{Mean}_{\text{fitness}}(X)Meanfitness(X) 表示光照区所有细胞适应度的平均值;Bestfitness(X)\text{Best}_{\text{fitness}}(X)Bestfitness(X) 是当前种群的最优适应度。该算子使得曲率对较优个体弯曲幅度更大,引导解向最优区域聚集。
术语Mean_fitness(Xt)Best_fitness(X)\frac{Mean\_fitness(X_t)}{Best\_fitness(X)}Best_fitness(X)Mean_fitness(Xt)量化了光照区域的性能相对于已知最优解的优劣程度。当光照区域包含高质量解时,该比率接近1,导致曲率值降低——表明只需向最优区域进行微小弯曲调整。相反,当光照区域表现不佳时,曲率增大,推动细胞更积极地探索更优区域。
曲率因子受光照强度影响。在解决实际优化问题时,当前最优适应度解被视为算法中的光源,所有细胞都会尝试向最优解方向弯曲。曲率因子(FOC)可通过式(18)计算:
FOC=r7×curvature⊙(Xi(t)−XBest(t))(18)FOC = r_7 \times curvature \odot \left( X^i(t) - X_{Best}(t) \right) \tag{18}FOC=r7×curvature⊙(Xi(t)−XBest(t))(18)
其中,r7r_7r7是区间(−1,1)(-1, 1)(−1,1)内的随机数。项(Xi(t)−XBest(t))\left( X^i(t) - X_{Best}(t) \right)(Xi(t)−XBest(t))确保每个细胞朝当前最优解方向移动,模拟植物的向光性弯曲响应,而随机数r7r_7r7则引入可控的随机性。
除曲率因子外,细胞邻近性也对细胞伸长幅度起关键作用。细胞是否处于光照或阴影可通过周围细胞推断。从物理角度看,阴影中的细胞倾向于彼此靠近,而光照下的细胞则倾向于分散。细胞邻近性项考虑了相邻细胞,并通过系数α\alphaα限制成熟细胞随时间的变化幅度,通过β\betaβ表示细胞对生长素感知差异的随机性。细胞邻近性由下式给出:
Cell_vicinity=α×β×r8⊙(Xi(t)+Xi+1(t)2)Cell\_vicinity = \alpha \times \beta \times r_8 \odot \left( \frac{X^i(t)+X^{i+1}(t)}{2} \right)Cell_vicinity=α×β×r8⊙(2Xi(t)+Xi+1(t))
其中,r8r_8r8是区间(−1,1)(-1, 1)(−1,1)内的随机数。因此,细胞伸长阶段每个细胞的更新方程由式(20)给出,数学表达式为式(21):
Xnewi(t)=Xi(t)+FOC+Cell_Vicinity(20)X^i_{new}(t) = X^i(t) + FOC + Cell\_Vicinity \tag{20}Xnewi(t)=Xi(t)+FOC+Cell_Vicinity(20)
Xnewi(t)=Xi(t)+r7×curvature⊙(Xi(t)−XBest)+α×β×r8⊙(Xi(t)+Xi+1(t)2)(21)X^i_{new}(t) = X^i(t) + r_7 \times curvature \odot \left( X^i(t) - X_{Best} \right) + \alpha \times \beta \times r_8 \odot \left( \frac{X^i(t)+X^{i+1}(t)}{2} \right) \tag{21}Xnewi(t)=Xi(t)+r7×curvature⊙(Xi(t)−XBest)+α×β×r8⊙(2Xi(t)+Xi+1(t))(21)
新生成的细胞群与种群XXX合并后,通过目标函数评估整个细胞种群的适应度。选择适应度最优的NNN个细胞作为种群成员,其余则被淘汰。随后检查边界条件(即搜索空间的限制),通过比较每个解的值与上下边界来实现。若值超出搜索空间范围,则进行更新。所提出的PGA算法流程如图4所示。
1.2.4 探索与开发
PGA算法的关键特性之一在于探索与开发之间的平衡。这种平衡对于算法获得最优解至关重要。探索使算法能够广泛遍历搜索空间并发现多样化解,而开发则使其能够优化有潜力的区域并向最优解收敛。这两个阶段之间的转换由一组自适应参数控制,这些参数在算法执行过程中动态调整。PGA算法采用两个主要自适应参数:α\alphaα和FOC。这些参数在调节探索与开发阶段转换中起着关键作用:
-
生长限制因子α\alphaα
作为PGA算法的第一个自适应参数,α\alphaα依赖于迭代次数ttt并呈指数下降。其作用是控制算法的随机性程度:- 在探索阶段(全局搜索时),α\alphaα取值较大,允许算法进行大幅随机跳跃
- 当算法进入开发阶段时,α\alphaα逐渐减小,限制随机性并促使算法向最优解收敛
图5展示了α\alphaα对PGA中探索-开发平衡的影响。
-
曲率因子(FOC)
该因子同时依赖于α\alphaα和光照细胞平均适应度与最优搜索个体适应度的比值。FOC的作用是根据当前性能调整细胞位置:- 探索阶段FOC值较低,支持大幅随机跳跃
- 接近开发阶段时FOC值增大,减少随机性并促进向最优解收敛
1.3 完整代码
% Phototropic growth algorithm: A novel metaheuristic inspired
function [Fbest,Xbest,CNVG]=PGA(N,T,lb,ub,dim,fobj,nn)% initialise the best cellFbest=inf;vec_flag=[1,-1];Nl=round((0.2*rand+0.4)*N);%eq.(2&3)%Initialise the plant cellsX=initialization(N,dim,ub,lb);for i=1:Nfitness(i)=feval(fobj,X(i,:)',nn);end[GYbest, gbest] = min(fitness);Xbest= X(gbest,:);Ns=N-Nl;Xs=X(1:Ns,:);Xl=X(Ns+1:N,:);% Initialisng fitness variablesfitness_s=fitness(1:Ns);fitness_l=fitness(Ns+1:N);[fitnessBest_s, gbest1] = min(fitness_s);Xbest_s = Xs(gbest1,:);[fitnessBest_l, gbest2] = min(fitness_l);Xbest_l = Xl(gbest2,:);Curvaure=1;% ConcS=Curvaure*(mean(Xs)./Xbest_s).*(mean(fitness_s)/fitnessBest_s);% ConcL=Curvaure*(mean(Xl)./Xbest_l).*(mean(fitness_l)/fitnessBest_l);t=0; % Loop counterwhile t<Talpha = exp(-1*t/T); % eq(5)for i=1:size(Xs,1)FU=Xs(i,:)>ub;FL=Xs(i,:)<lb;Xs(i,:)=(Xs(i,:).*(~(FU+FL)))+ub.*FU+lb.*FL;fitness_s(i) = feval(fobj,Xs(i,:)',nn);if fitness_s(i)<fitnessBest_sfitnessBest_s=fitness_s(i);Xbest_s=Xs(i,:);endendfor i=1:size(Xl,1)FU=Xl(i,:)>ub;FL=Xl(i,:)<lb;Xl(i,:)=(Xl(i,:).*(~(FU+FL)))+ub.*FU+lb.*FL;fitness_l(i) = feval(fobj,Xl(i,:)',nn);if fitness_l(i)<fitnessBest_lfitnessBest_l=fitness_l(i);Xbest_l=Xl(i,:);endendflag_index = floor(2*rand()+1);beta=vec_flag(flag_index);Curvaure=beta*(alpha-mean(fitness_s)/Fbest); %Eq(17)for i=1:size(Xl,1)r2=2*rand(1,dim)-1;r3=2*rand(1,dim)-1;r4=2*rand(1,dim)-1;dd=randi([1,N]);flag_index = floor(2*rand()+1);beta=vec_flag(flag_index);Xlnew1(1,:)=X(dd,:)+beta*alpha.*r2.*abs(X(dd,:)-Xl(i,:))+beta*alpha.*r3.*abs(Xbest_l-Xl(i,:));%Eq(9)Xlnew1(2,:)=Xl(i,:)+alpha.*r4.*abs(Xbest_l-Xl(i,:));%Eq(13)for j=1:2Tp=Xlnew1(j,:)>ub;Tm=Xlnew1(j,:)<lb;Xlnew1(j,:)=(Xlnew1(j,:).*(~(Tp+Tm)))+ub.*Tp+lb.*Tm;fitness_lNew(j)=feval(fobj, Xlnew1(j,:)',nn);endXl=[Xl; Xlnew1];fitness_l=[fitness_l fitness_lNew];endfor i=1:size(Xs,1)r=2*rand(1,dim)-1;flag_index = floor(2*rand()+1);beta=vec_flag(flag_index);Xsnew1(1,:)=Xs(i,:)+beta*alpha.*r.*abs(Xs(i,:)-X(randi([1,N]),:));% Eq(15)Xsnew1(2,:)=Xl(randi(Ns),:)+beta*alpha.*r.*(Xbest_l-Xs(i,:));%% Eq(16)for j=1:2Tp=Xsnew1(j,:)>ub;Tm=Xsnew1(j,:)<lb;Xsnew1(j,:)=(Xsnew1(j,:).*(~(Tp+Tm)))+ub.*Tp+lb.*Tm;fitness_sNew(j)=feval(fobj, Xsnew1(j,:)',nn);endXs=[Xs; Xsnew1];fitness_s=[fitness_s fitness_sNew];end[fitness_s, SortOrder]=sort(fitness_s);Xs=Xs(SortOrder,:);[fitnessBest_s,Sbest]=min(fitness_s);Xbest_s=Xs(Sbest,:);Xs=Xs(1:Ns,:);fitness_s=fitness_s(1:Ns);[fitness_l, SortOrder]=sort(fitness_l);Xl=Xl(SortOrder,:);[fitnessBest_l,lbest]=min(fitness_l);Xbest_l=Xl(lbest,:);Xl=Xl(1:Nl,:);fitness_l=fitness_l(1:Nl);if fitnessBest_l<FbestFbest=fitnessBest_l;Xbest=Xbest_l;elseif fitnessBest_s<FbestFbest=fitnessBest_s;Xbest=Xbest_s;endX=[Xs;Xl];fitall=[fitness_s fitness_l];for i=1:Nr=2*rand(1,dim)-1;flag_index = floor(2*rand()+1);beta=vec_flag(flag_index);FOC=r.*(Curvaure.*X(i,:)-Xbest); %eq(18)Cell_vicinity=beta*alpha.*r.*(X(i,:)+X(i+1,:))/2; %eq(19)Xnew(1,:)=X(i,:)+FOC+Cell_vicinity; %eq(20)for j=1:1Tp=Xnew(j,:)>ub;Tm=Xnew(j,:)<lb;Xnew(j,:)=(Xnew(j,:).*(~(Tp+Tm)))+ub.*Tp+lb.*Tm;fitnessn(j)=feval(fobj, Xnew(j,:)',nn);endX=[X; Xnew];fitall=[fitall fitnessn];end[fitall, SortOrder]=sort(fitall);X=X(SortOrder,:);[Fbest,best]=min(fitall);Xbest=X(best,:);X=X(1:N,:);Nl=N-Ns;Xs=X(1:Ns,:);Xl=X(Ns+1:N,:);fitness_s=fitness(1:Ns);fitness_l=fitness(Ns+1:N);[fitnessBest_s, gbest1] = min(fitness_s);Xbest_s = Xs(gbest1,:);[fitnessBest_l, gbest2] = min(fitness_l);Xbest_l = Xl(gbest2,:);% Update iteration countert=t+1;CNVG(t)=Fbest;end
end
Bohat V K, Hashim F A, Batra H, et al. Phototropic growth algorithm: A novel metaheuristic inspired from phototropic growth of plants[J]. Knowledge-Based Systems, 2025, 322: 113548.