2020 智能优化算法:蜉蝣算法 - 附代码


文章目录

  • 2020 智能优化算法:蜉蝣算法 - 附代码
  • 1.算法原理
  • 1.1 雄性蜉蝣的运动
  • 1.2 雌性蜉蝣的运动
  • 1.3 蜉蝣交配
  • 2.算法结果
  • 3.参考文献
  • 4.Matlab代码



摘要:蜉蝣算法(mayfly algorithm,MA)是于2020年提出的新型之智能优化算法。该算法具有寻优能力强等优点,具有较强的研究价值。

1.算法原理

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

它的灵感来源于蜉蝣的社会行为,特别是它们的交配过程。我们假设蜉蝣从卵中孵化出来后,已经是成虫了,而最适合的蜉蝣存活下来,而不管它们活多久。每个蜉蝣在搜索空间中的位置代表了问题的潜在解决方案。算法的工作原理如下。最初,随机产生两组蜉蝣,分别代表雄性和雌性种群。也就是说,每个蜉蝣被随机放置在问题空间中,作为由d维向量表示的候选解智能优化算法:蜉蝣算法 - 附代码_1024程序员节,并根据预先确定的目标函数智能优化算法:蜉蝣算法 - 附代码_机器学习_02对其性能进行评价。蜉蝣的速度智能优化算法:蜉蝣算法 - 附代码_人工智能_03定义为其位置的变化,每个蜉蝣的飞行方向是个体和社会飞行经验的动态交互作用。特别是,每个蜉蝣都会调整自己的轨迹,使其朝向目前为止的个人最佳位置(智能优化算法:蜉蝣算法 - 附代码_1024程序员节_04),以及迄今为止群中任何蜉蝣所获得的最佳位置(智能优化算法:蜉蝣算法 - 附代码_人工智能_05)。

1.1 雄性蜉蝣的运动

雄性蜉蝣成群的聚集,意味着每只雄性蜉蝣的位置都是根据自己和邻居的经验来调整的。假设智能优化算法:蜉蝣算法 - 附代码_优化算法_06是时间步长智能优化算法:蜉蝣算法 - 附代码_算法_07时蜉蝣智能优化算法:蜉蝣算法 - 附代码_人工智能_08在搜索空间中的当前位置,通过在当前位置上添加速度智能优化算法:蜉蝣算法 - 附代码_优化算法_09来改变位置。这可以表述为:
智能优化算法:蜉蝣算法 - 附代码_人工智能_10
考虑到雄性蜉蝣总是在水面上几米处表演舞蹈,我们假设它们不能发展出很快的速度,而且它们会不断地移动。因此,雄性蜉蝣的速度计算如下:
智能优化算法:蜉蝣算法 - 附代码_算法_11
其中智能优化算法:蜉蝣算法 - 附代码_算法_12是蜉蝣智能优化算法:蜉蝣算法 - 附代码_人工智能_08智能优化算法:蜉蝣算法 - 附代码_算法_14维度智能优化算法:蜉蝣算法 - 附代码_算法_07时刻的速度。智能优化算法:蜉蝣算法 - 附代码_1024程序员节_16代表t时刻的位置。a1和a2是社会作用正吸引系数。pbest代码蜉蝣历史最有位置。gbest代表最佳蜉蝣位置。智能优化算法:蜉蝣算法 - 附代码_人工智能_17是蜉蝣的能见度系数,控制蜉蝣的能见范围。rp代表当前位置与pbest的距离。rg代表当前位置与gbest的距离。距离的计算如下:
智能优化算法:蜉蝣算法 - 附代码_机器学习_18
对于算法的运行来说,群中最好的蜉蝣继续表演他们特有的上下舞蹈是很重要的。因此,最好的蜉蝣必须不断地改变它们的速度,在这种情况下,计算如下:
智能优化算法:蜉蝣算法 - 附代码_机器学习_19
其中d是舞蹈系数,r为[-1,1]之间的随机数。这种上下移动在算法中引入了一个随机元素。

1.2 雌性蜉蝣的运动

与雄性不同,雌性蜉蝣不会成群聚集。它们会飞到雄性来繁殖。假设智能优化算法:蜉蝣算法 - 附代码_人工智能_20为在时刻t时的蜉蝣i,它的位置的更新通过增加速度来更新:
智能优化算法:蜉蝣算法 - 附代码_算法_21
鉴于吸引过程是随机的,我们决定将其建模为一个确定性过程。也就是说,根据它们的健状属性,最好的雌性应该被最好的雄性吸引,第二好的雌性应该被第二好的雄性吸引,等等。因此,考虑到极小化问题,速度的计算如下:
智能优化算法:蜉蝣算法 - 附代码_机器学习_22
其中智能优化算法:蜉蝣算法 - 附代码_算法_12代表速度。智能优化算法:蜉蝣算法 - 附代码_优化算法_24代表蜉蝣的位置。智能优化算法:蜉蝣算法 - 附代码_人工智能_25是一个正系数。智能优化算法:蜉蝣算法 - 附代码_人工智能_17是一个固定的能见系数。智能优化算法:蜉蝣算法 - 附代码_人工智能_27代表雌性蜉蝣距离雄性蜉蝣的距离。智能优化算法:蜉蝣算法 - 附代码_算法_28是一个随机游走系数,当雌性没有被雄性攻击时起作用。r是一个在范围[-1,1]的随机数。

1.3 蜉蝣交配

交叉算子代表了两个蜉蝣的交配过程:从雄性种群中选择一个亲本,从雌性种群中选择一个。选择父母的方式与雄性吸引雌性的方式相同。特别是,选择可以是随机的,也可以基于它们的适应度函数。在后者中,最好的雌性与最好的雄性繁殖,次好的雌性与次好的雄性繁殖。交叉的结果是两个后代,其产生如下:
智能优化算法:蜉蝣算法 - 附代码_人工智能_29
其中male是父本,female是母本。L是一个特定范围的随机数。

蜉蝣算法流程如下:

Step1 . 初始化雌性蜉蝣,雄性蜉蝣,设定参数。

Step2 . 计算适应度值,并且排序,获取pbest和gbest。

Step3.依次跟新雄性蜉蝣,雌性蜉蝣位置,并且交配。

Step4.计算适应度,并更新pbest和gbest

Step5.是否满足停止条件,如果满足则退出,输出结果,否则重复执行Step3-5。

2.算法结果

智能优化算法:蜉蝣算法 - 附代码_机器学习_30

3.参考文献

[1]Konstantinos Zervoudakis,Stelios Tsafarakis. A mayfly optimization algorithm[J]. Computers & Industrial Engineering,2020,145.

4.Matlab代码

个人资料介绍