基于模拟退火的改进鸡群优化算法-附代码

基于模拟退火的改进鸡群优化算法


摘要:针对鸡群算法因小鸡粒子易陷入局部最优而无法取得全局最优解问题,在小鸡粒子位置更新中加入自身惯性权重和向子群中公鸡粒子学习部分,提出具有随机惯性权重和固定学习因子的改进鸡群算法,然后用模拟退火算法对改进鸡群算法陷入停滞状态时已得到的最优解进行邻域搜索,使算法具有跳出局部最优取得全局最优解的能力。

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)=wxi,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.

5.Matlab代码

6.python代码

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值