全局搜索算法比较(Global Search Algorithm Comparison)

全局搜索算法比较

全局搜索

  梯度方法,牛顿法,共轭梯度法,拟牛顿法等,能够从初始点出发,产生一个迭代序列。但是很多时候,往往只能收敛到局部极小点。因此为了保证算法能够收敛到全局最小点,需要借助于全局搜索算法来实现。

算法分类

COMPARE

性能比较

所用测试函数可以查看相关文档,测试函数(Test Function)

模拟退火算法(SA)

  • 优点:
    • 计算过程简单
    • 可用于求解复杂的非线性优化问题
    • 相比梯度下降,增加了逃离局部最小的可能
  • 缺点:
    • 参数敏感
    • 收敛速度慢
    • 执行时间长
    • 算法性能与初始值有关
    • 可能落入其他的局部最小值

遗传算法(GA)

  • 优点:
    • 从群体出发,具有并行性
    • 可用于求解复杂的非线性优化问题
    • 使用概率机制进行迭代,具有随机性
    • 具有可扩展性,容易与其他算法结合
  • 缺点:
    • 受到参数影响较大
    • 可能产生早熟收敛问题
    • 对问题编码表示较为困难
    • 算法对初始种群的选择有一定的依赖性
    • 搜索速度比较慢,要得到较精确的解需要较多的训练时间

免疫算法(IA)

  • 优点:
    • 受到参数影响较小
    • 解决早熟收敛问题
    • 从群体出发,具有并行性
    • 对抗体选择的依赖性降低
    • 可用于求解复杂的非线性优化问题
    • 使用概率机制进行迭代,具有随机性
  • 缺点:
    • 对问题编码表示较为困难
    • 要进行多次免疫应答,因此速度慢于遗传算法

蚁群算法(ACO)

  • 优点:
    • 搜索速度较快
    • 受到参数影响较小
    • 从群体出发,具有并行性
    • 可用于求解复杂的非线性优化问题
    • 具有可扩展性,容易与其他算法结合
  • 缺点:
    • 对初始蚂蚁的数量有很高的要求

粒子群算法(PSO)

  • 优点:
    • 搜索能力最快
    • 从群体出发,具有并行性
    • 可用于求解复杂的非线性优化问题
  • 缺点:
    • 受到参数影响较大
    • 存在早熟收敛问题
    • 对初始粒子群的数量有很高的要求

单纯形法(Nelder-Mead)

  • 优点:
    • 受到参数影响较小
    • 具有快速随机的搜索能力
    • 可用于求解复杂的非线性优化问题
    • 每次迭代都更接近最优解,精度最高
  • 缺点:
    • 算法性能与初始值有关
    • 不适用于多维的最优值求解
    • 可能落入其他的局部最小值

遗传差分算法(DE)

  • 优点:
    • 受到参数影响较小
    • 不会产生早熟收敛问题
    • 适用于多维的最优值求解
    • 从群体出发,具有并行性
    • 算法不依赖初始种群的选择
    • 可用于求解复杂的非线性优化问题
    • 使用概率机制进行迭代,具有随机性
    • 具有可扩展性,容易与其他算法结合
  • 缺点:
    • 对问题编码表示较为困难
    • 因为有大量的比较和选择,可能速度稍慢于遗传算法

算法对比

搜索精度分析
所用时间分析

特点小结

模拟退火算法(SA)

  • 不同问题对温度要求不同,起始温度和温度变化率都会影响搜索精度和时间
  • 每次都随机产生一个解,有时很难跳出较深较远的局部最优
  • 可以重复运算多次,取多次的最小值,这样可以保证得到全局最优

遗传算法(GA)

  • 不同的问题需要的种群个数不同,种群个数越多,搜索精度越高,用时越长
  • 迭代次数越高,自然选择越强,保留的结果越好,搜索精度越高,用时越长
  • 问题的表示影响遗传算法的效率,用二进制基因串表示还是用十进制表示需要考虑
  • 自然选择的方式很重要,采用精英选择或轮盘赌会产生不同的效果
  • 遗传算子对算法的影响很大,采用何种交叉方式和多大的变异率最合适

免疫算法(IA)

  • 免疫算法包含遗传算法的所有特点
  • 免疫过程从记忆细胞中取出部分,提高搜索效率
  • 免疫过程随机产生另一部分抗体,给搜索到其他更优点创造了可能性
  • 每次的免疫过程都相当于一次遗传算法,因此免疫次数越多,精度越高,时间越长

蚁群算法(ACO)

  • 和自然界中蚁群一样,蚂蚁越多,搜索精度越高,但是计算量大,用时更长
  • 迭代次数越高,信息素的作用时间越长,所求结果更好,精度更高,用时更长

粒子群算法(PSO)

  • 和自然界中飞鸟一样,飞鸟越多越容易遇到全局最优解,搜索精度越高,用时更长
  • 迭代次数越高,飞鸟之间的信息交换越多,所求结果更好,精度更高,用时更长
  • 粒子群算法可以实现高度的并行计算,因此在搜索函数最值方面速度最快

单纯形法(Nelder-Mead)

  • 单纯形法是一种收缩算法,如果初始点选择在局部极小值区域,会收缩到局部最小
  • 和SA相同,可以重复运算多次,取多次的最小值,这样可以保证得到全局最优。
  • 和其他算法不同,没有随机性,每次迭代都产生比上一次更优的解,搜索精度最高

差分进化算法(DE)

  • 差分进化算法类似于改进版的遗传算法,更加适合于多维最优值求解
  • 和遗传算法不同的是具有差分性质,能够更容易地跳出当前的局部解
  • 淘汰机制也十分简单,将子代和父代对比,直接淘汰表现差的解,精英选择
-------------本文结束感谢您的阅读-------------
0%