多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab

此算法应用的面也很广,很值得学习。在电力系统领域也是特别棒的: 

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab代码_02

目录

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所示,是蚂蚁狮子和它的狩猎机制。

            

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_最小值_03

它们沿着圆形路径移动,并用它们巨大的下颚扔出沙子,在沙质土壤中形成小的(1-3 英寸长)漏斗形坑,如图2所示,以诱捕蚂蚁。

      

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_04

他们躲在坑底下,等待蚂蚁或小昆虫被困。漏斗形坑的边缘非常锋利,小昆虫无法逃脱,很容易掉到陷阱底部,如图3所示。蚁狮还不断将沙子扔向陷阱的外缘,以阻止猎物的任何逃跑尝试。

     

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab_05

最后,昆虫滑入坑底,被拉到土壤下并被蚁狮吃掉。猎物的残骸被扔到坑外。之后,蚁狮为后续的目标猎物修改坑。蚁狮的饥饿程度越高,它们挖的陷阱就越大。通过这种方式,蚁狮已经进化和调整,以提高它们的生存前景。

2 数学建模 

2.1 蚂蚁的随机游走

对于这种可随机修改的问题,找到最佳算法是一项具有挑战性的任务。 蚂蚁在优化的每一步都会以任意行走的方式改变它们的位置,数学上可表示为式(2-1):

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab代码_06

式中:X(t)为蚂蚁的随机游走步数集; cumsum表示计算累加和;k为随机游走的步数(本文取为最大迭代次数);而r(t)为一个随机函数,定义为:

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_开发语言_07

式中:rand为[0,1]上均匀分布的随机数。图4模拟了蚂蚁的三次随机游走过程(h取50),可以看出随机游走过程有较强的搜索能力。 

   

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_08

鉴于每个搜索空间都是有限的,即有一个边界,所以出于这个原因,蚂蚁的任意行走被限制在搜索空间的边界内,使用最小—-最大归一化,如式(2-3):

          

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_09

 式中:

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab代码_10

为第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_最小值_11

维变量随机游走的最小值;

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab代码_12

为第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_最小值_11

维变量随机游走的最大值;

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_开发语言_14

为第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_最小值_11

维变量在第代的最小值;

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab代码_16

为第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_最小值_11

维变量在第代的最大值。

2.2蚁狮的陷阱蚂蚁的影响

蚂蚁在随机游走过程中其行动会受到蚁狮陷阱的影响,数学上表示为:

    

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_开发语言_18

式中:

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab代码_19

为所有变量在第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_20

代的最小值;

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_21

为所有变量在第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_20

代的最大值;

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_开发语言_23

是第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_20

只蚂蚁在第代的最小值;

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab_25

是第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_20

只蚂蚁在第代的最大值;

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab代码_27

为第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab代码_28

只蚂蚁选择的相应的蚁狮在第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_20

代的位置。                 

2.3 蚂蚁掉入陷阱,蚁狮的捕食

每只蚂蚁只能被一只蚁狮捕获,某只蚂蚁具体要被哪只蚁狮捕获是通过轮盘赌(RouletteWheel)策略来选择的,适应度越高的蚁狮有着更高的捕获蚂蚁的机会。另外,蚁狮可以构造陷阱,蚂蚁一旦落入陷阱,蚁狮就会向外扬沙以使蚂蚁不至于逃脱,这时蚂蚁随机游走的范围将急剧缩小。数学上表示为:

                 

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab_30

式中:是比例系数;

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_31

为最大迭代次数;

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_最小值_32

为一随迭代次数增大的数.

2.4 位置更新

当某只蚂蚁的适应度变得高于蚁狮时﹐即认为其被蚁狮捕获,此时蚁狮会根据蚂蚁的位置来更新其位置,表示为:

   

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_33

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab_34

式中:

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab代码_27

为第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab代码_28

只蚂蚁在第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_20

代的位置;

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_38

为适应度函数。

2.5 精英策略

每一次迭代获得的适应度最好的蚁狮被认为是精英蚁狮。精英蚁狮将影响所有蚂蚁的行动。第t只蚂蚁在第t +1代的位置由下式确定:

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_39

式中:

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab_34

为蚂蚁在一只由轮盘赌在第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_20

代选择到的蚁狮附近随机游走第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_42

步产生的值;

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_最小值_43

为在第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_20

代的精英蚁狮周围的随机游走第

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_42

步产生的值。可以取随机游走步数内的任何值,本文取

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab代码_46

。 

3 完整Matlab代码实现

3.1 Matlab代码

蚂蚁狮子优化算法(完整Matlab代码实现)

 3.2 运行结果

F9:

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_最小值_47

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_开发语言_48

 F12:

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab代码_49

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_开发语言_50

 F23:

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_51

 

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_迭代_52

4 多目标蚁狮优化算法 (Matlab代码实现)

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_matlab_53

阅读全文:

多目标蚂蚁狮子优化算法(Matlab代码实现)蚂蚁狮子优化算法(完整Matlab代码实现)_开发语言_54