智能优化算法:生物地理学优化算法-附代码

智能优化算法:生物地理学优化算法-附代码


摘要:Alfred Wallace和Charles Darwin在19世纪提出了生物地理学理论,研究生物物种栖息地的分布、迁移和灭绝规律。Simon受到生物地理学理论的启发,在对生物物种迁移数学模型的研究基础上,于 2008年提出了一种新的智能优化算法 — 生物地理学优化算法(Biogeography-Based Optimization,BBO)。BBO算法是一种基于生物地理学理论的新型算法,具有良好的收敛性和稳定性,受到越来越多学者的关注。

1.算法原理

BO算法的基本思想来源于生物地理学理论。如图1所示,生物物种生活在多个栖息地(Habitat)上,每个栖息地用栖息适宜指数(Habitat Suitability Index,HSI)表示,与HSI相关的因素有降雨量、植被多样性、地貌特征、土地面积、温度和湿度等,将其称为适宜指数变量(Suitability Index Variables,SIV)。

在这里插入图片描述

图1.BBO算法中的多个栖息地

HSI是影响栖息地上物种分布和迁移的重要因素之一。较高 HSI的栖息地物种种类多;反之,较低 HSI的栖息地物种种类少。可见,栖息地的HSI与生物多样性成正比。高 HSI的栖息地由于生存空间趋于饱和等
问题会有大量物种迁出到相邻栖息地,并伴有少量物种迁入;而低 HSI的栖息地其物种数量较少,会有较多物种的迁入和较少物种的迁出。但是,当某一栖息地HSI一直保持较低水平时,则该栖息地上的物种会趋于灭绝,或寻找另外的栖息地,也就是突变。迁移和突变是BBO算法的两个重要操作。栖息地之间通过迁移和突变操作,增强物种间信息的交换与共享,提高物种的多样性。

BBO算法具有一般进化算法简单有效的特性,与其他进化算法具有类似特点。
(1)栖息适宜指数HSI表示优化问题的适应度函数值,类似于遗传算法中的适应度函数。HSI是评价解集好坏的标准。
(2)栖息地表示候选解,适宜指数变量 SIV 表示解的特征,类似于遗传算法中的“基因”。

(3)栖息地的迁入和迁出机制提供了解集中信息交换机制。高 HSI的解以一定的迁出率将信息共享给低HSI的解。
(4)栖息地会根据物种数量进行突变操作,提高种群多样性,使得算法具有较强的自适应能力。

BBO算法的具体流程为:
步骤1 初始化BBO算法参数,包括栖息地数量 N N N、迁入率最大值 I I I和迁出率最大值 E E E、最大突变率 m m a x m_{max} mmax 等参数。
步骤2 初始化栖息地,对每个栖息地及物种进行随机或者启发式初始化。
步骤3 计算每个栖息地的适宜指数HSI;判断是否满足停止准则,如果满足就停止,输出最优解;否则转步骤4。
步骤4 执行迁移操作,对每个栖息地计算其迁入率和迁出率,对SIV进行修改,重新计算适宜指数HSI。
步骤5 执行突变操作,根据突变算子更新栖息地物种,重新计算适宜指数HSI。
步骤6 转到步骤3进行下一次迭代。

1.1 迁移操作

如图2所示,该模型为单个栖息地的物种迁移模型。
在这里插入图片描述

图2.BBO算法的迁移模型

横坐标为栖息地种群数量 S ,纵坐标为迁移比率 η,λ(s) 和 μ(s) 分别为种群数量的迁入率和迁出率。当种群数量为 0 时,种群的迁出率 μ(s) 为 0,种群的迁入率λ(s) 最大;当种群数量达到 S max 时,种群的迁入率 λ(s)为0,种群迁出率 u(s) 达到最大。当种群数量为 S 0 时,迁出率和迁入率相等,此时达到动态平衡状态。根据图2,得出迁入率和迁出率为:
{ λ ( s ) = I ( 1 − S / S m a x ) u ( s ) = E S / S m a x (1) \begin{cases} \lambda(s) = I(1-S/S_{max}) \\ u(s)=ES/S_{max} \end{cases}\tag{1} { λ(s)=I(1S/Smax)u(s)=ES/Smax(1)
迁移操作的步骤可以描述为:
Step1:for i= 1 to N do
Step2: 用迁入率 λ i λ_i λi 选取 x j x^j xj

Step3: if (0,1)之间的均匀随机数小于 λ i λ_i λi then
Step4: for j= 1 to N do
Step5: 用迁出率 u i u_i ui 选取 x j x_j xj
Step6: if (0,1)之间的均匀随机数小于 u i u_i ui then
Step7: 从 x j x^j xj中随机选取一个变量SIV
Step8: 用SIV替换 x i x^i xi中的一个随机SIV
Step9: end if
Step10: end for
Step11: end if
Step12:end for

1.2 突变(Mutation)操作

突变操作是模拟栖息地生态环境的突变,改变栖息地物种的数量,为栖息地提供物种的多样性,为算法提供更多的搜索目标。栖息地的突变概率与其物种数量概率成反比。即
m s = m m a x ( 1 − P s / P m a x ) (2) m_s = m_{max}(1-P_s/P_{max})\tag{2} ms=mmax(1Ps/Pmax)(2)
其中: m m a x m_{max} mmax 为最大突变率; P s P_s Ps 为栖息地中物种数量为 s s s对应的概率; P m a x P_{max} Pmax P s P_s Ps 的最大值; m s m_s ms 是栖息地中物种数量为 s s s对应的突变概率。

突变操作的步骤可以描述为:
Step1:for i= 1 to N do
Step2: 计算突变概率 P s P_s Ps
Step3: 用突变概率 P s P_s Ps 选取一个变量 x i x_i xi
Step4: if (0,1)之间的均匀随机数小于 m s m_s ms then
Step5: 随机一个变量代替 x i x^i xi 中的SIV
Step6: end if
Step7:end for

2.算法结果

在这里插入图片描述

3.参考文献

[1] Simon D.Biogeography-based optimization[J].IEEE Trans-
actions on Evolutionary Computation,2008(6):702-713.

[2]张国辉,聂黎,张利平.生物地理学优化算法理论及其应用研究综述[J].计算机工程与应用,2015,51(03):12-17.

4.Matlab代码

https://mianbaoduo.com/o/bread/aJqZmZ8=

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/108665883