• 一种基于混合策略的灰狼优化算法-附代码


    一种基于混合策略的灰狼优化算法


    摘要:灰狼优化算法作为一种群体智能算法,不可避免地会产生陷入局部寻优和收敛速度慢的问题。本文提出一种混合的改进策略,把动态权重和动态种群的结合起来,在提高收敛速度的同时,产生较好的解。

    1.灰狼优化算法

    基础灰狼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107716390

    2. 改进灰狼优化算法

    提出一种动态权重策略,基于权重的个体狼位置计算如式(6),(7)所示 。
    w 1 = ∣ X 1 ∣ ∣ X 1 ∣ + ∣ X 2 ∣ + ∣ X 3 ∣ , w 2 = ∣ X 2 ∣ ∣ X 1 ∣ + ∣ X 2 ∣ + ∣ X 3 ∣ , w 3 = ∣ X 3 ∣ ∣ X 1 ∣ + ∣ X 2 ∣ + ∣ X 3 ∣ (6) w_{1}=\frac{\left|X_{1}\right|}{\left|X_{1}\right|+\left|X_{2}\right|+\left|X_{3}\right|}, w_{2}=\frac{\left|X_{2}\right|}{\left|X_{1}\right|+\left|X_{2}\right|+\left|X_{3}\right|}, w_{3}=\frac{\left|X_{3}\right|}{\left|X_{1}\right|+\left|X_{2}\right|+\left|X_{3}\right|}\tag{6} w1=X1+X2+X3X1,w2=X1+X2+X3X2,w3=X1+X2+X3X3(6)

    X ( t + 1 ) = ( w 1 X 1 + w 2 X 2 + w 3 X 3 ) / 3 (7) X(t+1)=\left(w_{1} X_{1}+w_{2} X_{2}+w_{3} X_{3}\right) / 3 \tag{7} X(t+1)=(w1X1+w2X2+w3X3)/3(7)

    动态权重策略是一种对迭代过程进行改进的策略 ,能够很大程度上提高灰狼优化算法的收敛速度,但全局搜索能力并不是很好。

    采用动态种群的思想,每一次迭代完成后,把适应度值较低的一半个体狼信息进行改变,可以及时地跳出局部寻优。基于动态种群的计算如式(8)~(11)所示 ,这 4 个公式并不是按顺序依次执行,而是每个公式以 1/4 的概率执行。
    X ( t + 1 ) = X α ± ( u b − l b ⋅ r + l b ) (8) X(t+1)=X_{\alpha} \pm(u b-l b \cdot r+l b) \tag{8} X(t+1)=Xα±(ublbr+lb)(8)

    X ( t + 1 ) = X β ± ( u b − l b ⋅ r + l b ) (9) X(t+1)=X_{\beta} \pm(u b-l b \cdot r+l b)\tag{9} X(t+1)=Xβ±(ublbr+lb)(9)

    X ( t + 1 ) = X δ ± ( u b − l b ⋅ r + l b ) (10) X(t+1)=X_{\delta} \pm(u b-l b \cdot r+l b) \tag{10} X(t+1)=Xδ±(ublbr+lb)(10)

    X ( t + 1 ) = X δ ± ( u b − l b ⋅ r + l b ) (11) X(t+1)=X_{\delta} \pm(u b-l b \cdot r+l b) \tag{11} X(t+1)=Xδ±(ublbr+lb)(11)

    本文对迭代过程进行改进,通过把动态权重和动态种群结合起来,提出一种混合策略的灰狼优化算法。
    改进后的灰狼优化算法主要步骤:
    (1)在狼群变量的上限和下限中随机初始化狼群和初始化算法参数。
    (2)计算每个个体狼的适应度值。
    (3)选择适应度排在前 3 的个体狼作为 , α , β , δ \alpha,\beta,\delta α,β,δ 狼。
    (4)根据式(1),(2),(3),(6),(7)计算其它狼的位置。
    (5)重新计算所有个体狼的适应度值。

    3.实验结果

    请添加图片描述

    4.参考文献

    [1]牛家彬,王辉.一种基于混合策略的灰狼优化算法[J].齐齐哈尔大学学报(自然科学版),2018,34(01):16-19+32.

    5.Matlab代码

    6.Python代码

  • 相关阅读:
    C++ Reference: Standard C++ Library reference: C Library: cstdio: fflush
    从“1L 小钢炮”到 “PC界变形金刚”——Tiny助力企业数智转型的十年进化之路
    java 实现布隆过滤器(BloomFilter)
    【JavaWeb的从0到1构建知识体系(七)】JUnit和JUL日志系统
    【pytorch】深度学习准备:基本配置
    微信小程序授权登录?
    LomBok常用注解及详细介绍
    Cocos Creator3.8 实战问题(三)去除scrollview背景色和label 对齐方式设置无效问题
    i18n国际化配置文件配置步骤
    为什么说指针是c语言的灵魂?
  • 原文地址:https://blog.csdn.net/u011835903/article/details/125417457