多策略黑猩猩优化算法

文章目录

  • 多策略黑猩猩优化算法
    • 1.黑猩猩优化算法
    • 2. 改进黑猩猩优化算法
      • 2.1 混沌反向学习策略初始化种群
      • 2.2 单纯形法
      • 2.3 群个体记忆机制
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.Python代码

摘要:针对基本黑猩猩优化算法存在的依赖初始种群、易陷入局部最优和收敛精度低等问题,提出一种多策略黑猩猩优化算法(Chaotic Elite Opposition-Based Simple Method Improved COA,EOSMICOA)。在EOSMICOA算法中,利用混沌精英反向学习策略对黑猩猩个体位置进行初始化,提高种群的多样性和质量,同时在位置更新过程中利用单纯形法和群个体记忆机制对较差个体进行改进,进一步提高算法的局部开发能力和勘探能力,提高算法的寻优精度。

1.黑猩猩优化算法

基础黑猩猩优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/119649041

2. 改进黑猩猩优化算法

2.1 混沌反向学习策略初始化种群

本文采用 Iteration 混沌映射。Iteration 映射数学表达式如下:
xn+1=sin⁡(bπ/xn)(6)x_{n+1}=\sin \left(b \pi / x_n\right) \tag{6} xn+1​=sin(bπ/xn​)(6)
其中, bbb 为控制参数, b∈(0,1b \in(0,1b∈(0,1, 文中设定 b=0.7b=0.7b=0.7

首先, 通过 Iteration 映射生成 NNN 个 ddd 维初始解 Xi,j,(i=1,2,…,N;j=1,2,…,d)X_{i, j},(i=1,2, \ldots, N ; j=1,2, \ldots, d)Xi,j​,(i=1,2,…,N;j=1,2,…,d), 其次, 对当前种 群中个体初始解进行排序, 选择对应的自身极值点作 为精英个体 Xi,je=(Xi,1e,Xi,2e,…,Xi,de)X_{i, j}^e=\left(X_{i, 1}^e, X_{i, 2}^e, \ldots, X_{i, d}^e\right)Xi,je​=(Xi,1e​,Xi,2e​,…,Xi,de​), 按照公式 (6) 生成混沌精英反向解 Xi,je‾=(Xi,1e‾,Xi,2e‾,…,Xi,de‾)\overline{X_{i, j}^e}=\left(\overline{X_{i, 1}^e}, \overline{X_{i, 2}^e}, \ldots, \overline{X_{i, d}^e}\right)Xi,je​​=(Xi,1e​​,Xi,2e​​,…,Xi,de​​), 并按照公式 ( 7) 设置动态边界以规范越界的位置点。
Xi,je‾=k∗(αj+βj)−Xi,je(7)\overline{X_{i, j}^e}=k^*\left(\alpha_j+\beta_j\right)-X_{i, j}^e \tag{7} Xi,je​​=k∗(αj​+βj​)−Xi,je​(7)
Xi,je‾=rand⁡(αj,βj),Xi,je‾<αj,Xi,je‾<βj(8)\overline{X_{i, j}^e}=\operatorname{rand}\left(\alpha_{\mathrm{j}}, \beta_j\right), \overline{X_{i, j}^e}<\alpha_j,\overline{X_{i, j}^e}<\beta_j \tag{8} Xi,je​​=rand(αj​,βj​),Xi,je​​<αj​,Xi,je​​<βj​(8)

其中精英反向系数 k∈(0,1),αj=min⁡(Xi,je)k \in(0,1), \alpha_j=\min \left(X_{i, j}^e\right)k∈(0,1),αj​=min(Xi,je​) 和 βj=max⁡(Xi,je)\beta_j=\max \left(X_{i, j}^e\right)βj​=max(Xi,je​) 。
最后将混沌生成的所有初始解和混沌精英反向解 合并进行排序, 选取前 NNN 个较优的解作为初始种群。

2.2 单纯形法

单纯形法是一种不受目标函数连续性和可导性影 响的直接搜索算法, 其主要通过迭代判断最差顶点 XsX_sXs​ 向优运动的方向向量 ggg 是否正确, 并通过对最差 顶点进行反射、扩张、外收缩和内收缩操作来控制其 运动。

具体流程如下:
I 计算种群的适应度值, 并将最优的 4 个位置分别 适应度值为 f(XAttacker )、f(XBarrier )、f(XChaser )f\left(X_{\text {Attacker }}\right) 、 f\left(X_{\text {Barrier }}\right) 、 f\left(X_{\text {Chaser }}\right)f(XAttacker ​)、f(XBarrier ​)、f(XChaser ​) 和 f(XDriver )f\left(X_{\text {Driver }}\right)f(XDriver ​), 设 中 心 位 置 为 Xc=(XAttacker+X)X_c=\left(\quad X_{Attacker}+\quad X\right)Xc​=(XAttacker​+X)

II 将剩下黑猩猩个体的适应度值进行排序, 选择 适应度值最差的个体作为较差点 XsX_sXs​
对较差点 XsX_sXs​ 进行反射操作,
Xr=Xc+α(Xc−Xs)X_r=X_c+\alpha\left(X_c-\mathrm{X}_s\right) Xr​=Xc​+α(Xc​−Xs​)
得到反射点 XrX_rXr​, 反射系数 α\alphaα 取 1 。
III 若 f(Xr)<f(XAttacker )f\left(X_r\right)<f\left(X_{\text {Attacker }}\right)f(Xr​)<f(XAttacker ​), 则反射方向正确, 继续执行扩张操作,
Xe=Xc+β(Xr−Xc)X_e=X_c+\beta\left(X_r-X_c\right) Xe​=Xc​+β(Xr​−Xc​)
得到扩张点 XeX_eXe​, 扩张系数 β\betaβ 取 2。
若 f(Xe)<f(XAttacker )f\left(X_e\right)<f\left(X_{\text {Attacker }}\right)f(Xe​)<f(XAttacker ​), 则用 XeX_eXe​ 代替 XsX_sXs​; 否 则, 用 XrX_rXr​ 代替 XsX_sXs​ 。

IV 若 f(Xs)<f(Xr)f\left(X_s\right)<f\left(X_r\right)f(Xs​)<f(Xr​), 则反射方向错误, 执行 外收缩操作,
Xt=Xc+γ(Xs−Xc)X_t=X_c+\gamma\left(X_s-X_c\right) Xt​=Xc​+γ(Xs​−Xc​)
得到外收缩点 XtX_tXt​, 外收缩系数 γ\gammaγ 取 0.50.50.5 。
若 f(Xt)<f(Xs)f\left(X_t\right)<f\left(X_s\right)f(Xt​)<f(Xs​), 则用 XtX_tXt​ 代替较差点 XsX_sXs​ 。
V\mathrm{V}V 若 f(XAttacker )<f(Xr)<f(Xs)f\left(X_{\text {Attacker }}\right)<f\left(X_r\right)<f\left(X_s\right)f(XAttacker ​)<f(Xr​)<f(Xs​), 则执行内 收缩操作,
Xw=Xc−γ(Xs−Xc)X_w=X_c-\gamma\left(X_s-X_c\right) Xw​=Xc​−γ(Xs​−Xc​)
得到内收缩点 XwX_wXw​, 内收缩系数 γ\gammaγ 取 0.50.50.5 。
若 f(Xw)<f(Xs)f\left(X_w\right)<f\left(X_s\right)f(Xw​)<f(Xs​), 则用 XwX_wXw​ 代替较差点 XsX_sXs​; 否则, 用 XrX_rXr​ 代替较差点 XsX_sXs​ 。
通过运用单纯形法的 4 种操作,可以让最差点在 反射操作下搜索到所有可行的解, 内外收缩操作可以 使最差点摆脱当前位置, 而在扩张操作下可以让最优 解跳出局部最小值, 向距离最差点更远的反方向继续 搜索,从而提高了算法整体的局部开发能力和寻优能 力。由于单纯形法针对的是种群中最差的个体, 对于 种群中其他个体仍然执行黑猩猩原始算法中的随机搜 索, 故而在提高算法的局部搜索能力的同时, 不会降 低种群的多样性。

2.3 群个体记忆机制

在原始 COA 算法中, 通过对群体历史前四个最 优位置的加权记忆, 实现了黑猩猩种群间信息交流, 最终促使个体在搜索空间快速移动寻优, 但这一做法 并末考虑到每个黑猩猩个体自身的搜索经验, 因而, 在结合 COA算法群体信息交流表达式( 5 )的基础上, 引人粒子群算法的个体记忆策略, 具体表达式变为:
X(t+1)=b1∗(X1+X2+X3+X3)/4+b2∗rand⁡1∗[Xbest −X(t)]+rand⁡2∗[Xj(t)−Xi(t)](9)\begin{aligned} &X(t+1)=b_1^*\left(X_1+X_2+X_3+X_3\right) / 4 \\ &+b_2^* \operatorname{rand}_1 *\left[X_{\text {best }}-X(t)\right]+\operatorname{rand}_2 *\left[X_j(t)-X_i(t)\right] \end{aligned} \tag{9} ​X(t+1)=b1∗​(X1​+X2​+X3​+X3​)/4+b2∗​rand1​∗[Xbest ​−X(t)]+rand2​∗[Xj​(t)−Xi​(t)]​(9)
其中, b1b_1b1​ 和 b2b_2b2​ 是 [0,1][0,1][0,1] 间的常数, 分别表示群体交 流和个体经验记忆的系数; rand 表示 [0,1][0,1][0,1] 间的随机 变量; XbestX_{b e s t}Xbest​ 表示第 iii 只黑猩猩所经历过的最佳位置, Xj,Xi,(j≠i)X_j, X_i,(j \neq i)Xj​,Xi​,(j=i) 是记忆过程中记下的随机个体位置。

通过对 b1b_1b1​ 和 b2b_2b2​ 的调节来平衡群体交流和个体记忆对 位置更新的影响。
对比原始位置更新方程式(5), 式(9)增加了两个部 分, 第一个是引人的个体自身记忆信息, 进一步提高 了算法在局部的开发能力和收敛速度, 第二个是随机 记忆的个体位置, 从而起到增强算法种群多样性和全 局勘探的能力。

综上所述, 本文提出 EOSMICOA 算法的运算步 骤如下:
步骤 1: 设置相关参数, 种群规模 NNN 、最大迭代 次数 tmax t_{\text {max }}tmax ​ 、收敛因子 fff 、影响系数 A、CA 、 CA、C 、混沌因子 mmm 等。
步骤 2: 利用 Iteration 混沌映射和精英反向学习 生成初始种群 Xi,i=1,2,…,NX_i, i=1,2, \ldots, NXi​,i=1,2,…,N 。
步骤 3: 计算个体的适应度值, 并确定历史前四
步骤 4:利用单纯形法改变较差个体 XsX_sXs​ 的位置。
步骤 5: 更新 A、CA 、 CA、C, 按照公式 (5) 计算其他 黑猩猩的位置。
步骤 6: 通过粒子群算法改进的群个体记忆机制, 按照公式 (9) 进一步更新黑猩猩位置。
步骤 7: 判断算法是否达到最大迭代次数, 若达 到, 则算法结束, 输出最优位置 XAttacker X_{\text {Attacker }}XAttacker ​; 否则, 执 行步骤 3。

3.实验结果

4.参考文献

[1]黄倩,刘升,李萌萌,郭雨鑫.多策略黑猩猩优化算法研究及其工程应用[J/OL].计算机工程与应用:1-12[2021-10-25].http://kns.cnki.net/kcms/detail/11.2127.TP.20210806.1055.011.html.

5.Matlab代码

6.Python代码

多策略黑猩猩优化算法-附代码相关推荐

  1. 【优化求解】基于多策略黑猩猩优化算法求解单目标优化问题附matlab代码

    1 简介 针对黑猩猩优化算法(Chimp optimization algorithm, ChOA)存在收敛速度慢,精度低和易陷入局部最优值的问题, 提出一种融合多策略的黄金正弦黑猩猩优化算法(ICh ...

  2. 智能优化算法:正余弦优化算法-附代码

    智能优化算法:正余弦优化算法-附代码 文章目录 智能优化算法:正余弦优化算法-附代码 1.算法原理 2.算法流程 3.算法结果 4.参考文献 5.MATLAB代码 6.Python代码 摘要:正 余 ...

  3. 智能优化算法:蚁狮优化算法-附代码

    智能优化算法:蚁狮优化算法-附代码 文章目录 智能优化算法:蚁狮优化算法-附代码 1.算法原理 1.1 蚂蚁的随机游走 1.2蚁狮对蚂蚁随机游走的影响 1.3自适应机制 1.4 精英策略 2.算法步骤 ...

  4. 智能优化算法:多元宇宙优化算法-附代码

    智能优化算法:多元宇宙优化算法-附代码 文章目录 智能优化算法:多元宇宙优化算法-附代码 1.算法原理 2.算法流程图 3.算法结果 4.参考文献 5.MATLAB代码 6.python代码 摘要:多 ...

  5. 一种改进的鲸鱼优化算法-附代码

    一种改进的鲸鱼优化算法 文章目录 一种改进的鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 准反向学习初始化种群 2.2 非线性收敛因子 2.3 自适应权重策略与随机差分法变异策略 3 ...

  6. 黑猩猩优化算法python代码(详细注释)

    黑猩猩优化算法介绍:黑猩猩优化算法(Chimpanzee Optimization Algorithm,COA)是一种启发式优化算法,灵感来自于黑猩猩社会行为中的寻食行为.下面是该算法的代码及原理过程 ...

  7. 自学习策略和Levy飞行的正弦余弦优化算法-附代码

    自学习策略和Levy飞行的正弦余弦优化算法 文章目录 自学习策略和Levy飞行的正弦余弦优化算法 1.正余弦算法 2. 改进的正弦余弦优化算法 2.1 自学习策略 2.2 停滞扰动策略 3.实验结果 ...

  8. 混沌策略和单纯形法改进的鲸鱼优化算法-附代码

    混沌策略和单纯形法改进的鲸鱼优化算法 文章目录 混沌策略和单纯形法改进的鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 混沌反向学习初始化种群 2.2 非线性收敛因子和自适应权重策略 ...

  9. 优选策略的自适应蚁狮优化算法-附代码

    优选策略的自适应蚁狮优化算法 文章目录 优选策略的自适应蚁狮优化算法 1.蚁狮优化算法 2. 改进蚁狮优化算法 2.1 自适应边界 2.2 优选轮盘赌策略 2.3 动态比例系数 3.实验结果 4.参考 ...

最新文章

  1. 构建自主操作系统,阿里为何失败了?
  2. 在Linux 下配置PHP 支援GD
  3. 在CentOS7上部署.net core 控制台应用程序部署为后台服务
  4. 【控制】《鲁棒控制-线性矩阵不等式处理方法》-俞立老师-目录
  5. springsecurity不拦截某个接口_SpringSecurity 默认表单登录页展示流程源码
  6. solr5.0mysql_ik扩展支持Solr配置详解
  7. MFC中的CFileFind类
  8. Linux串口(serial、uart)驱动程序设计
  9. 从学生宿舍到全球舞台: 米哈游的成长故事
  10. matlab求一维热传导方程数值解代码,一维热传导方程数值解法及matlab实现
  11. 用golang从企业微信里获取打卡记录的方法
  12. 微信公众账号怎么申请
  13. [原]最初的梦想---关于野猪和家猪
  14. 1. VCS仿真原理——当我们谈论simv时,我们在谈论什么
  15. 服务器的主板芯片组,关于P8系列服务器主板芯片组的一些事儿
  16. PyTorch中的pack_padded_sequence和pad_packed_sequence
  17. 聊天记录怎么录视频 微信聊天记录屏幕录制
  18. 关于“2021中国隧道与地下空间大会暨中国(城市)地下空间学会(筹)成立大会”的通知
  19. 点击唤起电话功能和企业微信聊天窗口事件(H5)
  20. Vue实现树形菜单组件

热门文章

  1. 现实总比相像中好些——西单图书大厦活动侧记
  2. 推荐系统:ImportError: cannot import name ‘evaluate‘ from ‘surprise
  3. 那个不玩“抖音”的90后,后来怎么样了?
  4. Python 里最强的地图绘制神器
  5. 专家纵论智能机器社会的风险与解决方案
  6. 闲来无事,做个了批量看图的页面
  7. 织梦DEDECMS零基础学会如何做网站
  8. 困惑与破题:人人喊打的屏幕时间究竟对孩子做了什么?
  9. html中段落标志中标注文件子标题的是,html中段落标志中,标注文件子标题的是?()...
  10. 刚刚,清华集成电路学院成立!校友占比半导体产业半壁江山,现在瞄准“中国芯”...