基于亨利气体溶解度优化算法的函数寻优算法
文章目录
- 一、理论基础
- 1、亨利气体溶解度优化算法
- (1)步骤1:初始化过程
- (2)步骤2:分簇
- (3)步骤3:评价
- (4)步骤4:更新亨利系数
- (5)步骤5:更新溶解度
- (6)步骤6:更新位置
- (7)步骤7:摆脱局部最优
- (8)步骤8:更新最差个体的位置
- 2、HGSO算法伪代码
- 二、仿真实验与结果分析
- 三、参考文献
一、理论基础
1、亨利气体溶解度优化算法
文献[1]提出了一种新的元启发式算法——亨利气体溶解度优化(Henry gas solubility optimization, HGSO)算法,该算法模拟在亨利定律约束下的行为来解决具有挑战性的优化问题。亨利定律是一个基本气体定律,它与在固定温度下溶解的特定气体的数量与特定类型和体积的液体有关。HGSO算法模拟气体的聚集行为,在搜索空间内平衡开发和探索,避免算法陷入局部最优。
HGSO的数学模型如下所示:
(1)步骤1:初始化过程
气体的数量(种群大小NNN)和气体的位置根据以下公式初始化:Xi(t+1)=Xmin+r×(Xmax−Xmin)(1)X_i(t+1)=X_{\min}+r\times(X_{\max}-X_{\min})\tag{1}Xi(t+1)=Xmin+r×(Xmax−Xmin)(1)其中,X(i)X_{(i)}X(i)表示NNN个个体中第iii个气体的位置,rrr是0到1之间的随机数,XminX_{\min}Xmin和XmaxX_{\max}Xmax是问题的边界,ttt是当前迭代次数。气体iii的数量、亨利常数j(Hj(t))j(H_j(t))j(Hj(t))的值、jjj簇中气体iii的分压为Pi,jP_{i,j}Pi,j、∇solE/R\nabla_{sol}E/R∇solE/R常数j(Ci)j(C_i)j(Ci)的值用以下公式初始化:Hj(t)=l1×rand(0,1),Pi,j=l2×rand(0,1),Cj=l3×rand(0,1)(2)H_j(t)=l_1\times rand(0,1),P_{i,j}=l_2\times rand(0,1),C_j=l_3\times rand(0,1)\tag{2}Hj(t)=l1×rand(0,1),Pi,j=l2×rand(0,1),Cj=l3×rand(0,1)(2)其中,l1,l2,l3l_1, l_2, l_3l1,l2,l3分别为(5E−02,100,1E−02)(5E−02,100,1E−02)(5E−02,100,1E−02)的常数。
(2)步骤2:分簇
根据气体类型的数量,将种群代理划分为相等的簇。每个簇都有相似的气体,因此有相同的亨利常数值(HjH_jHj)。
(3)步骤3:评价
对每个簇jjj进行评价,以确定从同类型的其他气体中获得最高平衡状态的最佳气体。然后对气体进行排序,得到整个种群中的最优气体。
(4)步骤4:更新亨利系数
亨利系数按下式更新:Hj(t+1)=Hj(t)×exp(−Cj×(1/T(t)−1/Tθ)),T(t)=exp(−t/iter)(3)H_j(t+1)=H_j(t)\times\exp\left(-C_j\times(1/T(t)-1/T^\theta)\right),T(t)=\exp(-t/iter)\tag{3}Hj(t+1)=Hj(t)×exp(−Cj×(1/T(t)−1/Tθ)),T(t)=exp(−t/iter)(3)其中,HjH_jHj为簇jjj的亨利系数,TTT为温度,TθT^\thetaTθ为等于298.15的常数,iteriteriter为最大迭代次数。
(5)步骤5:更新溶解度
溶解度按下式更新:Si,j(t)=K×Hj(t+1)×Pi,j(t)(4)S_{i,j}(t)=K\times H_j(t+1)\times P_{i,j}(t)\tag{4}Si,j(t)=K×Hj(t+1)×Pi,j(t)(4)其中,Si,jS_{i,j}Si,j为气体iii在簇jjj中的溶解度,Pi,jP_{i,j}Pi,j为气体iii在簇jjj中的分压,KKK为常数。
(6)步骤6:更新位置
位置更新如下:Xi,j(t+1)=Xi,j(t)+F×r×γ×(Xi,best(t)−Xi,j(t))+F×r×α×(Si,j(t)×Xbest(t)−Xi,j(t))(5)X_{i,j}(t+1)=X_{i,j}(t)+F\times r\times\gamma\times(X_{i,best}(t)-X_{i,j}(t))\\[2ex]+F\times r\times\alpha\times(S_{i,j}(t)\times X_{best}(t)-X_{i,j}(t))\tag{5}Xi,j(t+1)=Xi,j(t)+F×r×γ×(Xi,best(t)−Xi,j(t))+F×r×α×(Si,j(t)×Xbest(t)−Xi,j(t))(5)γ=β×exp(−Fbest(t)+εFi,j(t)+ε),ε=0.05(6)\gamma=\beta\times\exp\left(-\frac{F_{best}(t)+\varepsilon}{F_{i,j}(t)+\varepsilon}\right),\varepsilon=0.05\tag{6}γ=β×exp(−Fi,j(t)+εFbest(t)+ε),ε=0.05(6)其中,X(i,j)X_{(i,j)}X(i,j)为气体iii在簇jjj中得位置,rrr和ttt分别为随机常数和当前迭代次数,X(i,best)X_{(i,best)}X(i,best)为簇jjj中气体iii的最佳位置,而XbestX_{best}Xbest为种群的最佳位置。此外,γ\gammaγ是簇iii中气体jjj与气体jjj的相互作用力,α\alphaα是其他气体对簇jjj中气体iii的等于1的影响值,β\betaβ是常数。F(i,j)F_{(i,j)}F(i,j)为簇jjj中气体iii的适应度,FbestF_{best}Fbest为整个种群中最佳气体的适应度。FFF是改变搜索代理方向的标志,提供多样性=±=±=±。
X(i,best)X_{(i,best)}X(i,best)和XbestX_{best}Xbest是负责平衡探索和开发能力的两个参数。其中X(i,best)X_{(i,best)}X(i,best)为簇jjj中气体iii的最佳值,XbestX_{best}Xbest为种群中气体iii的最佳值。
(7)步骤7:摆脱局部最优
这一步用于摆脱局部最优。使用下列公式对最差的代理(NwN_wNw)进行排序和选择:Nw=N×(rand(c2−c1)+c1),c1=0.1,c2=0.2(7)N_w=N\times(rand(c_2-c_1)+c_1),c_1=0.1,c_2=0.2\tag{7}Nw=N×(rand(c2−c1)+c1),c1=0.1,c2=0.2(7)其中NNN为搜索代理的数量。
(8)步骤8:更新最差个体的位置
G(i,j)=Gmin(i,j)+r×(Gmax(i,j)−Gmin(i,j))(8)G_{(i,j)}=G_{\min(i,j)}+r\times(G_{\max(i,j)}-G_{\min(i,j)})\tag{8}G(i,j)=Gmin(i,j)+r×(Gmax(i,j)−Gmin(i,j))(8)其中,G(i,j)G_{(i,j)}G(i,j)为气体iii在簇jjj中的位置,rrr为随机数,GminG_{\min}Gmin和GmaxG_{\max}Gmax为问题的下界和上界。
2、HGSO算法伪代码
HGSO算法伪代码如图1所示。
图1 HGSO算法伪代码
二、仿真实验与结果分析
将HGSO与WOA、GSA、GWO、CS和PSO进行对比,以常用23个测试函数中的F3、F4(单峰函数/30维)、F9、F10(多峰函数/30维)、F17、F21(固定维度多峰函数/2维、4维)为例,实验设置种群规模为50,最大迭代次数为1000,每种算法独立运算30次,结果显示如下:
函数:F3
HGSO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
WOA:最差值: 26721.2896, 最优值: 869.6367, 平均值: 10028.754, 标准差: 6375.9941, 秩和检验: 1.2118e-12
GSA:最差值: 491.6764, 最优值: 146.2229, 平均值: 268.2075, 标准差: 92.1835, 秩和检验: 1.2118e-12
GWO:最差值: 1.4314e-17, 最优值: 1.9516e-24, 平均值: 5.1558e-19, 标准差: 2.6079e-18, 秩和检验: 1.2118e-12
CS:最差值: 810.0449, 最优值: 218.9368, 平均值: 505.5444, 标准差: 121.9258, 秩和检验: 1.2118e-12
PSO:最差值: 69061.5976, 最优值: 5871.4103, 平均值: 25972.9332, 标准差: 13939.9381, 秩和检验: 1.2118e-12
函数:F4
HGSO:最差值: 7.2527e-166, 最优值: 1.6784e-221, 平均值: 2.4176e-167, 标准差: 0, 秩和检验: 1
WOA:最差值: 86.3704, 最优值: 0.059864, 平均值: 32.6374, 标准差: 29.0349, 秩和检验: 3.0199e-11
GSA:最差值: 0.17874, 最优值: 2.5469e-09, 平均值: 0.005958, 标准差: 0.032633, 秩和检验: 3.0199e-11
GWO:最差值: 1.7808e-16, 最优值: 2.4925e-19, 平均值: 1.7082e-17, 标准差: 3.5018e-17, 秩和检验: 3.0199e-11
CS:最差值: 5.2226, 最优值: 2.3663, 平均值: 3.1258, 标准差: 0.61415, 秩和检验: 3.0199e-11
PSO:最差值: 6.4504, 最优值: 0, 平均值: 0.9519, 标准差: 1.8834, 秩和检验: 0.0014908
函数:F9
HGSO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
WOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
GSA:最差值: 24.874, 最优值: 10.9445, 平均值: 16.2842, 标准差: 3.8444, 秩和检验: 1.1805e-12
GWO:最差值: 5.6843e-14, 最优值: 0, 平均值: 7.5791e-15, 标准差: 1.9653e-14, 秩和检验: 0.041774
CS:最差值: 106.7827, 最优值: 65.4057, 平均值: 83.9938, 标准差: 10.8179, 秩和检验: 1.2118e-12
PSO:最差值: 248.884, 最优值: 20.8577, 平均值: 148.6197, 标准差: 61.0108, 秩和检验: 1.2108e-12
函数:F10
HGSO:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
WOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 4.7962e-15, 标准差: 2.696e-15, 秩和检验: 4.162e-09
GSA:最差值: 4.1973e-09, 最优值: 2.9739e-09, 平均值: 3.4605e-09, 标准差: 3.1288e-10, 秩和检验: 1.2118e-12
GWO:最差值: 1.8652e-14, 最优值: 7.9936e-15, 平均值: 1.3678e-14, 标准差: 2.3969e-15, 秩和检验: 4.8215e-13
CS:最差值: 7.4115, 最优值: 2.2361, 平均值: 3.937, 标准差: 1.5095, 秩和检验: 1.2118e-12
PSO:最差值: 19.9668, 最优值: 8.8818e-16, 平均值: 13.87, 标准差: 7.1982, 秩和检验: 1.9088e-10
函数:F17
HGSO:最差值: 0.39928, 最优值: 0.39792, 平均值: 0.39837, 标准差: 0.00041578, 秩和检验: 1
WOA:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 5.7341e-07, 秩和检验: 3.0199e-11
GSA:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 0, 秩和检验: 1.2118e-12
GWO:最差值: 0.39812, 最优值: 0.39789, 平均值: 0.3979, 标准差: 4.3059e-05, 秩和检验: 8.1527e-11
CS:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 0, 秩和检验: 1.2118e-12
PSO:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 0, 秩和检验: 1.2118e-12
函数:F21
HGSO:最差值: -4.5874, 最优值: -6.0631, 平均值: -4.9206, 标准差: 0.24896, 秩和检验: 1
WOA:最差值: -5.0518, 最优值: -10.1532, 平均值: -9.6427, 标准差: 1.5557, 秩和检验: 5.4941e-11
GSA:最差值: -3.1137, 最优值: -10.1532, 平均值: -5.2384, 标准差: 1.0726, 秩和检验: 1.7238e-08
GWO:最差值: -5.0552, 最优值: -10.1531, 平均值: -9.4777, 标准差: 1.7508, 秩和检验: 6.6955e-11
CS:最差值: -10.1532, 最优值: -10.1532, 平均值: -10.1532, 标准差: 3.5272e-13, 秩和检验: 1.9105e-11
PSO:最差值: -2.6305, 最优值: -10.1532, 平均值: -8.7159, 标准差: 2.4609, 秩和检验: 1.4588e-09
实验结果表明:在求解具有挑战性的优化问题时,HGSO算法的结果优于其他算法。
三、参考文献
[1] Fatma A. Hashim, Essam H. Houssein, Mai S. Mabrouk, et al. Henry gas solubility optimization: A novel physics-based algorithm[J]. Future Generation Computer Systems, 2019, 101: 646-667.
基于亨利气体溶解度优化算法的函数寻优算法相关推荐
- 【特征选择】基于亨利气体溶解度优化算法求解二进制特征选择问题(HGSO)含Matlab源码
1 简介 最近已经开发了几种元启发式优化算法来解决现实世界的问题.本文提出了一种新的元启发式算法,称为亨利气体溶解度优化 (HGSO),它模仿亨利定律支配的行为来解决具有挑战性的优化问题.亨利定律是一 ...
- 基于蚁群算法的函数寻优算法
文章目录 一.理论基础 二.案例背景 1.问题描述 2.解题思路及步骤 三.MATLAB程序实现 1.清空环境变量 2.初始化参数 3.构建解空间和目标函数 4.迭代寻优 5.结果显示 6.绘图 四. ...
- 基于沙猫群优化算法的函数寻优算法
文章目录 一.理论基础 1.沙猫群优化算法 (1)初始化种群 (2)搜索猎物(探索) (3)攻击猎物(开发) (4)探索和开发 2.SCSO算法伪代码 二.仿真实验与结果分析 三.参考文献 一.理论基 ...
- 基于闪电连接过程优化算法的函数寻优算法
文章目录 一.理论基础 1.闪电连接过程优化算法 (1)初始化 (2)确定闪电的下一跳 (3)闪电分支消失 (4)上迎先导的移动 (5)连接点的确定 2.LAPO算法伪代码 二.仿真实验与结果分析 三 ...
- 基于蜉蝣优化算法的函数寻优算法
文章目录 一.理论基础 1.蜉蝣优化算法 (1)雄性蜉蝣的更新 (2)雌性蜉蝣的更新 (3)蜉蝣的交配过程 2.MA算法伪代码 二.仿真实验与结果分析 1.函数测试与数值分析 2.WSN三维覆盖优化 ...
- 基于飞蛾火焰优化算法的函数寻优算法
文章目录 一.理论基础 1.算法原理 (1)种群初始化 (2)位置更新机制 2.算法步骤 二.Matlab程序 三.运行结果 四.参考文献 一.理论基础 飞蛾火焰优化算法(Moth-flame opt ...
- 基于金豺优化算法的函数寻优算法
文章目录 一.理论基础 1.金豺优化算法 (1)搜索空间公式 (2)探索阶段或搜索猎物 (3)开发阶段或围捕和突袭猎物 (4)从探索转向开发 2.GJO伪代码 二.仿真实验与结果分析 三.参考文献 一 ...
- 基于果蝇优化算法的函数寻优算法
文章目录 一.理论基础 二.算法步骤 1.启发 2.方向和距离 3.气味浓度判断值 4.适应度评估 5.寻找最优个体 6.飞行 7.迭代优化 三.案例背景 问题描述 四.MATLAB程序实现 1.清空 ...
- 基于蜂鸟优化算法的函数寻优算法
文章目录 一.理论基础 1.自搜索阶段 2.引导搜索阶段 3.HOA伪代码 二.仿真实验与分析 三.参考文献 一.理论基础 蜂鸟优化算法(Hummingbirds optimization algor ...
最新文章
- C/C++ 取整函数 ceil()、floor()、trunc()
- android vlc eclipse,在Eclipse下导入vlc-android并编译
- Pytorch Merge操作
- hust1347(归并排序求逆序对)
- python bind_Python bind-允许同时按下多个键
- python有大括号吗_只有我一个人觉得Python取消了大括号而显得结构更加混乱了吗?...
- UITextInputMode
- ViewPager 简单实现左右无限滑动.
- VirtualBox是什么
- IPTV在线服务器地址,德芯IPTV网关服务器,德芯直播点播服务器
- 自定义填充图案插件 cad_CAD软件中如何自定义CAD填充图案?
- 征途LINUX服务端脚本技术,腾讯征途手游脚本 辅助基本语法
- RDLC报表金额数字转大写
- 手动搭建HPC(高性能计算)
- 动态动作系统——一种全新的游戏人物动作制作思路
- [乐意黎原创]访问Centos下Apache主机页面抛You don't have permission to access / on this server.
- 什么是数字认证?数字认证原理是什么?
- 易语言数据类型与c 对照,一步一步跟我学易语言之数据类型与常用语句
- HTTP与HTTPS,HTTPS更加安全。
- C语言:浙大版《C语言程序设计(第3版)》题目集 习题5-5 使用函数统计指定数字的个数 (15 分)
热门文章
- E: dpkg was interrupted, you must manually run ‘dpkg –configure -a’ to correct the problem. 解决办法
- 2019-2-16-WPF-封装-dotnet-remoting-调用其他进程
- celeron处理器_NISE3600E 基于第三代Intel Core i7/i5/i3处理器,无风扇系统,1个PCIex4扩展槽...
- macbook 安装iperf_【优秀的网络性能测量工具----Iperf】-Linux/Unix/MAC OSX操作系统论坛-ZOL中关村在线...
- oracle采购操作手册,oracle-ebs采购功能点操作手册.doc
- [fjwc2015]Screen [从hzw神犇那里扒来的题]
- 如何用建好的stm32模板来创建Free-Rtos系统
- 足坛十大恶汉:张玉宁黑社会风波 辽猛将踢爆眼
- 联通软研院2020年球季校招笔试第三题 20190916
- 解决php报错Warning: date(): It is not safe to rely on the system's timezone settings