饥饿游戏搜索HGS Matlab

饥饿游戏搜索HGS Matlab

参考文献

标题:Hunger games search: Visions, conception, implementation, deep analysis, perspectives, and towards performance shifts
作者:Yutao Yang; Huiling Chen; Ali Asghar Heidari; Amir H Gandomi
出版年份:09/2021
影响因子8.5
期刊:Expert Systems with Applications

📜 摘要


最近几年已经发表了一组过度使用的基于人群的方法。尽管它们很受欢迎,但由于受到系统的互联网营销、产品捆绑和广告技术的操纵,在大多数新的现实案例中,它们都有不确定的、不成熟的表现、部分完成的验证、类似的过度使用的隐喻、类似的不成熟的探索和利用组件和操作,以及在探索和利用趋势之间的不安全权衡。因此,所有用户都需要基于主要的进化方法对其操作进行广泛的修改和调整,以达到更快的收敛、更稳定的平衡和高质量的结果.为了使优化社区更专注于性能而不是隐喻的变化,本研究提出了一种通用的基于种群的优化技术,称为饥饿游戏搜索( HGS ),具有简单的结构、特殊的稳定性特征和非常有竞争力的性能,以更有效地实现约束和无约束问题的求解。所提出的HGS是根据动物饥饿驱动的活动和行为选择而设计的。这种动态的、适合度的搜索方法遵循了一个简单的概念,即"饥饿"是所有动物生命中行为、决策和行动的最重要的稳态动机和原因,使优化过程对新用户和决策者来说更容易理解和一致。饥饿游戏搜索将饥饿的概念融入到特征过程中;也就是说,设计了一个基于饥饿概念的自适应权重,并用于模拟饥饿对每个搜索步骤的影响。它遵循几乎所有动物使用的计算逻辑规则(游戏),这些对手的活动和游戏往往是适应性进化的,以获得更高的生存和食物获取的机会。该方法的主要特点是具有动态性,结构简单,在收敛性和可接受的解的质量方面具有较高的性能,证明比现有的优化方法更有效。通过在23个著名的优化函数和IEEE CEC 2014基准测试集上与一组流行和先进的综合算法进行比较,验证了HGS的有效性。此外,将HGS应用于几个工程问题,以证明其适用性。结果验证了所提出的优化器相比于流行的基本优化器、现有方法的几个高级变体、多个CEC竞赛获胜算法和强大的基于差分进化( Differential Evolution,DE )的方法(简写为LSHADE、SPS _ L _ SHADE _ EIG、LSHADE _ cnEpSi、SHADE、SADE、MPEDE和JDE方法)在处理许多单目标问题时的有效性。我们设计了这种基于种群的开源方法,使之成为人工智能和机器学习不同领域的标准优化工具,具有一些新的探索和利用特性,高性能和高优化能力。该方法非常灵活且可扩展,可以在结构和应用两方面适应更多形式的优化案例。

🔬 创新

作为一种无梯度、基于种群的优化器,本文提出的HGS具有以下独特的优势:

  • 它是一种基于人口的方法,具有随机切换元素,丰富了HGS在处理具有挑战性的问题景观时的主要探索和开发行为和灵活性。
  • HGS的自适应和时变机制使该方法能够更有效地处理多模态和局部最优问题。
  • 考虑饥饿率和饥饿对活动范围的影响,使HGS更加灵活,能够以健身的方式改变性能。
  • 如果需要改变行为,个体适应度值的应用使HGS能够考虑历史信息。
  • 参数l和E辅助HGS演化初始位置和搜索方式,尽可能地保证对整个解空间的探索,极大地增强了算法的多样化能力。
  • 饥饿权(W1)和(W2)增加了HGS在搜索过程中的扰动,防止算法陷入局部最优。
  • 参数R保证了HGS的搜索步长以特定的速率减少;从而满足了前期大范围探索目标解空间,后期开发目标搜索盆地深度的需要。
  • 饥饿游戏搜索可以根据最佳解决方案(Xb)和正常解决方案(X)进化搜索代理,这是一个简单的想法,以确保更多的探索模式和对特征空间隐藏区域的更多覆盖。
  • 饥饿游戏搜索的结构和逻辑是直接的,并且很容易与其他进化机制相结合,以处理科学和工程中的新的实际问题。
  • 尽管方程简单,与现有方法相比,Hunger Games Search在基准问题研究中,与知名的基础和高级方法相比,具有非常优越的性能和高质量的结果。

