智能优化算法:北方苍鹰优化算法

文章目录

  • 智能优化算法:北方苍鹰优化算法
    • 1.北方苍鹰优化算法简介
    • 2.北方苍鹰优化算法基本原理
      • 2.1灵感来源和北方苍鹰的行为
      • 2.2算法的数学模型
      • 2.2.1 初始化
      • 2.2.2 第一阶段:猎物识别(勘探阶段)
      • 2.2.3 第二阶段:追逐及逃生(开发阶段)
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码

1.北方苍鹰优化算法简介

北方苍鹰优化算法(Northern Goshawk Optimization,NGO)是2022年由MOHAMMAD DEHGHANI等人提出的,该算法模拟了北方苍鹰在捕猎过程中的行为,具体包括猎物识别与攻击、追逐及逃生等行为。

2.北方苍鹰优化算法基本原理

2.1灵感来源和北方苍鹰的行为

北方苍鹰是鹰科的一个中大型猛禽,它首次被现在的学名,即苍鹰加以描述是林奈于1978年在他的自然系统中完成的。北方苍鹰是鹰属的一员,它捕猎各种猎物,包括小型和大型的鸟类以及其他鸟类,小型哺乳动物如老鼠、兔子、松鼠,甚至于狐狸和浣熊等动物。北方苍鹰是鹰属中唯一分布在欧亚大陆和北美的成员。雄性比雌性稍大一些。雄性的体长为46-61厘米,两翼之间的距离为89-105厘米,重约780克。然而,雌性物种长58-69厘米,体重1220克,两个翅膀之间的距离估计为108-127厘米。北方苍鹰的捕猎策略包括两个阶段:在第一阶段,在识别出猎物后,它以高速向猎物移动攻击;在第二阶段,在追逐猎取猎物。

2.2算法的数学模型

在北方苍鹰优化算法中,北方苍鹰捕猎过程分为两个阶段:猎物识别与攻击(勘探阶段),追逐及逃生(开发阶段)。

2.2.1 初始化

在北方苍鹰优化算法中,北方苍鹰种群可以用以下种群矩阵表示:
X=[X1⋮Xi⋮XN]N×m=[x1,1⋯x1,j⋯x1,m⋮⋱⋮⋮xi,1⋯xi,j⋯xi,m⋮⋮⋱⋮xN,1⋯xN,j⋯xN,m]N×m(1)X=\left[\begin{array}{c} X_{1} \\ \vdots \\ X_{i} \\ \vdots \\ X_{N} \end{array}\right]_{N \times m}=\left[\begin{array}{ccccc} x_{1,1} & \cdots & x_{1, j} & \cdots & x_{1, m} \\ \vdots & \ddots & \vdots & & \vdots \\ x_{i, 1} & \cdots & x_{i, j} & \cdots & x_{i, m} \\ \vdots & & \vdots & \ddots & \vdots \\ x_{N, 1} & \cdots & x_{N, j} & \cdots & x_{N, m} \end{array}\right]_{N \times m} \tag{1} X=⎣⎢⎢⎢⎢⎢⎢⎡​X1​⋮Xi​⋮XN​​⎦⎥⎥⎥⎥⎥⎥⎤​N×m​=⎣⎢⎢⎢⎢⎢⎢⎡​x1,1​⋮xi,1​⋮xN,1​​⋯⋱⋯⋯​x1,j​⋮xi,j​⋮xN,j​​⋯⋯⋱⋯​x1,m​⋮xi,m​⋮xN,m​​⎦⎥⎥⎥⎥⎥⎥⎤​N×m​(1)
式中:XXX为北方苍鹰的种群矩阵;XiX_iXi​为第i个北方苍鹰的位置;为xi,jx_{i,j}xi,j​第i个北方苍鹰的第j维的位置;N为北方苍鹰的种群数量;m为求解问题的维度。

在北方苍鹰优化算法中,求解问题的目标函数可以用来计算北方苍鹰的目标函数值;北方苍鹰种群的目标函数值可以用目标函数值向量表示:
F=[F1⋮Fi⋮FN]N×1=[F(X1)⋮F(Xi)⋮F(XN)]N×1(2)F=\left[\begin{array}{c} F_{1} \\ \vdots \\ F_{i} \\ \vdots \\ F_{N} \end{array}\right]_{N \times 1}=\left[\begin{array}{c} F\left(X_{1}\right) \\ \vdots \\ F\left(X_{i}\right) \\ \vdots \\ F\left(X_{N}\right) \end{array}\right]_{N \times 1} \tag{2} F=⎣⎢⎢⎢⎢⎢⎢⎡​F1​⋮Fi​⋮FN​​⎦⎥⎥⎥⎥⎥⎥⎤​N×1​=⎣⎢⎢⎢⎢⎢⎢⎡​F(X1​)⋮F(Xi​)⋮F(XN​)​⎦⎥⎥⎥⎥⎥⎥⎤​N×1​(2)
式中:FFF为北 方苍鹰种群的目标函数向量;FiF_iFi​为第i个北方苍鹰的目标函数值。

