Java教程

基于堆优化算法的函数寻优算法

本文主要是介绍基于堆优化算法的函数寻优算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 一、理论基础
    • 1、堆优化算法(HBO)
    • 2、HBO算法伪代码
  • 二、仿真实验与分析
  • 三、参考文献

一、理论基础

堆优化算法(Heap-based optimizer, HBO)模拟公司层次结构建立的树状结构,目前它选择的是三元堆或者说是一个三叉树。企业等级制度的最终目标是以最好的方式完成与业务相关的任务,主要包括三个数学模型:下属与直接领导的交互、与同事的交互和个体的自我贡献。

1、堆优化算法(HBO)

与直接领导交互的数学模型可以描述为: X i k ( t + 1 ) = B k + γ λ k ∣ B k − X i k ( t ) ∣ (1) X_i^k(t+1)=B^k+\gamma\lambda^k|B^k-X_i^k(t)|\tag{1} Xik​(t+1)=Bk+γλk∣Bk−Xik​(t)∣(1) γ = ∣ 2 − 4 mod ( T , 25 ) / 25 ∣ (2) \gamma=|2-4\text{mod}(T,25)/25|\tag{2} γ=∣2−4mod(T,25)/25∣(2) λ k = 2 r − 1 (3) \lambda^k=2r-1\tag{3} λk=2r−1(3)其中, t t t是当前迭代次数, T T T是最大迭代次数, B B B是当前个体的直接领导, r r r是均匀分布在 [ 0 , 1 ] [0,1] [0,1]中的随机数。在迭代过程中, γ \gamma γ是一个三角波,它的值在1的左右波动,从2到0,或从0到2。
在堆中,位于同一层的个体都是其同事,每个个体 X → i \overrightarrow X_i X i​根据其随机选择的同事 S → r \overrightarrow S_r S r​更新其位置,其数学模型见式(4): X i k ( t + 1 ) = { S r k + γ λ k ∣ S r k − X i k ( t ) ∣ ,   f ( S → r ) < f ( X → i ( t ) ) X i k + γ λ k ∣ S r k − X i k ( t ) ∣ , f ( S → r ) ≥ f ( X → i ( t ) ) (4) X_i^k(t+1)=\begin{dcases}S_r^k+\gamma\lambda^k|S_r^k-X_i^k(t)|,\quad\, f(\overrightarrow S_r)<f(\overrightarrow X_i(t))\\X_i^k+\gamma\lambda^k|S_r^k-X_i^k(t)|,\quad f(\overrightarrow S_r)≥f(\overrightarrow X_i(t))\end{dcases}\tag{4} Xik​(t+1)={Srk​+γλk∣Srk​−Xik​(t)∣,f(S r​)<f(X i​(t))Xik​+γλk∣Srk​−Xik​(t)∣,f(S r​)≥f(X i​(t))​(4)其中, f f f是目标函数。对于极小值问题,若 f ( S → r ) < f ( X → i ( t ) ) f(\overrightarrow S_r)<f(\overrightarrow X_i(t)) f(S r​)<f(X i​(t)),个体可以探索 S → r \overrightarrow S_r S r​周围的区域;若 f ( S → r ) ≥ f ( X → i ( t ) ) f(\overrightarrow S_r)≥f(\overrightarrow X_i(t)) f(S r​)≥f(X i​(t)),个体可以探索 X → i \overrightarrow X_i X i​周围的区域,以保证搜索向好的方向发展。
在个体的自我贡献的模型中,个体在前一次迭代中的一些位置信息会一直保留到下一次迭代。即个体 X → i \overrightarrow X_i X i​在下一次迭代中不会改变其第 k k k个分量的值。 X i k ( t + 1 ) = X i k ( t ) (5) X_i^k(t+1)=X_i^k(t)\tag{5} Xik​(t+1)=Xik​(t)(5)在HBO中, p 1 p_1 p1​、 p 2 p_2 p2​和 p 3 p_3 p3​决定了个体将会在这三个数学模型中选择哪个模型进行更新。选择概率的计算方法如下: p 1 = 1 − t T (6) p_1=1-\frac tT\tag{6} p1​=1−Tt​(6) p 2 = p 1 + 1 − p 1 2 (7) p_2=p_1+\frac{1-p_1}{2}\tag{7} p2​=p1​+21−p1​​(7) p 3 = p 2 + 1 − p 1 2 = 1 (8) p_3=p_2+\frac{1-p_1}{2}=1\tag{8} p3​=p2​+21−p1​​=1(8)HBO通过 p 1 p_1 p1​选择自我贡献模型更新个体,通过 p 2 p_2 p2​选择与直接领导交互的数学模型更新个体,通过 p 3 p_3 p3​选择与同事交互的数学模型更新个体。

2、HBO算法伪代码

HBO算法伪代码如下所示:

设置参数并随机初始化种群
评估种群中个体的适应度值,获取全局最优解 
构建堆
for t=1 to T do
	for i=N to 2 do
		for j=1 to D do
			p = rand
			if p≤p1
				通过式(5)更新个体位置
			elseif p≤p2
				通过式(1)更新个体位置
			else
				通过式(4)更新个体位置
			end if 
		end for
		边界控制,计算个体的适应度值 
		贪心选择更新种群 
		更新堆,更新全局最优解
	end for
end for
输出全局最优解

二、仿真实验与分析

为了验证HOA的寻优性能,将其与MVO、MFO、SCA、PSO进行对比,以文献[1]中的f52、f53、f56、f58、f62、f65、f66、f68为例。仿真实验中,5种算法的运行次数、种群规模、空间维度和最大迭代次数都保持一致,即 N = 40 , d i m = 30 , M a x _ i t e r = 1000 N=40,dim=30,Max\_iter=1000 N=40,dim=30,Max_iter=1000,每个算法分别独立运行30次。结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

函数:F52
MVO:最差值: 211.064,最优值:101.681,平均值:155.7958,标准差:26.0195,秩和检验:3.018e-11
MFO:最差值: 182.856,最优值:98.5464,平均值:136.828,标准差:26.2753,秩和检验:3.018e-11
SCA:最差值: 307.3645,最优值:270.2184,平均值:287.0837,标准差:8.543,秩和检验:3.018e-11
PSO:最差值: 330.8335,最优值:192.1346,平均值:283.4069,标准差:43.5351,秩和检验:3.018e-11
HBO:最差值: 11.8438,最优值:1.2728e-05,平均值:5.3955,标准差:3.9457,秩和检验:1
函数:F53
MVO:最差值: 191.1514,最优值:61.7417,平均值:108.5901,标准差:30.1568,秩和检验:3.018e-11
MFO:最差值: 242.0581,最优值:95.5866,平均值:159.2234,标准差:36.2839,秩和检验:3.018e-11
SCA:最差值: 92.928,最优值:6.1775e-06,平均值:19.4962,标准差:27.7064,秩和检验:0.64142
PSO:最差值: 90.1476,最优值:26.565,平均值:51.8968,标准差:13.447,秩和检验:3.018e-11
HBO:最差值: 6.9647,最优值:0.99496,平均值:4.2452,标准差:1.8648,秩和检验:1
函数:F56
MVO:最差值: 8.888,最优值:1.77,平均值:4.3319,标准差:1.7228,秩和检验:3.0199e-11
MFO:最差值: 19.7608,最优值:5.8027e-06,平均值:4.5296,标准差:5.7016,秩和检验:3.0199e-11
SCA:最差值: 0.089923,最优值:7.649e-05,平均值:0.010243,标准差:0.017799,秩和检验:3.0199e-11
PSO:最差值: 2.6854,最优值:0.17142,平均值:0.92583,标准差:0.57549,秩和检验:3.0199e-11
HBO:最差值: 2.5821e-06,最优值:1.4358e-13,平均值:1.5626e-07,标准差:4.9198e-07,秩和检验:1
函数:F57
MVO:最差值: 9.9815,最优值:0.00010717,平均值:0.76633,标准差:2.0537,秩和检验:3.0199e-11
MFO:最差值: 1609630106.3936,最优值:3521.8979,平均值:67933285.2464,标准差:292420436.3928,秩和检验:3.0199e-11
SCA:最差值: 0.72932,最优值:2.0792e-10,平均值:0.029731,标准差:0.13478,秩和检验:3.1589e-10
PSO:最差值: 72.6817,最优值:4.7463e-05,平均值:3.2683,标准差:13.4487,秩和检验:3.3384e-11
HBO:最差值: 5.2777e-05,最优值:8.3571e-21,平均值:1.7602e-06,标准差:9.6354e-06,秩和检验:1
函数:F58
MVO:最差值: 2.0664,最优值:0.09946,平均值:1.0191,标准差:0.69936,秩和检验:3.0199e-11
MFO:最差值: 19.9645,最优值:0.0023143,平均值:15.0424,标准差:7.9098,秩和检验:3.0199e-11
SCA:最差值: 20.297,最优值:4.744e-05,平均值:13.0569,标准差:9.2268,秩和检验:3.0199e-11
PSO:最差值: 2.5884,最优值:0.035501,平均值:1.3998,标准差:0.70149,秩和检验:3.0199e-11
HBO:最差值: 1.2159e-10,最优值:4.3689e-12,平均值:2.8884e-11,标准差:3.0036e-11,秩和检验:1
函数:F62
MVO:最差值: 0.10342,最优值:0.0156,平均值:0.0405,标准差:0.019097,秩和检验:7.8566e-12
MFO:最差值: 3.0919,最优值:6.6597e-07,平均值:0.3093,标准差:0.87696,秩和检验:7.8566e-12
SCA:最差值: 0.32443,最优值:1.2039e-07,平均值:0.042849,标准差:0.085921,秩和检验:7.8566e-12
PSO:最差值: 0.076388,最优值:0.0004588,平均值:0.012453,标准差:0.015401,秩和检验:7.8566e-12
HBO:最差值: 2.8547e-11,最优值:0,平均值:1.064e-12,标准差:5.2271e-12,秩和检验:1
函数:F65
MVO:最差值: 0.16349,最优值:0.014097,平均值:0.052552,标准差:0.03636,秩和检验:3.0199e-11
MFO:最差值: 1.6439,最优值:7.671e-05,平均值:0.077576,标准差:0.30425,秩和检验:3.0199e-11
SCA:最差值: 6677.416,最优值:1.7833,平均值:302.8989,标准差:1272.3339,秩和检验:3.0199e-11
PSO:最差值: 0.034022,最优值:0.00066859,平均值:0.0081244,标准差:0.0084745,秩和检验:3.0199e-11
HBO:最差值: 6.0684e-20,最优值:7.5179e-23,平均值:5.5285e-21,标准差:1.1829e-20,秩和检验:1
函数:F66
MVO:最差值: 7.4294,最优值:0.0022331,平均值:1.3449,标准差:1.4754,秩和检验:3.0199e-11
MFO:最差值: 1.5113,最优值:1.6542e-06,平均值:0.23741,标准差:0.42486,秩和检验:3.0199e-11
SCA:最差值: 6.0264,最优值:0.26732,平均值:1.2747,标准差:1.513,秩和检验:3.0199e-11
PSO:最差值: 5.6573,最优值:0.00057109,平均值:2.2011,标准差:1.3915,秩和检验:3.0199e-11
HBO:最差值: 8.0067e-21,最优值:7.1095e-24,平均值:9.2849e-22,标准差:1.9276e-21,秩和检验:1
函数:F68
MVO:最差值: 0.026324,最优值:0.005155,平均值:0.013884,标准差:0.0059283,秩和检验:0.77312
MFO:最差值: 40.3371,最优值:0.0462,平均值:6.2696,标准差:10.1312,秩和检验:3.0199e-11
SCA:最差值: 0.1634,最优值:0.0023236,平均值:0.02997,标准差:0.034871,秩和检验:0.012212
PSO:最差值: 8.0612,最优值:0.0013099,平均值:0.90147,标准差:2.2659,秩和检验:0.0038481
HBO:最差值: 0.020456,最优值:0.0068732,平均值:0.013077,标准差:0.0041165,秩和检验:1

实验结果表明,HBO算的性能优于其他算法。

三、参考文献

[1] Qamar Askari, Mehreen Saeed, Irfan Younas. Heap-based optimizer inspired by corporate rank hierarchy for global optimization[J]. Expert Systems with Applications, 2021, 161: 113702.
[2] 张新明, 温少晨, 刘尚旺. 差分扰动的堆优化算法[J/OL]. 计算机应用: 1-9[2021-11-08].

这篇关于基于堆优化算法的函数寻优算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!