🚩 方法

数学模型

接近食物

下面的博弈指令表示HGS算法对个体合作交流和觅食行为的中心方程:
在这里插入图片描述
其中,R在[ - a , a]范围内。

r 1 r_1 r1 r 2 r_2 r2 代表两个随机数,均在[ 0 , 1]范围内;

r a n d n ( 1 ) randn ( 1 ) randn(1) 是满足正态分布的随机数;

t t t 表示当前迭代次数;

W 1 → \overrightarrow{W_1} W1 W 2 → \overrightarrow{W2} W2 代表饥饿的重量;我们根据饥饿驱动信号的事实来设计它们;

X b → \overrightarrow{X_b} Xb 表示本次迭代的最佳个体的位置;

X ( t ) → \overrightarrow{X(t)} X(t) 表示每个个体的位置;

l l l 的取值将在参数设置实验中进行讨论,它是一个旨在改进算法的参数。

X ( t ) ⋅ ( 1 + r a n d n ( 1 ) ) X(t) \cdot (1+randn(1)) X(t)(1+randn(1)) 表示agent如何在当前位置饥饿地随机搜索食物;

∣ X b ‾ − X ( t ) ‾ ∣ \left|\overline{X_b}-\overline{X(t)}\right| XbX(t) 表示当前个体在当前时间内的活动范围,并且它将其乘以 W 2 → \overrightarrow{W_2} W2 ,以影响饥饿对活动范围的影响。由于个体不再饥饿时会停止搜索, R → \overrightarrow{R} R 是为了限制活动范围而加入的测距控制器,其中 R → \overrightarrow{R} R 的范围逐渐减小为0. 在 W 1 → ⋅ X b → \overrightarrow{W_1} \cdot \overrightarrow{X_b} W1 Xb 的基础上增减活动范围,模拟当前个体在到达食物位置时被同伴告知,获取食物后在当前位置再次搜索食物。引入 W 1 → \overrightarrow{W_1} W1 作为现实中实际位置把握的误差。对所有位置的变化控制量E的公式定义如下:
在这里插入图片描述
其中 i ∈ 1 , 2 , . . , n , F ( i ) i∈1,2,..,n,F ( i ) i12..nF(i) 表示每个个体的适应值;

BF是当前迭代过程中(迄今为止)得到的最佳适应度;Sech是一个双曲函数
在这里插入图片描述
R → \overrightarrow{R} R 的计算公式如下:
在这里插入图片描述
其中, r a n d rand rand 为[ 0 , 1]范围内的随机数;和T表示最大迭代次数。
在这里插入图片描述
图2展示了基于公式中的规则在空间中搜索HGS的过程和逻辑。( 2.1 ) .

从图中可以看出,根据源点的分类,搜索方向可以分为两类:

基于 X → \overrightarrow{X} X 的搜索:第一条游戏指令模拟的是自我依赖的指令,它没有团队合作精神,不参与合作阶段,只想饥饿地搜索食物。

X b → \overrightarrow{X_b} Xb 的基础上进行搜索:第二条游戏指令与变量 R → \overrightarrow{R} R W 1 → \overrightarrow{W_1} W1 W 2 → \overrightarrow{W_2} W2 密切相关。通过对这三个因素的细化,个体的位置可以在特征空间内进行演化。该方法模拟了多个实体在搜索食物时的合作关系。

饥饿角色

在这一部分中,通过提出的模型从数学上模拟了搜索中个体的饥饿特性。
式( 2.1 )中的 W 1 → \overrightarrow{W_1} W1 如下:
在这里插入图片描述
式( 2.1 )中的 W 2 → \overrightarrow{W_2} W2 如下所示:
在这里插入图片描述
其中 h u n g r y hungry hungry 代表了每个个体的饥饿感;

N表示个体的个数;

𝑆𝐻𝑢𝑛𝑔𝑟y是所有个体的饥饿感受的总和,即总和(饥饿) s u m ( h u n g r y ) sum(hungry) sum(hungry)

r3、r4和r5是[ 0、1 ]范围内的随机数。

hungry( i )的计算公式如下:
在这里插入图片描述
其中AllFitness ( i )保留当前迭代中每个个体的适应度。在每次迭代中,将最佳个体的饥饿度设置为0。对于其他个体,在原有饥饿的基础上增加一个新的饥饿( H )。因此,我们理解不同个体对应的H会有所不同。

H的计算公式可表示如下:
在这里插入图片描述
式中:

