智能优化算法:堆优化算法

文章目录

  • 智能优化算法:堆优化算法
    • 1.算法原理
    • 2.算法结果
    • 3.参考文献
    • 4.Matlab代码

摘要:堆优化算法(Heap-based optimizer,HBO)是 Askari 等人在 2020 年提出的一种新型智能优化算法。它利用堆结构模拟了公司的层级结构,采用了堆的概念形成个体之间的交互,并且构建了三种构造新解的数学模型。具有收敛速度快,精度高的特点。

1.算法原理

HBO 模拟公司层次结构建立的树状结构,目前它选择的是三元堆或者说是一个三叉树,具体详见图 1。企业等级制度的最终目标是以最好的方式完成与业务相关的任务,主要包括三个数学模型:下属与直接领导的交互、与同事的交互和个体的自我贡献。

图1.三元堆

图1中X1X_1X1​所在的层次为最高层第一层,仅有一个个体(其适应度值最高,为最优个体),;X2∼X4X_2\sim X_4X2​∼X4​所在的层次为第二层,3 个个体(它们的适应度值低于第一层个体的适应度值,以下类似);X5∼X13X_5\sim X_{13}X5​∼X13​ 所在的层次为第三层,9 个个体;如此,第四层应该有 27 个体;所有这些个体组成一个群体,其种群大小为 40。其中,第一层至第三层在本文中称为高层,第四层为低层(其中个体的适应度值低于高层个体的适应度值)。从 X2X_2X2​开始所有的个体都是通过直接领导和同事的引导进行更新。以 X8X_8X8​ 为例,由于堆独特的结构,与 X8X_8X8​ 在同一层次的个体均为其同事,为 X5X13X_5 ~X_{13}X5​ X13​ ,且只有一个直接领导 X3X_3X3​ 。然而对于最高领导X1X_1X1​ ,它所在的层是最高层,没有直接领导,并且该层只有X1X_1X1​ 一个个体,也不存在同事。

与直接领导交互的数学模型可以描述为:
Xij(t+1)=Bj+γλ∣Bj−Xij(t)∣(1)X_i^j(t+1)=B^j+\gamma \lambda |B^j-X_i^j(t)|\tag{1} Xij​(t+1)=Bj+γλ∣Bj−Xij​(t)∣(1)

γ=∣2−4∗mod(t,25)/25∣(2)\gamma=|2-4*mod(t,25)/25| \tag{2} γ=∣2−4∗mod(t,25)/25∣(2)

λ=2r−1(3)\lambda = 2r-1 \tag{3} λ=2r−1(3)

其中,ttt 是当前迭代次数,TTT 是最大迭代次数,jjj 是一个解向量的第 jjj 个分量,BBB 是当前个体的直接领导。rrr 是均匀分布在[0,1]中的随机数。在迭代过程中,γγγ 是一个三角波,它的值在 1 的左右波动,从 2 到 0,或从 0 到 2。

