使用遗传算法的好处


13

有人能向我解释遗传算法与其他传统搜索和优化方法相比的优势吗?


4
什么样的GA?比起什么“传统”方法?没有这一点,就只能说诸如“更快的收敛和在某些应用中陷入局部最优的较小危险”之类的话,与任何其他优化方法一样。

Answers:


19

使用遗传算法的主要原因是:

  • 有多个局部最优
  • 目标函数不平滑(因此无法应用导数方法)
  • 参数数量非常大
  • 目标函数是嘈杂的还是随机的

当您没有梯度的定义时,对于基于导数的方法,大量参数可能会成为问题。在这种情况下,您可以通过GA找到一个不错的解决方案,然后使用基于导数的方法对其进行改进。“大”的定义一直在增长。


3
+1。我曾经迷上通用航空,但现在倾向于避免使用它们。在我看来,他们经历了一个大肆宣传的阶段,启发了一堆类似自然的方法(ACO等),然后逐渐退居至利基市场。就我个人而言,有点像神经网络。(也就是说,我最近使用过ES。)
Wayne'2

1
韦恩,我同意。我倾向于对任何进化策略都说“ GA”,并且将其他技术混合在一起通常也是一个好主意。传统的GA效率极低。
Patrick Burns

7
  • 概念很容易理解
  • 模块化,与应用分开
  • 支持多目标
  • 优化适用于“嘈杂”的环境
  • 永远是答案;随着时间的流逝答案会越来越好
  • 天生平行 容易分发

在我的工作中,简单的并行化是使用遗传算法而不是模拟退火之类的最重要的因素。
veryshuai 2014年

6

遗传算法在四个重要方面与传统的搜索和优化方法不同:

  • 遗传算法从大量点中并行搜索。因此,它具有避免陷入像传统方法那样从单一点搜索的局部最优解的能力。
  • 遗传算法使用概率选择规则,而不是确定性规则。
  • 遗传算法在染色体上工作,该染色体是潜在解决方案参数(而不是参数本身)的编码版本。
  • 遗传算法使用适应度评分,该评分是从目标函数获得的,没有其他导数或辅助信息

3

遗传算法是最后的手段。仅当解析解决方案不可行时(它们是最常见的原因,请参见Patrick的回答),并且您手中有很多CPU时间,它们才有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.