1.算法原理

蜉蝣是属于蜉蝣目的昆虫,是古翅目昆虫的一部分。据估计,全世界有超过3000种蜉蝣。它们的名字来源于它们主要出现在英国的五月。从卵中孵化出来后,肉眼可以看到未成熟的蜉蝣,它们花了几年时间成长为水生若虫,直到它们准备好成年后上升到水面。一只成年蜉蝣只存活几天,直到它完成繁殖的最终目标。为了吸引雌性,大多数雄性成虫成群结队地聚集在水面上几米的地方,通过特有的上下运动模式,表演一场婚礼舞蹈。雌鸟飞入这些蜂群,为了与空中的雄性交配。交配可能只持续几秒钟,当交配完成后,雌鸟将卵落在水面上,它们的生命周期就结束了。

它的灵感来源于蜉蝣的社会行为,特别是它们的交配过程。我们假设蜉蝣从卵中孵化出来后,已经是成虫了,而最适合的蜉蝣存活下来,而不管它们活多久。每个蜉蝣在搜索空间中的位置代表了问题的潜在解决方案。算法的工作原理如下。最初,随机产生两组蜉蝣,分别代表雄性和雌性种群。也就是说,每个蜉蝣被随机放置在问题空间中,作为由d维向量表示的候选解x = ( x 1 , . . . , x d ) x = (x_1,...,x_d)x=(x1​,...,xd​),并根据预先确定的目标函数f ( x ) f(x)f(x)对其性能进行评价。蜉蝣的速度v = ( v 1 , . . . , v d ) v = (v_1,...,v_d)v=(v1​,...,vd​)定义为其位置的变化,每个蜉蝣的飞行方向是个体和社会飞行经验的动态交互作用。特别是,每个蜉蝣都会调整自己的轨迹,使其朝向目前为止的个人最佳位置(p b e s t pbestpbest),以及迄今为止群中任何蜉蝣所获得的最佳位置(g b e s t gbestgbest)。

1.1 雄性蜉蝣的运动

【优化求解】蜉蝣算法matlab源码_优化求解

1.2 雌性蜉蝣的运动

【优化求解】蜉蝣算法matlab源码_matlab_02

1.3 蜉蝣交配

【优化求解】蜉蝣算法matlab源码_matlab_03

2.算法结果

【优化求解】蜉蝣算法matlab源码_matlab_04