2.2.2 第一阶段:猎物识别(勘探阶段)

北方苍鹰在捕猎的第一阶段,随机选择一个猎物,然后迅速攻击它。由于在搜索空间中对猎物的选择是随机的,因此这一阶段增加了NGO算法的勘探能力。这个阶段对搜索空间进行全局搜索,目的是确定最优区域。在这一阶段,北方苍鹰进行猎物选择和攻击的行为,用公式(3)~(5)描述:
Pi=Xk,i=1,2,…,N,k=1,2,…,i−1,i+1,…,N(3){P_i} = {X_k},i = 1,2, \ldots ,N,k = 1,2, \ldots ,i - 1,i + 1, \ldots ,N \tag{3} Pi​=Xk​,i=1,2,…,N,k=1,2,…,i−1,i+1,…,N(3)

xi,jnew,P1={xi,j+r(pi,j−Ixi,j),FPi<Fixi,j+r(xi,j−pi,j),FPi≥Fi.(4)x_{i,j}^{new,P1} = {\begin{cases}{}{{x_{i,j}} + r\left( {{p_{i,j}} - I{x_{i,j}}} \right),}&{{F_{{P_i}}} < {F_i}}\\{{x_{i,j}} + r\left( {{x_{i,j}} - {p_{i,j}}} \right),}&{{F_{{P_i}}} \ge {F_i}}\end{cases}} . \tag{4} xi,jnew,P1​={xi,j​+r(pi,j​−Ixi,j​),xi,j​+r(xi,j​−pi,j​),​FPi​​<Fi​FPi​​≥Fi​​.(4)

Xi={Xinew,P1,Finew,P1<FiXi,Finew,P1≥Fi(5){X_i} = {\begin{cases}{} {X_i^{new,P1},}&{F_i^{new,P1} < {F_i}}\\ {{X_i},}&{F_i^{new,P1} \ge {F_i}} \end{cases}} \tag{5} Xi​={Xinew,P1​,Xi​,​Finew,P1​<Fi​Finew,P1​≥Fi​​(5)

式中:PiP_iPi​为第i个北方苍鹰的猎物的位置;FPiF_{Pi}FPi​为第i个北方苍鹰的猎物的位置的目标函数值;k是[1,N]范围内的随机整数;Xinew,P1X_i^{new,P1}Xinew,P1​为第i个北方苍鹰的新位置;xi,jnew,P1x_{i,j}^{new,P1}xi,jnew,P1​为第i个北方苍鹰的第j维的新位置;Finew,P1F_i^{new,P1}Finew,P1​为基于第1阶段更新后第i个北方苍鹰的目标函数值;r是[0,1]范围内的随机数;III为1或2的随机整数。

2.2.3 第二阶段:追逐及逃生(开发阶段)

在北方苍鹰攻击猎物后,猎物会试图逃跑。因此,在追逐猎物的收尾过程中,北方的苍鹰需要继续追逐猎物。由于北方苍鹰的追击速度很高,它们几乎可以在任何情况下追逐猎物,并最终捕获猎物。这种行为的模拟提高了算法对搜索空间的局部搜索能力。假设这种狩猎活动接近于一个半径为R的攻击位置。在第二阶段中,用公式(6)~(8)描述:
xi,jnew,P2=xi,j+R(2r−1)xi,j(6)x_{i,j}^{new,P2} = {x_{i,j}} + R(2r - 1){x_{i,j}} \tag{6} xi,jnew,P2​=xi,j​+R(2r−1)xi,j​(6)

R=0.02(1−tT)(7)R = 0.02\left( {1 - \frac{t}{T}} \right) \tag{7} R=0.02(1−Tt​)(7)

Xi={Xinew,P2,Finew,P2<FiXi,Finew,P2≥Fi.(8){X_i} = \begin{cases}{} {X_i^{new,P2},}&{F_i^{new,P2} < {F_i}}\\ {{X_i},}&{F_i^{new,P2} \ge {F_i}} \end{cases}. \tag{8} Xi​={Xinew,P2​,Xi​,​Finew,P2​<Fi​Finew,P2​≥Fi​​.(8)

式中:t为当前迭代次数;T为最大迭代次数;Xinew,P2X_i^{new,P2}Xinew,P2​为第i个北方苍鹰的新位置;xi,jnew,P2x_{i,j}^{new,P2}xi,jnew,P2​为第i个北方苍鹰的第j维的新位置;xi,jP2x_{i,j}^{P_2}xi,jP2​​为基于第2阶段更新后第i个鹈鹕的第j维的位置;Finew,P2F_i^{new,P2}Finew,P2​为基于第2阶段更新后第i个北方苍鹰的目标函数值。

算法伪代码如下:

3.实验结果

4.参考文献

[1] Hank P , Hamburg. PeliCAN: A New CAN Controller Supporting Diagnosis and System Optimization.

5.Matlab代码

智能优化算法:北方苍鹰优化算法-附代码相关推荐

  1. 基于北方苍鹰优化算法的函数寻优算法

    文章目录 一.理论基础 1.北方苍鹰优化算法 (1)初始化阶段 (2)第一阶段:猎物识别(探索) (3)第二阶段:追逐和逃跑行为(开发) 2.NGO算法伪代码 二.仿真实验与结果分析 三.参考文献 一 ...

  2. 【群智能算法】一种改进的北方苍鹰优化算法 改进北方苍鹰算法INGO[1]【Matlab代码#1】

    文章目录 [`获取资源`请见文章第5节:资源获取] 1. 基础北方苍鹰优化算法 1.1 猎物识别阶段(勘探阶段) 1.2 追击和逃逸阶段(开发阶段) 2. 改进的北方苍鹰优化算法 2.1 立方混沌Cu ...

  3. 多目标优化算法:多目标北方苍鹰优化算法MONGO(提供MATLAB代码)

    一.算法简介 北方苍鹰优化算法(Northern Goshawk Optimization,NGO)由MOHAMMAD DEHGHANI等人于2022年提出,该算法,该算法模拟了北方苍鹰捕猎过程(猎物 ...

  4. 单目标应用:基于北方苍鹰优化算法NGO的概率神经网络PNN数据分类(提供MATLAB代码)

    一.北方苍鹰优化算法NGO 北方苍鹰优化算法(Northern Goshawk Optimization,NGO)由MOHAMMAD DEHGHANI等人于2022年提出,该算法,该算法模拟了北方苍鹰 ...

  5. 单目标应用:基于北方苍鹰优化算法NGO的RBF神经网络数据分类(提供MATLAB代码)

    一.北方苍鹰优化算法NGO 北方苍鹰优化算法(Northern Goshawk Optimization,NGO)由MOHAMMAD DEHGHANI等人于2022年提出,该算法,该算法模拟了北方苍鹰 ...

  6. 基于粒子群算法优化的Elman神经网络数据预测-附代码

    基于粒子群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于粒子群算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  7. 基于布谷鸟算法优化的Elman神经网络数据预测-附代码

    基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  8. 基于鲸鱼算法优化的Elman神经网络数据预测-附代码

    基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  9. 基于海鸥算法优化的Elman神经网络数据预测-附代码

    基于海鸥算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于海鸥算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

最新文章

  1. “输入字符不是 MATLAB 语句或表达式中的有效字符”的解决办法
  2. python 笔记 之 类的继承与重写
  3. 转】阿里哈尔滨2014笔试题及【原创】答案
  4. PHP实现图片压缩的两则实例(转)
  5. java框架_2020年9个最流行的Java框架
  6. php页面栏目访问权限,PHPCMS 栏目和内容浏览权限的解决方法
  7. Java使用javax.mail.jar发送邮件并同意发送附件
  8. Python Django jsonpickle序列化部分字段
  9. 银行业务队列简单模拟 (25 分)c语言c++
  10. 942.ava.com_如何使用Ava.js测试Node.js应用程序
  11. 【机器学习-西瓜书】八、集成学习:结合策略;多样性;总结
  12. 成功演示六要素之四五——可信与情感
  13. 《计算机系统:系统架构与操作系统的高度集成》——2.5 高级数据抽象
  14. AUTOCAD输出打印图片格式时空白
  15. excel怎么设置打印区域_Excel可以自动调整打印区域,这个技术学会就厉害了!...
  16. javascript 异步编程二(转载 from 司徒正美)
  17. 不成熟的男人的爱情观——知乎上另一个关于不成熟男人的见解
  18. 机房常用动力环境设备远程集中监控及告警方案
  19. cloud-华为云——云平台部署管理架构
  20. STM32F103固件库源码解析——RCC_APB2PeriphClockCmd

热门文章

  1. 问题记录:is not eligible for getting processed by all BeanPostProcessors
  2. Java打印异常的正确方式
  3. 必读论文|百篇最值得一读的“认知图谱”经典论
  4. 真正解决layer弹层遮罩挡住窗体的问题
  5. Linguistic Sorting and Matching
  6. 手机日常使用技巧、和手机停机如何免费上网
  7. 微信新版 公众号隐藏导航条
  8. python字典相同键合并_在Python中用相同的键合并两个字典
  9. html鼠标拖尾效果,前端每日实战:25# 视频演示如何用纯 CSS 创作一个慧星拖尾效果的 loader 动画...
  10. JAVA开源工具大全