当前位置:   article > 正文

2024年7月新算法,徒步优化算法,原理详解,MATLAB代码免费获取

徒步优化算法

徒步优化算法(Hiking Optimization Algorithm,HOA)是一种受徒步旅行经历启发的元启发式优化算法。徒步旅行者试图登顶山峰、丘陵或岩石的过程中,徒步者有意或无意地考虑到地形的陡峭程度,这是一种流行的娱乐活动,它认识到优化问题的搜索景观与徒步旅行者所穿越的山区地形之间的相似性。HOA的数学模型以Tobler徒步函数为前提,该函数通过考虑地形的高程和行走距离来确定徒步者(即agent)的步行速度。在求解优化问题的过程中,利用Tobler徒步函数(THF)来确定徒步者的位置。

73e84f6970c791422c06da3a114a146c.png

该成果于2024年发表在计算机领域一区SCI期刊“Knowledge-Based Systems”上。HOA方法具有出色的迭代优化性能和鲁棒性。

fd2cd111cc6b5b7e881d1840716c9f61.png

1、算法原理

HOA的数学基础是基于著名的Tobler徒步函数,该函数由美籍瑞士籍地理学家和制图师Waldo Tobler提出。托布勒徒步旅行函数是一个指数函数,它决定了徒步旅行者的速度,考虑到地形或路径的陡峭度或坡度。

托布勒的徒步函数(THF)由下式表示:

其中,wi,t为迭代或时间t时的徒步者速度(即km∕h),Si,t为步道或地形的坡度。另外,斜率Si,t由下式表示:

其中,dℎ和dx分别表示徒步旅行者在海拔和距离上的差异。此外,θ是小径或地形的倾斜角,它位于[0,50◦]内。

HoA利用了徒步旅行者作为一个群体的社会思维和个人徒步旅行者的个人认知能力的好处。徒步旅行者的更新或实际速度是由THF确定的初始速度、领先徒步旅行者的位置、徒步旅行者的实际位置和扫掠系数的函数。因此,徒步旅行者i的当前速度由

其中yi,t是在[0,1]范围内均匀分布的数;Wi,t和Wi,t−1分别表示徒步旅行者i的当前速度和初始速度。βbest是领先徒步旅行者的位置,αi,t是徒步旅行者i的扫描因子(SF),位于[1,3]。SF确保徒步旅行者不会偏离领队徒步旅行者太远,这样他们就可以看到领队徒步旅行者的方向,并接收到领队徒步旅行者的信号。

通过考虑徒步旅行者的速度,由下式给出徒步旅行者βi,t+1的更新位置i:

在包括HOA在内的各种元启发式算法中,智能体的初始设置是显著影响可行解的可达性和收敛速度的关键因素。在这项特殊的研究中,HOA实施了随机初始化技术来初始化其代理的位置。

徒步旅行者位置βi,t的初始化由解的上界Φ2j和下界Φ1j确定,由等式表示:

其中δj是范围[0,1]内的均匀分布数。此外,Φ1j和Φ2j表示优化问题决策变量的jth维的上下界。HOA的探索和开发倾向受一个称为扫描因子(SF)的参数的影响。当SF范围增大时,HOA倾向于更倾向于开发阶段。相反,减小SF范围往往会鼓励在HOA内进入探索性阶段。此外,减小轨道倾斜角的范围会使HOA转向开发阶段。这些因素共同影响了HOA在解决优化问题时的行为和表现。

HOA对应的伪代码过程如下图所示

45d8567344f2a365efbd0afd75b1abad.png

2、结果展示

34ea3357d0f974fad022ca97c0bf9770.png

233bb5fe6b74cb95134542cd8cc662e4.png

4132cbd9e14de6b189a5ebbf683128dd.png

01bc251c3efcfa12e5b01473ac992d14.png

fcb2eb69f7ddef870789f48d1d9361b8.png

3、MATLAB核心代码

  1. % 徒步优化算法(Hiking Optimization Algorithm,HOA)
  2. function [Xbest,Best_fitness,Iter_curve] = HOA(pop,maxIter,lb,ub,dim,fobj)
  3. %% Pre-allocate
  4. fit = zeros(pop,1);                    % vectorize variable to store fitness value
  5. %% Start Tobler Hiking Function Optimizer
  6. Pop = repmat(lb,pop,1) + repmat((ub-lb),pop,1).*rand(pop,dim); % generate initial position of hiker
  7. %% Evaluate fitness
  8. for q = 1:pop
  9.     fit(q) = fobj(Pop(q,:));            % evaluating initial fitness 
  10. end
  11. %% Main Loop
  12. for i = 1:maxIter
  13.         [~,ind] = min(fit);             % obtain initial fitness
  14.         Xbest = Pop(ind,:);             % obtain golbal best position of initial fitness
  15.         Best_fitness = min(fit);
  16.     for j = 1:pop
  17.         Xini = (Pop(j,:));              % obtain initial position of jth hiker
  18.         theta = randi([0 50],1,1);      % randomize elevation angle of hiker        
  19.         s = tan(theta);                 % compute slope
  20.         SF = randi([1 2],1,1);          % sweep factor generate either 1 or 2 randomly 
  21.         Vel = 6.*exp(-3.5.*abs(s+0.05)); % Compute walking velocity based on Tobler's Hiking Function
  22.         newVel =  Vel + rand(1,dim).*(Xbest - SF.*Xini) ; % determine new position of hiker
  23.         newPop = Pop(j,:) + newVel;     % Update position of hiker 
  24.         newPop = min(ub,newPop);        % bound violating to upper bound
  25.         newPop = max(lb,newPop);        % bound violating to lower bound
  26.         fnew = fobj(newPop);            % re-evaluate fitness
  27.         if (fnew < fit(j))              % apply greedy selection strategy
  28.             Pop(j,:) = newPop;          % store best position
  29.             fit(j) = fnew;              % store new fitness 
  30.         end
  31.     end
  32.     Iter_curve(i) = min(fit); % store best fitness per iteration
  33. end
  34. end
  35. 微信公众号搜索:淘个代码,获取更多免费代码
  36. %唯一官方店铺:https://mbd.pub/o/author-amqYmHBs/work
  37. %代码清单:https://docs.qq.com/sheet/DU3NjYkF5TWdFUnpu

参考文献

[1]Oladejo S O, Ekwe S O, Mirjalili S. The Hiking Optimization Algorithm: A novel human-based metaheuristic approach[J]. Knowledge-Based Systems, 2024, 296: 111880.

完整代码获取

后台回复关键词:

TGDM811

获取更多代码:

3d048bbd2a0ef7378981792a98831d87.png

  1. 或者复制链接跳转:
  2. https://docs.qq.com/sheet/DU3NjYkF5TWdFUnpu
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/1018481
推荐阅读
相关标签
  

闽ICP备14008679号