r6为[ 0、1 ]范围内的随机数;

F ( i )表示每个个体的适应度值;

BF是当前迭代过程中(迄今为止)得到的最佳适应度;

WF代表在当前迭代过程中(到目前为止)获得的最差适应度;

UB和LB分别表示特征空间的上界和下界。

饥饿感H被限制在一个下界LH,为了使算法获得更好的性能,我们控制了饥饿感的上下限,LH的取值将在参数设置实验中进行讨论。

由于饥饿对活动范围可能有正反两方面的影响,因此对 W 1 → \overrightarrow{W_1} W1 W 2 → \overrightarrow{W_2} W2 进行模拟。

式中:( 2.8 ),用UB和LB的差值来反映个体在不同环境中的最大饥饿感;

F ( i ) - BF表示个体仍然不需要饥饿的食物数量;在每一次迭代中,个体的饥饿程度都会发生变化。

WF - DF给出了个体在当前过程中的总觅食能力;

R6 × 2给出了环境因素对饥饿的正向或负向影响。

虽然提出的HGS算法可以产生社会动物的共性,但仍有很大的改进空间。例如,通过将算法按照生物有机体进行映射,并融合生物有机体的独特特性,可以对算法进行改进。也可以通过加入其他机制进行改进。我们尽可能地简化算法,以最大限度地提高其可扩展性。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

📌 Discussin & Conclusion & Limitation

本研究提出了一种新的基于种群的模型,以解决基于社会性动物搜索食物特征的优化问题。更具体地说,在每次迭代中,算法以相同的方式在动物觅食的最佳位置周围搜索,其中的权重或饥饿值,模拟饥饿对动物个体活动的影响。使用四个指标对算法进行了定性分析,包括搜索历史、第一维的轨迹、平均适应度和收敛曲线。所提出的饥饿游戏搜索( HGS )在23个基准函数和IEEE CEC2014函数的综合集合上进行了验证。采用Wilcoxon符号秩检验和弗赖德曼检验评估HGS与其他知名MA之间的统计学意义。实验结果表明,与其他算法相比,HGS具有高效的搜索能力,能够快速找到并开发目标解空间。总体而言,HGS在平衡勘探和勘探方面非常出色。同时,为了确认HGS对实际问题的适用性,考虑了四个工程问题,包括焊接梁、工字梁和多盘离合器制动器。从实验结果来看,HGS可以满足生产工程问题的优化效果,并显著降低制造成本。

在本文中,我们遵循开发HGS最直接的规则,以使其更容易扩展,并与现有的人工智能方法集成。这种新的高效HGS算法的未来发展方向还有很多窗口。首先,研究人员可以研究这种开源的HGS代码在解决机器学习模型的参数优化、二进制特征选择和图像分割等真实世界问题中的有效性。另一个窗口是如何提升本研究提出的基础版本的性能。可能的机会和未来的建议是应用反向学习( OBL ),正交学习( OL ),混沌信号代替随机变量,应用进化种群动态( EPD ),变异和交叉在方法探索和开发核心上的优势,集成突变型策略,莱维飞行的作用,贪婪搜索的应用,协同进化方法,量子计算,并行计算,基于排序的方案,随机备用方案,多种群结构,维度操作,以及它们的各种组合。最后,在目前发布的版本中,提出的饥饿游戏搜索是一种单目标方法,下一步的任务可以是开发已开发的饥饿游戏搜索的二进制、多目标和多目标变体,以处理更多种类的多目标、二进制和多目标问题。

🔬 源代码

clear all %#ok<CLALL>

close all

clc

N=30; % Number of search agents

Function_name='F11'; % Name of the test function, range from F1-F13

FEs=100; % Maximum number of evaluation times

dimSize = 30; %dimension size

% Load details of the selected benchmark function

[lb,ub,dim,fobj]=Get_Functions_HGS(Function_name,dimSize);

[Destination_fitness,bestPositions,Convergence_curve]=HGS(N,FEs,lb,ub,dim,fobj);

%Draw objective space

figure,

hold on

semilogy(Convergence_curve,'Color','b','LineWidth',4);

title('Convergence curve')

xlabel('Iteration');

ylabel('Best fitness obtained so far');

axis tight

grid off

box on

legend('HGS')

display(['The best location of HGS is: ', num2str(bestPositions)]);

display(['The best fitness of HGS is: ', num2str(Destination_fitness)]);

扫码关注回复HGS获取完整代码
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值