蝴蝶算法口诀图解?

如题所述

蝴蝶算法口诀图解,如下:

蝴蝶算法(Butterfly Algorithm)是根据蝴蝶受香味吸引飞行的行为而提出的优化算法。算法于2015年提出,效果中规中矩,不过相关的论文数量也不少了。算法的流程和结构非常简单,不过论文对算法的细节描述不够清晰,有些参数意义不明。

蝴蝶算法中,每只蝴蝶的位置代表一个可行解,每只蝴蝶的值表示该位置的香味,每只蝴蝶会向着香味浓度最高位置的蝴蝶飞行,或者向着随机选定的蝴蝶飞行。通过该行为在解空间内搜寻香味浓度最大的位置。

当蝴感觉到另一只蝴蝶在这个区域看发出更多的香味时,就会去靠近,这个阶段被称为全局搜索。另外一种情况,当蝴蝶不能感知大于它自己的香味时,它会随机移动,这个阶段称为局部搜索阶段。

蝴蝶产生的香味涉及到 3 个参数,分别为感觉因子c,刺激强度】和幂指数 a。刺激强度与蝴蝶(解)的适应度相关。

该算法有两个关键步骤:全局搜索阶段和局部搜索阶段。在全局搜索阶段,蝴蝶将向最优解g*移动,可表示为:xt+1 = x' + (r² * g* - x') * fi

其中,x:表示第i个蝴蝶在第t次迭代中的解向量,这里a*表示目前为止的最优解。第2只 蝴 蝶的 香 味用 f;来表示,r为0到1的随机数。局部搜索可表示为x+1 =对 + (r2 *x -x) * f

其中r为0到1的随机数,x和x:表示从解空间中随机选择的第k只和第 j只蝴蝶。在蝴蝶的觅食过程中,全局和局部搜索都会发生,为此,设定一个开关概率p来转换普通的全局搜索和容集的局部搜索。每次迭代用式(4)随机产生一个数r,与开关概率p进行比较来决定进行全局搜索还是局部搜索。

温馨提示:答案为网友推荐,仅供参考