基于模拟退火的改进鸡群优化算法
文章目录
摘要:针对鸡群算法因小鸡粒子易陷入局部最优而无法取得全局最优解问题,在小鸡粒子位置更新中加入自身惯性权重和向子群中公鸡粒子学习部分,提出具有随机惯性权重和固定学习因子的改进鸡群算法,然后用模拟退火算法对改进鸡群算法陷入停滞状态时已得到的最优解进行邻域搜索,使算法具有跳出局部最优取得全局最优解的能力。
1.鸡群优化算法
基础鸡群优化的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108333906
2.改进鸡群算法
2.1 随机惯性权重和固定学习因子的改进鸡群算法
由于小鸡粒子只跟随其妈妈母鸡粒子进行搜索,当妈妈母鸡粒子陷入局部最优时,小鸡也会陷入局部最优,从而导致整个鸡群算法陷入局部最优 .在小鸡粒子位置更新中加入随迭代次数递减的自身惯性权重和向所在子群中公鸡粒子学习部分,能够在一定程度上避免算法陷入局部最优,但随迭代次数指数递减的惯性权重如果在算法初期找不到最优解,算法将收敛不到最优解,而随机惯性权重是一个随机数,在整个算法运行期间都可以获得较大或较小的权重值,避免算法陷入局部最优.
本文在小鸡粒子位置更新中加入随机惯性权重和固定学习因子,改进后的小鸡粒子位置更新公式如式(7):
x
i
,
j
(
t
+
1
)
=
w
⋅
x
i
,
j
(
t
)
+
F
⋅
(
x
m
,
j
(
t
)
−
x
i
,
j
(
t
)
)
+
C
⋅
(
x
r
,
j
(
t
)
−
x
i
,
j
(
t
)
)
(7)
\begin{aligned} x_{i, j}(t+1)=& w \cdot x_{i, j}(t)+F \cdot\left(x_{m, j}(t)-\right.\left.x_{i, j}(t)\right)+C \cdot\left(x_{r, j}(t)-x_{i, j}(t)\right) \end{aligned} \tag{7}
xi,j(t+1)=w⋅xi,j(t)+F⋅(xm,j(t)−xi,j(t))+C⋅(xr,j(t)−xi,j(t))(7)
式(7)中,
x
m
,
j
(
t
)
x_{m, j}(t)
xm,j(t)代表小鸡粒子所跟随妈妈母鸡粒子的位置信息,
x
i
,
j
(
t
)
x_{i, j}(t)
xi,j(t)代表妈妈母鸡粒子自身所在子群中的公鸡粒子位置信息,C 为学习因子,表示小鸡粒子向自身所在子群中公鸡粒子学习的程度, w为小鸡粒子自身惯性权重,本文采用随机惯性权重, w 的计算如式(8)
{
ω
=
μ
+
σ
∗
N
(
0
,
1
)
μ
=
μ
min
+
(
μ
max
−
μ
min
)
∗
ξ
(8)
\left\{\begin{array}{l} \omega=\mu+\sigma * N(0,1) \\ \mu=\mu_{\min }+\left(\mu_{\max }-\mu_{\min }\right) * \xi \end{array}\right. \tag{8}
{ω=μ+σ∗N(0,1)μ=μmin+(μmax−μmin)∗ξ(8)
式(8)中, N(0,1)表示标准正态分布的随机数,ξ 表示0到1之间的随机数.
2.2 基于模拟退火的改进鸡群优化算法
本文基于加入随机惯性权重和固定学习因子的改进鸡群算法,对改进鸡群算法陷入停滞状态时已寻找到的全局最优解采用模拟退火,构建基于模拟退火 的 改 进 鸡 群 优 化 算 法 (Improved ChickenSwarm Optimization Based on Simulated Annealing,SA-ICSO =),在改进鸡群算法陷入停滞状态时对已经寻找到的全局最优解进行领域搜索,跳出局部最优解,继续搜索更好的解, SA - ICSO 流程图
本文基于加入随机惯性权重和固定学习因子的改进鸡群算法,对改进鸡群算法陷入停滞状态时已寻找到的全局最优解采用模拟退火,构建基于模拟退火 的 改 进 鸡 群 优 化 算 法 ( SA-ICSO ),在改进鸡群算法陷入停滞状态时对已经寻找到的全局最优解进行领域搜索,跳出局部最优解,继续搜索更好的解, A-ICSO 流程图如下:
3.实验结果
4.参考文献
[1]李振璧,王康,姜媛媛.基于模拟退火的改进鸡群优化算法[J].微电子学与计算机,2017,34(02):30-33+38.