在堆中,位于同一层的个体都是其同事,每个个体XiX_iXi​根据其随机选择的同事$ S_r$ 更新其位置,其数学模型见式(4)。
Xij(t+1)={Srj+γλ∣Srj−Xij(t)∣,f(Sr)<f(Xi(t))Xij+γλ∣Srj−Xij(t)∣,else(4)X_i^j(t+1)=\begin{cases} S_r^j+\gamma \lambda|S_r^j-X_i^j(t)|,f(S_r)<f(X_i(t))\\ X_i^j+\gamma \lambda|S_r^j-X_i^j(t)|,else \end{cases}\tag{4} Xij​(t+1)={Srj​+γλ∣Srj​−Xij​(t)∣,f(Sr​)<f(Xi​(t))Xij​+γλ∣Srj​−Xij​(t)∣,else​(4)
其中,fff 是个体的目标函数。对于最小极值问题,若 f(Sr)<f(Xi)f (S_r)<f(X_i)f(Sr​)<f(Xi​),个体可以探索 SrS_rSr​ 周围的区域;若 f(Sr)≥f(Xi)f (S_r )≥ f (X_i )f(Sr​)≥f(Xi​),个体可以探索 XiX_iXi​ 周围的区域,以保证搜索向好的方向发展。

在个体的自我贡献的模型中,个体在前一次迭代中的一些位置信息会一直保留到下一次迭代。即个体XiX_iXi​ 在下一次迭代中不会改变其第jjj个分量的值。
Xij(t+1)=Xij(t)(5)X_i^j(t+1)=X_i^j(t)\tag{5} Xij​(t+1)=Xij​(t)(5)
在 HBO 中,p1p_1p1​ ,p2p_2p2​ 和p3p_3p3​决定了个体将会在这三个数学模型中选择哪个模型进行更新。选择概率的计算方法如下:
p1=1−t/T(6)p_1=1-t/T \tag{6} p1​=1−t/T(6)

p2=p1+(1−p1)/2(7)p_2=p_1+(1-p_1)/2 \tag{7} p2​=p1​+(1−p1​)/2(7)

HBO 通过 p1p_1p1​ 选择自我贡献模型更新个体,通过p2p_2p2​ 选择与直接领导交互的数学模型更新个体,通过p3p_3p3​ 选择与同事交互的数学模型更新个体,其中p3=1p_3 =1p3​=1

算法 1: 堆优化算法
Step1: 设置参数并随机初始化种群
Step2: 评估种群中个体的适应度值,获取全局最优解
Step3: 构建堆
Step4: for t=1 to T do
Step5: for i= N to 2 do
Step6: for j=1 to D do
Step7: p=rand
Step8: if p≤p 1
Step9: 通过公式(5)更新个体位置
Step10: else if p > p 1 & p ≤ p 2
Step11: 通过公式(1)更新个体位置
Step12: else
Step13: if p > p 2 & p ≤ p 3
Step14: 通过公式(4)更新个体位置
Step15: end if
Step16: end if

Step17: end for
Step18: 边界控制,计算个体的适应度值
Step19: 贪心选择更新种群
Step20: 更新堆,更新全局最优解
Step21: end for
Step22: end for
Step23: 输出全局最优解

2.算法结果

3.参考文献

[1]Qamar Askari,Mehreen Saeed,Irfan Younas. Heap-based optimizer inspired by corporate rank hierarchy for global optimization[J]. Expert Systems With Applications,2020,161:

[1]张新明,温少晨,刘尚旺.差分扰动的堆优化算法[J/OL].计算机应用:1-9[2021-12-11].http://kns.cnki.net/kcms/detail/51.1307.TP.20211014.1631.021.html.

4.Matlab代码

智能优化算法:堆优化算法-附代码相关推荐

  1. 智能优化算法:闪电搜索算法-附代码

    智能优化算法:闪电搜索算法-附代码 文章目录 智能优化算法:闪电搜索算法-附代码 1.算法原理 1.1 过渡放电体 1.2 空间放电体 1.3 引导放电体 2.算法结果 3.参考文献 4.Matlab ...

  2. 智能优化算法:布谷鸟搜索算法-附代码

    智能优化算法:布谷鸟搜索算法-附代码 文章目录 智能优化算法:布谷鸟搜索算法-附代码 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 摘要:谷鸟搜索算法(cuckoo search , ...

  3. 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码

    基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...

  4. 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码

    基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...

  5. 相位 unwrap 与 wrap 算法详解(附代码)

    相位 unwrap 与 wrap 算法详解(附代码) 最近接手了一个项目,光通信方面的,我负责编写初测结果的数据处理算法,其中有一个算法叫做 unwrap 与 wrap,之前没有听说过.通过询问同事与 ...

  6. 数据挖掘领域十大经典算法之—SVM算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-Apriori算法 数据挖掘领域十大经 ...

  7. 二分查找算法详解(附代码)

    二分查找算法详解(附代码) 注: 现有一个升序 不重复的数组 查询target是否在此数组中并返回序号 使用条件 使用二分算法的两个条件: 有序 不重复 混淆处 二分算法两种方式容易弄混淆的地方:就是 ...

  8. 数据挖掘领域十大经典算法之—AdaBoost算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-SVM算法(超详细附代码) 数据挖掘领 ...

  9. 麻雀优化算法_多种智能优化算法应用案例分享-附代码

    1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客​blog.csdn.net 2.智能优化算法 ...

  10. 智能优化算法:麻雀搜索算法-附代码

    2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...

最新文章

  1. codeforces831c 思维
  2. mingw编译wxwidgets
  3. Android 消息机制 Handler总结
  4. 高淇python讲义百度文库_python 面向对象01
  5. python可视化添加文本_python Matplotlib基础--如何添加文本和标注
  6. Android之走手机流量让电脑能上网几种方法
  7. php thikn_与ThinkPHP等框架结合
  8. qt connect函数_Qt官方示例广播发送器
  9. Linux x86主机运行天数是是24.8的倍数都有可能引发oracle bug及解决方法
  10. 每日一道算法题 - KaprekarsConstant(hard-1)
  11. ArrayList错误:java.util.ConcurrentModificationException:null
  12. 体脂率在线计算机,如何简单测算出自己的体脂率?
  13. ThinkPad 笔记本BIOS设置手册
  14. 一字千金的SEO达文
  15. 中小型企业选择企业邮箱的好处
  16. linux打开udc端口命令,Openstack API常用命令
  17. 你在加密市场能走多远 取决于你的思维认知
  18. 捷联惯导基础知识解析之四(粗/精对准和GPS/IMU和GPS/里程计组合导航)
  19. 二维码的扫描与生成(含动态权限)
  20. 晓_【斗战神学习二十四】一手交钱,一手交货

热门文章

  1. 热部署Devtools
  2. oracle并发执行max,oracle max processes and sessions
  3. 2014大学计算机操作系统,郑州大学软件学院2013-2014《计算机操作系统》试题及答案...
  4. vlc插件怎么用 wpf_使用Vlc.DotNet在我的WPF项目中添加vlc的问题。
  5. 关于 Spring 注解和 XML 的选择问题
  6. python3中def的用法-python3中的def函数语法错误
  7. Django:报错 unsupported format character ‘Y‘ (0x59) at index 70
  8. Linux:文件权限数字形式
  9. ElementUI:el-container实现高度占满
  10. GIS_GDAL java版下载/环境配置/dll配置/API使用文档