IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 智能优化算法:猎食者优化算法-附代码 -> 正文阅读

[数据结构与算法]智能优化算法:猎食者优化算法-附代码

智能优化算法:猎食者优化算法


摘要:猎食者优化算法(Hunter–prey optimization,HPO),是于2022年提出的一种新型智能优化算法,该算法通过模拟动物猎食的过程,来对问题进行寻优,具有收敛速度快,寻优能力强的特点。

1.算法原理

1.初始化

与其他优化算法一样,猎食者种群在搜索范围内随机初始化位置。
x i = rand ? ( 1 , d ) . ? ( u b ? l b ) + l b (1) x_{i} = \operatorname{rand}(1, d) . *(u b-l b)+l b \tag{1} xi?=rand(1,d).?(ub?lb)+lb(1)
其中, x i x_i xi?是猎食的位置, l b lb lb是问题变量的最小值(下界), u b ub ub是问题变量的最大值(上界), d d d是问题变量的数量(维度)。

2.猎食者搜索

对于猎食者的搜索机制,式(2)给出了其数学模型:
x i , j ( t + 1 ) = x i , j ( t ) + 0.5 [ ( 2 C Z P p o s ( j ) ? x i , j ( t ) ) + ( 2 ( 1 ? C ) Z μ ( j ) ? x i , j ( t ) ) ] (2) x_{i, j}(t+1)=x_{i, j}(t)+0.5\left[\left(2 C Z P_{p o s(j)}-x_{i, j}(t)\right)+\left(2(1-C) Z \mu(j)-x_{i, j}(t)\right)\right] \tag{2} xi,j?(t+1)=xi,j?(t)+0.5[(2CZPpos(j)??xi,j?(t))+(2(1?C)Zμ(j)?xi,j?(t))](2)
其中, x ( t ) x(t) x(t)是当前猎食者位置, x ( t + 1 ) x(t+1) x(t+1)是猎食者的下一次迭代位置,是 P p o s P_{pos} Ppos?猎物的位置, μ \mu μ是所有位置的平均值, Z Z Z是由式(3)计算的自适应参数:
P = R ? 1 < C ; I D X = ( P = = 0 ) Z = R 2 ? I D X + R ? 3 ? ( ~ I D X ) (3) \begin{array}{l} P=\vec{R}_{1}<C ; I D X=(P==0) \\ Z=R_{2} \otimes I D X+\vec{R}_{3} \otimes(\sim I D X) \end{array} \tag{3} P=R 1?<C;IDX=(P==0)Z=R2??IDX+R 3??(IDX)?(3)
其中, R → 1 \overrightarrow R1 R 1 R → 3 \overrightarrow R3 R 3 是[0,1]内的随机向量, P P P R → 1 < C \overrightarrow R1<C R 1<C的索引值, R → 2 \overrightarrow R2 R 2是[ 0 , 1 ] 内的随机数, I D X IDX IDX是满足条件( P = = 0 P==0 P==0)的向量 R → 1 \overrightarrow R1 R 1 的索引值, C C C是探索和开发之间的平衡参数,其值在迭代过程中从1减小到0.02,计算如下:
C = 1 ? i t ( 0.98 M a x I t ) (4) C=1-i t\left(\frac{0.98}{M a x I t}\right) \tag{4} C=1?it(MaxIt0.98?)(4)
其中, i t it it是当前迭代次数, M a x I t MaxIt MaxIt是最大迭代次数。计算猎物的位置( P p o s P_{pos} Ppos?),以便首先根据式(5)计算所有位置的平均值( μ \mu μ),然后计算每个搜索个体与该平均位置的距离。
μ = 1 n ∑ i = 1 n x ? i (5) \mu=\frac{1}{n} \sum_{i=1}^{n} \vec{x}_{i} \tag{5} μ=n1?i=1n?x i?(5)
根据式(6)计算欧几里得距离:
D e u c ( i ) = ( ∑ j = 1 d ( x i , j ? μ j ) 2 ) 1 2 (6) D_{e u c(i)}=\left(\sum_{j=1}^{d}\left(x_{i, j}-\mu_{j}\right)^{2}\right)^{\frac{1}{2}}\tag{6} Deuc(i)?=(j=1d?(xi,j??μj?)2)21?(6)
根据式(7),距离位置平均值最大的搜索代理被视为猎物( P p o s P_{pos} Ppos?):
P ? pos? = x ? i ∣ i ?is?index?of? Max ? ( e n d ) sort ? ( D euc? ) (7) \vec{P}_{\text {pos }}=\vec{x}_{i} \mid i \text { is index of } \operatorname{Max}(\mathrm{end}) \operatorname{sort}\left(D_{\text {euc }}\right) \tag{7} P pos??=x i?i?is?index?of?Max(end)sort(Deuc??)(7)
如果每次迭代都考虑到搜索代理与平均位置( μ \mu μ)之间的最大距离,则该算法将具有延迟收敛性。根据狩猎场景,当猎食者捕获猎物时,猎物会死亡,而下一次,猎食者会移动到新的猎物位置。为了解决这个问题,考虑一种递减机制,如式(8)所示:
?kbest? = round ? ( C × N ) (8) \text { kbest }=\operatorname{round}(C \times N) \tag{8} ?kbest?=round(C×N)(8)
其中 N N N是搜索代理的数量。改变式(7),将猎物的位置计算为式(9):
P ? pos? = x ? i ∣ i ?is?sorted? D euc? ( ?kbest? ) (9) \vec{P}_{\text {pos }}=\vec{x}_{i} \mid i \text { is sorted } D_{\text {euc }}(\text { kbest }) \tag{9} P pos??=x i?i?is?sorted?Deuc??(?kbest?)(9)
在算法开始时, k b e s t kbest kbest的值等于 N N N。最后一个距离搜索个体的平均位置( μ \mu μ)最远的搜索个体被选择为猎物,并被猎食者捕获。假设最佳安全位置是最佳全局位置,因为这将使猎物有更好的生存机会,猎食者可能会选择另一个猎物。式(10)用于更新猎物位置:
x i , j ( t + 1 ) = T p o s ( j ) + C Z cos ? ( 2 π R 4 ) × ( T p o s ( j ) ? x i , j ( t ) ) (10) x_{i, j}(t+1)=T_{p o s(j)}+C Z \cos \left(2 \pi R_{4}\right) \times\left(T_{p o s(j)}-x_{i, j}(t)\right)\tag{10} xi,j?(t+1)=Tpos(j)?+CZcos(2πR4?)×(Tpos(j)??xi,j?(t))(10)
其中, x ( t ) x(t) x(t)是猎物的当前位置; x ( t + 1 ) x(t+1) x(t+1)是猎物的下一次迭代位置; T p o s T_{pos} Tpos?是全局最优位置; Z Z Z是由式(3)计算的自适应参数; R 4 R_4 R4?是范围[ ? 1 , 1 ]内的随机数; C C C是探索和开发之间的平衡参数,其值在算法的迭代过程中减小,并由式(4)计算; c o s cos cos函数及其输入参数允许下一个猎物位置在不同半径和角度的全局最优位置,并提高开发阶段的性能。为了选择猎食者和猎物,结合式(2)和(10)提出了式(11):
x i ( t + 1 ) = { x i ( t ) + 0.5 [ ( 2 C Z P pos? ( j ) ? x i ( t ) ) + ( 2 ( 1 ? C ) Z μ ( j ) ? x i ( t ) ) ] ?if? R 5 < β T pos? + C Z cos ? ( 2 π R 4 ) × ( T pos? ? x i ( t ) ) ?else? (11) x_{i}(t+1)=\left\{\begin{array}{ll} x_{i}(t)+0.5\left[\left(2 C Z P_{\text {pos }(j)}-x_{i}(t)\right)+\left(2(1-C) Z \mu(j)-x_{i}(t)\right)\right] & \text { if } R_{5}<\beta \\ T_{\text {pos }}+C Z \cos \left(2 \pi R_{4}\right) \times\left(T_{\text {pos }}-x_{i}(t)\right) & \text { else } \end{array}\right .\tag{11} xi?(t+1)={xi?(t)+0.5[(2CZPpos?(j)??xi?(t))+(2(1?C)Zμ(j)?xi?(t))]Tpos??+CZcos(2πR4?)×(Tpos???xi?(t))??if?R5?<β?else??(11)
其中, R 5 R_5 R5?是[ 0 , 1 ] 范围内的随机数, β \beta β是一个调节参数。

算法流程:

步骤1:设置算法相关参数;并初始化种群。

步骤2:计算适应度值,并记录最优位置。

步骤3:根据(11)对猎食者或猎物位置进行更新。

步骤4:判断是否满足停止条件,如果满足则输出最优解,否则充分步骤2-3。

2.实验结果

请添加图片描述

3.参考文献

[1] Naruei, I., Keynia, F., Sabbagh Molahosseini, A. Hunter-prey optimization: algorithm and applications[J]. Soft Computing, 2022, 26: 1279-1314.

4.Matlab

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 22:03:13  更:2022-03-13 22:05:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 13:37:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码