麻雀搜索算法(SSA)是基于麻雀反捕食和觅食行为的元启发式优化算法。
麻雀的觅食行为分为两种主要类型:生产者和拾荒者。生产者积极寻找潜在的食物来源,而拾荒者则会抢夺生产者食物。
麻雀搜索算法(SSA)原理
麻雀搜索算法(SSA)中的每只麻雀都在不断监视邻居的行为。当麻雀采用不同的觅食策略时,个体保留的能量会被很好地用于追求食物,从而获得更多食物。还有一点需要注意的是,搜索空间内的鸟类更容易受到捕食者的攻击,因此需要寻找更安全的位置。虽然中心的鸟类可以通过靠近邻居来最大限度地减少他们的危险范围。当一只鸟发现捕食者时,会发出预警声,以便整个群体飞离危险源。
麻雀搜索算法(SSA)模型
根据以上对麻雀的描述,可以建立一个数学模型来构建SSA算法。
在算法模拟实验中,使用虚拟麻雀来追踪食物来源,其位置向量表示为:
其中麻雀的数量用N表示,要优化的维数用D表示。那么,下面的向量可以表示所有麻雀的适应度值:
其中每一行的值F(X)
j∈{1,2,…,D}j∈{1,2,…,D}R2∈[0,1]R2∈[0,1]ST∈[0.5,1.0]ST∈[0.5,1.0]α∈(0,1]α∈(0,1]1×D1×DR2<STR2<STR2≥ST
上面说到的,拾荒者会继续追踪生产者,直到这些生产者找到好的食物来源,这样它们就可以离开它们现在的位置去寻找目标食物来源。如果它们能赢,拾荒者将从生产者那里获得食物;否则,它们将继续执行警惕任务。拾取者根据等式更新它们的位置。
xp,jxp,jxworst,jxworst,j1×D1×D−1−1A+=AT(AAT)−1A+=AT(AAT)−11×D1×Di>N/