Flask接口签名sign原理与实例代码浅析
226
2022-11-03
多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)
此算法应用的面也很广,很值得学习。在电力系统领域也是特别棒的:
目录
1 蚂蚁狮子概述(ALO)
2 数学建模
2.1 蚂蚁的随机游走
2.2蚁狮的陷阱蚂蚁的影响
2.3 蚂蚁掉入陷阱,蚁狮的捕食
2.4 位置更新
2.5 精英策略
3 完整Matlab代码实现
3.1 Matlab代码
3.2 运行结果
4 多目标蚁狮优化算法 (Matlab代码实现)
1 蚂蚁狮子概述(ALO)
蚁狮或所谓的涂鸦虫是蚁蛉科家族的成员,属于神经翅目(网翅昆虫)。蚁狮的生命有两个关键阶段:幼虫和成虫。成年期仅持续 3-5 周,用于繁殖。另一方面,生命周期的延长阶段,即幼虫阶段,大部分用于猎杀他们最喜欢的猎物,即蚂蚁。蚁狮幼虫的狩猎行为独特而迷人。如图1所示,是蚂蚁狮子和它的狩猎机制。
它们沿着圆形路径移动,并用它们巨大的下颚扔出沙子,在沙质土壤中形成小的(1-3 英寸长)漏斗形坑,如图2所示,以诱捕蚂蚁。
他们躲在坑底下,等待蚂蚁或小昆虫被困。漏斗形坑的边缘非常锋利,小昆虫无法逃脱,很容易掉到陷阱底部,如图3所示。蚁狮还不断将沙子扔向陷阱的外缘,以阻止猎物的任何逃跑尝试。
最后,昆虫滑入坑底,被拉到土壤下并被蚁狮吃掉。猎物的残骸被扔到坑外。之后,蚁狮为后续的目标猎物修改坑。蚁狮的饥饿程度越高,它们挖的陷阱就越大。通过这种方式,蚁狮已经进化和调整,以提高它们的生存前景。
2 数学建模
2.1 蚂蚁的随机游走
对于这种可随机修改的问题,找到最佳算法是一项具有挑战性的任务。 蚂蚁在优化的每一步都会以任意行走的方式改变它们的位置,数学上可表示为式(2-1):
式中:X(t)为蚂蚁的随机游走步数集; cumsum表示计算累加和;k为随机游走的步数(本文取为最大迭代次数);而r(t)为一个随机函数,定义为:
式中:rand为[0,1]上均匀分布的随机数。图4模拟了蚂蚁的三次随机游走过程(h取50),可以看出随机游走过程有较强的搜索能力。
鉴于每个搜索空间都是有限的,即有一个边界,所以出于这个原因,蚂蚁的任意行走被限制在搜索空间的边界内,使用最小—-最大归一化,如式(2-3):
式中:
为第
维变量随机游走的最小值;
为第
维变量随机游走的最大值;
为第
维变量在第代的最小值;
为第
维变量在第代的最大值。
2.2蚁狮的陷阱蚂蚁的影响
蚂蚁在随机游走过程中其行动会受到蚁狮陷阱的影响,数学上表示为:
式中:
为所有变量在第
代的最小值;
为所有变量在第
代的最大值;
是第
只蚂蚁在第代的最小值;
是第
只蚂蚁在第代的最大值;
为第
只蚂蚁选择的相应的蚁狮在第
代的位置。
2.3 蚂蚁掉入陷阱,蚁狮的捕食
每只蚂蚁只能被一只蚁狮捕获,某只蚂蚁具体要被哪只蚁狮捕获是通过轮盘赌(RouletteWheel)策略来选择的,适应度越高的蚁狮有着更高的捕获蚂蚁的机会。另外,蚁狮可以构造陷阱,蚂蚁一旦落入陷阱,蚁狮就会向外扬沙以使蚂蚁不至于逃脱,这时蚂蚁随机游走的范围将急剧缩小。数学上表示为:
式中:是比例系数;
为最大迭代次数;
为一随迭代次数增大的数.
2.4 位置更新
当某只蚂蚁的适应度变得高于蚁狮时﹐即认为其被蚁狮捕获,此时蚁狮会根据蚂蚁的位置来更新其位置,表示为:
式中:
为第
只蚂蚁在第
代的位置;
为适应度函数。
2.5 精英策略
每一次迭代获得的适应度最好的蚁狮被认为是精英蚁狮。精英蚁狮将影响所有蚂蚁的行动。第t只蚂蚁在第t +1代的位置由下式确定:
式中:
为蚂蚁在一只由轮盘赌在第
代选择到的蚁狮附近随机游走第
步产生的值;
为在第
代的精英蚁狮周围的随机游走第
步产生的值。可以取随机游走步数内的任何值,本文取
。
3 完整Matlab代码实现
3.1 Matlab代码
蚂蚁狮子优化算法(完整Matlab代码实现)
3.2 运行结果
F9:
F12:
F23:
4 多目标蚁狮优化算法 (Matlab代码实现)
阅读全文:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~