基于觅食生境选择的改进粒子群算法-附代码
基于觅食生境选择的改进粒子群算法
摘要:在标准粒子群算法的基础上,引入基于莱维飞行的觅食生境选择策略,提出了改进的基于觅食生境选择的粒子群算法(feeding habitat selection particle swarm optimization,FHSPSO)。改进的算法中,粒子搜索策略包括粒子无干扰觅食和受到惊扰飞至新的觅食位置两个阶段。
1.粒子群优化算法
基础粒子群算法的具体原理参考网络资料
2. 改进粒子群算法
粒子搜索策略包括两个阶段。
第一阶段, 粒子无干扰受食阶段。
该阶段的搜索策略与标准粒子群算法基本相 同, 粒子的特征用速度、位置、适应度值表示。适 应度值由被优化的函数确定, 第
i
i
i 个粒子的速度和 位置在每次迭代中按照式 (1)、(2) 进行更新
[
6
]
{ }^{[6]}
[6] 。
V
i
d
k
+
1
=
w
v
i
d
k
+
c
1
r
1
(
P
i
d
k
−
X
i
d
k
)
+
c
2
r
2
(
P
g
d
k
−
X
i
d
k
)
(1)
X
i
d
k
+
1
=
X
i
d
k
+
V
i
d
k
(2)
w
=
e
−
θ
1
k
cos
(
lg
(
k
)
)
(3)
\begin{array}{cc} V_{i d}^{k+1}=w v_{i d}^k+c_1 r_1\left(P_{i d}^k-X_{i d}^k\right)+c_2 r_2\left(P_{g d}^k-X_{i d}^k\right) & \text { (1) } \\ X_{i d}^{k+1}=X_{i d}^k+V_{i d}^k & \text { (2) } \\ w=e^{-\theta_1 k} \cos (\lg (k))& \text { (3) } \end{array}
Vidk+1=wvidk+c1r1(Pidk−Xidk)+c2r2(Pgdk−Xidk)Xidk+1=Xidk+Vidkw=e−θ1kcos(lg(k)) (1) (2) (3)
式中:
w
w
w 为惯性权重;
d
∈
[
1
,
D
]
,
D
d \in[1, D], D
d∈[1,D],D 为维数;
k
k
k 为 迭代次数;
c
1
c_1
c1 和
c
2
c_2
c2 为学习因子;
r
1
r_1
r1 和
r
2
r_2
r2 为
[
0
,
1
]
[0,1]
[0,1] 间的 随机数;
P
i
d
P_{i d}
Pid 为粒子迄今的个体极值;
P
g
d
P_{g d}
Pgd 为粒子群 迄今的群体极值,
θ
1
\theta_1
θ1 是系数。
第二阶段, 粒子群受到惊扰飞至新的位置。
粒子群在受到外界因素惊扰后, 会产生整体逃 逸行为, 并在逃逸路线上发现新的食物源, 搜索方 程如式 (4) 所示
[
7
]
{ }^{[7]}
[7] 。
x
i
t
+
1
=
{
x
i
t
[
1
+
e
−
θ
2
k
cos
(
lg
(
k
)
)
s
]
,
rand
<
p
x
i
t
[
1
+
e
−
θ
3
k
cos
(
k
)
s
]
,
else
(4)
x_i^{t+1}= \begin{cases}x_i^t\left[1+e^{-\theta_2 k} \cos (\lg (k)) s\right], & \text { rand }<p \\ x_i^t\left[1+e^{-\theta_3 k} \cos (k) s\right], & \text { else }\end{cases} \tag{4}
xit+1={xit[1+e−θ2kcos(lg(k))s],xit[1+e−θ3kcos(k)s], rand <p else (4)
式中:
p
p
p 是路线选择参数;
θ
1
、
θ
2
\theta_1 、 \theta_2
θ1、θ2 是系数;
s
s
s 值由 式
(
5
)
∼
(
9
)
[
8
]
(5) \sim(9){ }^{[8]}
(5)∼(9)[8] 确定。
s
=
μ
∣
v
∣
1
/
β
(5)
s=\frac{\mu}{|v|^{1 / \beta}}\tag{5}
s=∣v∣1/βμ(5)
其中:
μ
、
v
\mu 、 v
μ、v 为正态分布, 定义
μ
∼
N
(
0
,
σ
μ
2
)
(6)
v
∼
N
(
0
,
σ
v
2
)
(7)
σ
μ
=
{
Γ
(
1
+
β
)
sin
(
π
β
/
2
)
Γ
[
(
1
+
β
)
/
2
]
2
(
β
−
1
)
/
2
β
}
,
β
=
1.5
(8)
σ
v
=
1
(9)
\begin{gathered} \mu \sim N\left(0, \quad \sigma_\mu^2\right) & \text { (6) } \\ v \sim N\left(0, \quad \sigma_v^2\right) & \text { (7) } \\ \sigma_\mu=\left\{\frac{\Gamma(1+\beta) \sin (\pi \beta / 2)}{\Gamma[(1+\beta) / 2] 2^{(\beta-1) / 2} \beta}\right\}, \beta=1.5 & \text { (8) } \\ \sigma_v=1& \text { (9) } \end{gathered}
μ∼N(0,σμ2)v∼N(0,σv2)σμ={Γ[(1+β)/2]2(β−1)/2βΓ(1+β)sin(πβ/2)},β=1.5σv=1 (6) (7) (8) (9)
FHSPSO 算法流程如下:
初始化种群
for 迭代次数<最大迭代次数
if 粒子正常受食时间小于限制值
for 种群中的所有粒子
按公式(1)、(2)产生新解
end for
else
for 种群中的所有成员
按公式 (4) 产生新解
end for
end if
选择目标函数值最好的个体,
与先前最好解进行比较判断是否更新 end for
输出最好解
3.实验结果
4.参考文献
[1]陈子廓,史宪睿.基于觅食生境选择的改进粒子群算法[J].辽宁工业大学学报(自然科学版),2022,42(01):19-21.DOI:10.15916/j.issn1674-3261.2022.01.004.
5.Matlab代码
6.Python代码
相关文章
- 常用的算法思想总结
- PT之Transformer:基于PyTorch框架利用Transformer算法针对IMDB数据集实现情感分类的应用案例代码解析
- 基于文化算法优化的神经网络预测研究(Matlab代码实现)
- 基于多目标粒子群优化算法的计及光伏波动性的主动配电网有功无功协调优化(Matlab代码实现)
- 基于多目标粒子群算法的微电网优化调度【风、光、储能、柴油机、电网交互燃汽轮机】(Matlab代码实现)
- 【负荷预测】基于蚂蚁优化算法的BP神经网络在负荷预测中的应用研究(Matlab完整代码实现)
- 基于多种优化算法及神经网络的光伏系统控制(Matlab代码实现)
- 【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)
- 基于象鼻虫损害优化算法的TSP问题求解(Matlab代码实现)
- 【路径规划】基于拓展随机树(RRT)算法的路径规划问题(Matlab代码实现)
- 【TSP问题】基于改进蜜蜂算法解决旅行商问题(Matlab代码实现)
- 【SSA-LSTM】基于麻雀算法优化LSTM 模型预测研究(Matlab代码实现)
- 基于蜜蜂算法的资源受限项目优化调度(Matlab代码实现)
- 普拉萨图矩阵和分数,与鲸鱼优化算法进行比较(Matlab代码实现)
- 基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)
- 基于凸松弛算法的电力市场策略研究(Matlab代码实现)
- 【故障定位】基于多元宇宙算法的主动配电网故障定位方法研究(Matlab代码实现)
- 【ADMM】基于交替方向乘法器(ADMM)算法优化基于cs的速磁共振成像MRI研究(Matlab代码实现)
- 基于粒子群算法的极限学习机(ELM)回归预测-附代码
- 基于蜣螂算法改进的DELM预测-附代码
- 基于二进制粒子群算法的背包问题求解- 附代码
- 智能优化算法应用:基于GWO优化的Renyi熵图像多阈值分割 - 附代码
- 智能优化算法:纵横交叉算法-附代码
- 智能优化算法:果蝇优化算法-附代码
- 一种改进的进化模型和混沌优化的萤火虫算法-附代码
- 基于 Iterative 映射和单纯形法的改进灰狼优化算法-附代码
- 基于自适应权重的缎蓝园丁鸟优化算法-附代码
- 【负荷预测】基于蚂蚁优化算法的BP神经网络在负荷预测中的应用研究(Matlab完整代码实现)
- 车间调度|基于帝王蝶优化算法的车间调度(Matlab代码实现)
- 基于象虫损害优化算法的投资组合问题(Matlab代码实现)
- LightGBM最强解析,从算法原理到代码实现~