智能优化算法:生物地理学优化算法-附代码
摘要: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)。
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所示,该模型为单个栖息地的物种迁移模型。
横坐标为栖息地种群数量 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(1−S/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(1−Ps/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代码
生物地理学优化算法
算法相关应用
名称 | 说明或者参考文献 |
---|---|
生物地理学优化的BP神经网络(预测) | https://blog.csdn.net/u011835903/article/details/112149776(原理一样,只是优化算法用生物地理学优化算法) |
基于共生生物算法的无线传感器网(WSN)覆盖优化 | https://blog.csdn.net/u011835903/article/details/109262039(原理一样,只是优化算法用生物地理学优化算法) |
基于共生生物算法的3D无线传感器网(WSN)覆盖优化 | https://blog.csdn.net/u011835903/article/details/113834323(原理一样,只是优化算法用生物地理学优化算法) |
5.python代码
个人资料介绍