【问题标题】:Implementing Simulated Annealing实施模拟退火
【发布时间】:2012-02-27 13:55:08
【问题描述】:

我想我了解模拟退火的基本概念。它基本上是在开始时添加随机解决方案以覆盖更好的搜索空间区域,然后随着算法的继续运行逐渐降低随机性。

我对如何在我的遗传算法中实现这一点有点困惑。

谁能简单解释一下我需要做什么,并澄清我对模拟退火工作原理的理解是正确的吗?

【问题讨论】:

  • 来自维基百科“遗传算法”文章 - “SA 也可以在标准 GA 算法中使用,方法是从相对较高的突变率开始,然后按照给定的时间表随着时间的推移而降低它。”这似乎用 GA 的语言描述了 SA 技术。您还有更具体的问题吗?

标签: artificial-intelligence genetic-algorithm simulated-annealing


【解决方案1】:

在遗传算法中构建新一代个体时,它具有三个随机方面:

  1. 将父个体与父个体匹配,并根据其比例适合度进行偏好,
  2. 选择交叉点,然后,
  3. 突变后代。

对于第二个,您无能为力,因为它通常是均匀随机分布。您可以在您选择父母个体时尝试向轮盘赌中添加一些随机因素,然后慢慢减少该随机功能。但这违背了遗传算法的精神,而且(更重要的是)我认为它不会有多大好处。实际上,我认为这会很痛。

这就剩下第三个因素——随着世代的流逝,将突变率从高突变变为低突变。

真的没有比这更复杂的了。

【讨论】:

  • 我现在觉得有点傻,在阅读了大量研究之后,我没有意识到它是如此容易实现。最后用几行额外的代码实现了它。也感谢@mbeckish,他也在 cmets 中回答了我的问题。
猜你喜欢
  • 2013-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-02
  • 2016-05-09
相关资源
最近更新 更多