狼群算法(Wolf Pack Algorithm,WPA)是一种模拟狼群捕食行为及其猎物分配方式的群体智能优化算法。它由吴虎胜等人在2013年提出,算法采用了基于人工狼主体的自下而上的设计方法和基于职责分工的协作式搜索路径结构。它通过抽象狼群搜索、围攻以及更新换代的三种行为方式来实现优化。
一、狼群角色与行为
1. 角色分类
狼群算法模拟了狼群的社会分工和捕食行为,主要包括头狼、探狼和猛狼三种角色:
(1)头狼(Alpha Wolf):狼群的首领,最强壮的狼,通过内部竞争产生,不执行游走、召唤、围攻三种智能行为,直接进入下一次迭代。负责指挥狼群的行动,通常是离猎物气味浓度最高的狼,其角色在搜寻过程中是动态变化的。
(2)探狼(Scout Wolf):狼群的先锋,精锐的狼,负责在猎物可能出现的范围内根据猎物留下的气味进行搜索。在初期,狼群会派出一部分狼作为探狼,在环境四周搜寻猎物。探狼在搜寻过程中如果发现猎物气味浓度更高,就作为头狼,呼唤其他的狼进行围捕行为。
(3)猛狼(Fierce Wolf):猛狼感应到头狼的呼唤,就立刻向头狼位置奔袭,在奔袭的过程中,若是发现猎物的适应度更高,则立刻替代原来的头狼,指挥其他狼行动。
2. 行为模式
(1)游走行为(Scout Behavior):模拟狼群寻找猎物的过程。探狼在解空间中搜索猎物,计算当前位置的猎物气味浓度,若大于头狼所感知的气味浓度,则表明离猎物较近,可能替代头狼并发起召唤行为;否则,探狼继续游走直到与头狼距离小于一定值时,转入围攻行为。
(2)召唤行为(Call Behavior):头狼通过嚎叫发起,召集周围的猛狼向其所在位置靠拢。
(3)围攻行为(Encircle Behavior):猛狼已离猎物较近时,联合探狼对猎物进行围攻以期捕获。
二、算法机制
(1)头狼产生规则:初始解空间中,具有最优目标函数值的人工狼即为头狼;在迭代过程中,将每次迭代后最优狼的目标函数值与前一代中头狼的值进行比较,若更优则对头狼位置进行更新,若存在多匹最优狼,则随机选一匹成为头狼。
(2)“强者生存”的狼群更新机制:猎物按照“由强到弱”的原则进行分配,导致弱小的狼会被饿死。即在算法中去除目标函数值最差的R匹人工狼,同时随机产生R匹新的人工狼。R的取值与群体更新比例因子β有关,保证了狼群个体多样性和避免算法陷入局部最优。
三、算法实现步骤
狼群算法的实现步骤通常包括以下步骤,同时狼群算法(WPA)的数学表达式涉及到狼群的三种智能行为:游走行为、召唤行为和围攻行为。
(1)数值初始化:初始化狼群中人工狼的位置、种群数目、最大迭代次数、探狼比例因子、最大游走次数、距离判定因子、步长因子、更新比例因子等参数。
设狼群的猎场空间为一个N×D的欧式空间,其中为狼群中人工狼总数,为待寻优的变量数。
某一人工狼的状态可表示为,其中为第匹人工狼在欲寻优的第维变量空间中所处位置。
人工狼所感知到的猎物气味浓度为,其中