• 【优化算法】简述遗传算法(GA)原理
  • 【优化算法】简述灰狼优化算法(GWO)原理

前言:

灰狼优化算法(Grey Wolf Optimizer,GWO)由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能优化算法。该算法受到了灰狼捕食猎物活动的启发而开发的一种优化搜索方法,它具有较强的收敛性能、参数少、易实现等特点。近年来受到了学者的广泛关注,它己被成功地应用到了车间调度、参数优化、图像分类等领域中。


算法原理:

灰狼隶属于群居生活的犬科动物,且处于食物链的顶层。灰狼严格遵守着一个社会支配等级关系。如图:

社会等级第一层:狼群中的头狼记为  狼主要负责对捕食、栖息、作息时间等活动作出决策。由于其它的狼需要服从 狼的命令,所以  狼也被称为支配狼。另外,  狼不一定是狼群中最强的狼,但就管理能力方面来说,  狼一定是最好的。

社会等级第二层 狼,它服从于  狼,并协助  狼作出决策。在  狼去世或衰老后, 狼将成为  狼的最候选者。虽然  狼服从  狼,但  狼可支配其它社会层级上的狼。

社会等级第三层 狼,它服从  、 狼,同时支配剩余层级的狼。 狼一般由幼狼、哨兵狼、狩猎狼、老年狼及护理狼组成。

社会等级第四层 狼,它通常需要服从其它社会层次上的狼。虽然看上去  狼在狼群中的作用不大,但是如果没有  狼的存在,狼群会出现内部问题如自相残杀。

GWO 优化过程包含了灰狼的社会等级分层跟踪包围攻击猎物等步骤,其步骤具体情况如下所示。

1)社会等级分层(Social Hierarchy)当设计 GWO 时,首先需构建灰狼社会等级层次模型。计算种群每个个体的适应度,将狼群中适应度最好的三匹灰狼依次标记为  、 ,而剩下的灰狼标记为 。也就是说,灰狼群体中的社会等级从高往低排列依次为;  、  及 。GWO 的优化过程主要由每代种群中的最好三个解(即   、 )来指导完成。

2)包围猎物( Encircling Prey )灰狼捜索猎物时会逐渐地接近猎物并包围它,该行为的数学模型如下:

式中:t 为当前迭代次数:。表示 hadamard 乘积操作;A 和 C 是协同系数向量;Xp 表示猎物的位置向量; X(t) 表示当前灰狼的位置向量;在整个迭代过程中 a 由2 线性降到 0; r1 和 r2 是 [0,1] 中的随机向量。

3)狩猎( Hunring)

灰狼具有识别潜在猎物(最优解)位置的能力,搜索过程主要靠  、 灰狼的指引来完成。但是很多问题的解空间特征是未知的,灰狼是无法确定猎物(最优解)的精确位置。为了模拟灰狼(候选解)的搜索行为,假设  、 具有较强识别潜在猎物位置的能力。因此,在每次迭代过程中,保留当前种群中的最好三只灰狼(  、 ),然后根据它们的位置信息来更新其它搜索代理(包括 )的位置。该行为的数学模型可表示如下:

式中: 分别表示当前种群中  、 的位置向量;X表示灰狼的位置向量;  分别表示当前候选灰狼与最优三条狼之间的距离;当|A|>1时,灰狼之间尽量分散在各区域并搜寻猎物。当|A|<1时,灰狼将集中捜索某个或某些区域的猎物。

从图中可看出,候选解的位置最终落在被  、 定义的随机圆位置内。总的来说,  、 需首先预测出猎物(潜
在最优解)的大致位置,然后其它候选狼在当前最优兰只狼的指引下在猎物附近随机地更新它们的位置。

4)攻击猎物(Attacking Prey)构建攻击猎物模型的过程中,根据2)中的公式,a值的减少会引起 A 的值也随之波动。换句话说,A 是一个在区间[-a,a](备注:原作者的第一篇论文里这里是[-2a,2a],后面论文里纠正为[-a,a])上的随机向量,其中a在迭代过程中呈线性下降。当 A 在[-1,1]区间上时,则捜索代理(Search Agent)的下一时刻位置可以在当前灰狼与猎物之间的任何位置上。

5)寻找猎物(Search for Prey)灰狼主要依赖  、 的信息来寻找猎物。它们开始分散地去搜索猎物位置信息,然后集中起来攻击猎物。对于分散模型的建立,通过|A|>1使其捜索代理远离猎物,这种搜索方式使 GWO 能进行全局搜索。GWO 算法中的另一个搜索系数是C。从2)中的公式可知,C向量是在区间范围[0,2]上的随机值构成的向量,此系数为猎物提供了随机权重,以便増加(|C|>1)或减少(|C|<1)。这有助于 GWO 在优化过程中展示出随机搜索行为,以避免算法陷入局部最优。值得注意的是,C并不是线性下降的,C在迭代过程中是随机值,该系数有利于算法跳出局部,特别是算法在迭代的后期显得尤为重要。


