文章目录
- 【`获取资源`请见文章第7节:资源获取】
- 1. 算法概述
- 2. 原始哈里斯鹰算法(HHO)
- 3. 改进哈里斯鹰算法(IHHO)
- 3.1 动态自适应逃逸能量
- 3.2 动态扰动策略
- 4. 构建源强和位置反算模型
- 5. 部分代码展示
- 6. 仿真结果展示
- 7. 资源获取说明
【获取资源
请见文章第7节:资源获取】
1. 算法概述
针对泄漏事故,提出了一种融合气体扩散模型、传感器布局和优化算法的危化品泄漏源定位模型,将传感器获取的测量浓度数据与扩散模型的计算浓度进行误差对比,把二者之间的最小误差作为优化目标函数,利用优化算法对目标函数进行迭代寻优。将哈里斯鹰优化算法(HHO)应用于危化品溯源定位研究,此外考虑到原始哈里斯鹰优化算法存在的收敛精度低、收敛速度慢、易陷入局部最优等问题,对HHO算法进行了改进。
2. 原始哈里斯鹰算法(HHO)
详细介绍此处略,可参考HHO算法介绍
3. 改进哈里斯鹰算法(IHHO)
3.1 动态自适应逃逸能量
猎物逃逸能量E是HHO平衡全局探索与局部开发行为的重要参数。HHO中对猎物逃逸能量E的描述是由最大值线性递减至最小值,这种线性能量递减策略导致算法的探索和发开平衡性较差,且无法准确表征实际情况下鹰与猎物多轮围捕逃逸过程。 为此,在HHO能量递减策略中引入动态自适应权重。
3.2 动态扰动策略
在原始HHO算法中,当猎物的能量 ∣ E ∣ |E| ∣E∣小于1时,算法进入开发阶段,但是这并不能保证种群一定能接近最优解,甚至导致过早收敛、陷入局部最优。因此引入动态扰动策略,帮助算法跳出局部最优。
4. 构建源强和位置反算模型
5. 部分代码展示
% 计算浓度值C
c=CacuC(Mubiao,sigma_x,sigma_y,sigma_z,x,y,u,t);
fobj = @(xx) fun(xx,c,sigma_x,sigma_y,sigma_z,x,y,u,t);%适应度函数设置
% 调用哈里斯鹰算法求解
[Rabbit_Energy_HHO,Rabbit_Location_HHO,CNVG_HHO]=HHO(n,iter_max,lb,ub,dim,fobj);
[Rabbit_Energy_IHHO,Rabbit_Location_IHHO,CNVG_IHHO]=IHHO(n,iter_max,lb,ub,dim,fobj);
figure(1);
semilogy(CNVG_HHO, 'k', 'linewidth', 2)
hold on
semilogy(CNVG_IHHO, 'y', 'linewidth', 2)
xlabel('迭代次数');
ylabel('函数值');
legend('HHO','IHHO');
title(['HHO算法和IHHO算法各代最优解变化' '终止次数=' num2str(iter_max)]);
6. 仿真结果展示
将原始HHO算法和改进后的IHHO算法均用于泄漏源定位算法,对比结果如下。
7. 资源获取说明
可以获取完整代码资源。👇👇👇👀名片