灰狼算法
1. 简介
灰狼算法(Grey Wolf Optimization Algorithm, GWO)是2014年Mirjalili S(Mirjalili S, Mirjalili S M, Lewis A. Grey wolf optimizer [J]. Advances in Engineering Software, 2014, 69 (3): 46-61)提出的一种群智能优化算法。并验证其在求解精度、稳定性等指标优于其他典型算法。
它算是比较新的算法,目前应用的比较多,但基本在起步阶段。个人感觉和“粒子群”算法(鸟群)比较相似,也是一种比较适合连续型寻优的算法。
2. 基本思想
基本思想是:灰狼算法是受灰狼启发的新型优化算法, 该算法模仿灰狼的狩猎和社会等级行为。该算法的主要运行流程如下: 首先随机生成一组解组成初始灰狼群,然后经过迭代筛选出种群中最优的三匹狼(α、 β 和δ)(类似于粒子群中最优解),由它们带领其余狼朝着搜索空间的最优方向移动。种群中的其他灰狼(ω) 将依据三匹头狼改变位置,从而搜寻更优解。
其实,我认为所有启发式算法的本质都是尽快尽量多的“遍历”,但是没办法同时达到。于是退而求其次,得到最优解。它最核心的地方在于,搜索的时候在“广度”和“深度”方面取得一个平衡。如果一味求搜索的广,那是枚举的想法,对于大规模问题不太现实,没办法遍历所有的可行解;如果一味求搜索的深,也就是求好,那容易陷入局部最优。所以,既要考虑广度也要考虑深度,也就是既要考虑往好的方向走,也要考虑邻域解。这就像寻人,先以大城市为据点(广度),再在周边搜寻(深度)。
以粒子群为例,它要在当前最好解和全局最好解之间通过系数来调节平衡。(其实,贝叶斯也是类似的思路吧,在先验信息和样本信息间调节。)
灰狼算法,领头的三只狼,决定了搜索的广度,其它灰狼(ω)在邻域内搜寻保持着搜索的深度。
3. 在调度领域的应用
调度是一个典型的离散优化问题。所以需要对灰狼算法改进一下才能使用。
算法迭代过程中所涉及的位置更新分为两部分: 其一是α、 β 和δ狼的位置更新, 其二是 (ω)狼的位置更新。
所以往往需要对这两块加以处理,这是算法的核心所在。