参考文献:

加工时间可控的多目标车间调度问题研究

Grey Wolf Optimizer

【优化算法】简述灰狼优化算法(GWO)原理相关推荐

  1. 【优化算法】灰狼优化算法(GWO)【含Matlab源码 1305期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]灰狼优化算法(GWO)[含Matlab源码 1305期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专栏优化 ...

  2. 【Matlab】智能优化算法_灰狼优化算法GWO

    [Matlab]智能优化算法_灰狼优化算法GWO 1.背景介绍 2.基本思想 2.1 等级制度 2.2 狩猎方式 3.公式推导 3.1 社会等级制度 3.2 包围猎物 3.3 包围猎物 3.4 攻击猎 ...

  3. 智能优化算法之灰狼优化算法(GWO)的实现(Python附源码)

    文章目录 一.灰狼优化算法的实现思路 1.社会等级结构分级 2.包围猎物 3.攻击猎物 4.搜索猎物 二.算法步骤 三.实例 一.灰狼优化算法的实现思路 灰狼优化算法(Grey Wolf Optimi ...

  4. (源码)群体智能优化算法之灰狼优化(Grey Wolf Optimizer,GWO)

    获取更多资讯,赶快关注上面的公众号吧! 文章目录 第三十三章 灰狼优化(Grey Wolf Optimizer,GWO) 启发 数学模型和算法 社会等级 包围捕食 狩猎 攻击猎物(利用) 搜索猎物(探 ...

  5. 灰狼优化matlab,混合灰狼优化(HGWO,DE-GWO)算法matlab源码

    说明:博主所有博文及源码中示例所用的支持向量机算法均使用faruto改进的LIBSVM工具箱3.1版本,详细可参见faruto博客http://blog.sina.com.cn/u/129136507 ...

  6. 群体智能优化算法之灰狼优化算法

    转载自我的个人网站 https://wzw21.cn/2022/01/07/gwo/ 目录 灰狼优化算法 灰狼群体 模型与算法 灰狼优化算法 灰狼群体 灰狼属于犬科动物,被认为是顶级的掠食者,它们处于 ...

  7. 种群优化算法:灰狼优化器

    灰狼算法是 2014 年开发出的一种元启发式随机群体智能算法. 它的思路是基于灰狼群狩猎模型. 狼群内有四种类型阶层:阿尔法.贝塔.德尔塔.和欧米茄. 阿尔法阶层在群体决策和管理方面拥有最大的&quo ...

  8. 【优化算法】 简述遗传算法(GA)原理

    [优化算法]简述遗传算法(GA)原理 [优化算法]简述灰狼优化算法(GWO)原理 前言 遗传算法GA(Genetic algorithm)由美国密西根大学 J. Holland 教授于90年代提出来的 ...

  9. 灰狼优化算法(GWO)附代码

    文章目录 1 算法介绍 2 算法原理 3. 实现步骤 4. MATLAB代码实现GWO算法 4.1 main.m 4.2 运行结果 1 算法介绍 灰狼优化算法(Grey Wolf Optimizer, ...

最新文章

  1. django 链接地址匹配流程
  2. 一些蛮好的题目,学习
  3. mysql localhost和127.0.0.1的区别
  4. GridView绑定数据源 绑定DataReader /DataSet /DataTable
  5. c语言是结构化 模块化,c语言是完全模块化和结构化的语言,怎么理解,什么是模块化和结构化...
  6. 再窥--单链表和顺序存储
  7. 程序员的十个层次 你属于哪一层?小菜看后
  8. echo(),print(),print_r(),var_dump()的区别
  9. 支持向量机matlab代码程序_支持向量机(SVM)小结
  10. js使用深度优先遍历实现getElmentById(id)
  11. 重叠面积_重叠面积——动点产生的重叠面积问题
  12. 为什么你的MySQL跑得很慢?
  13. Monkey命令详解
  14. javascript判断一个数是否是素数(质数)
  15. 英语语音篇 - 音标体系
  16. intellij idea文件颜色代表的含义
  17. A100 Jeston TX1TX2使用教程-接口说明
  18. pyqt5 制作壁纸切换工具实例 第一章
  19. LTspice基础教程-008.LTspice PWL设置
  20. 联想电脑(win10)如何保存高清锁屏壁纸

热门文章

  1. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
  2. 微信聊天自动解析html文本,微信小程序纯文本实现@功能
  3. Arduino 串口数据读写
  4. javascript 模拟退格键_js实现模拟计算器退格键删除文字效果的方法
  5. css将两张图片叠加(简易方法)
  6. 七牛服务器提供的压缩图片的方法
  7. 【BFS】大胖子走迷宫
  8. 【css设置滚动条粗细】
  9. python知道章节答案_智慧树知道Python数据分析与数据可视化答案,章节期末教程考试网课答案...
  10. 网络模型(ISO,TCP/IP)