实现模拟退火

时间:2012-02-27 13:55:08

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

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

我对如何将其实现到我的遗传算法中感到有点困惑。

有人能给我一个简单的解释,说明我需要做什么,并澄清我对模拟退火如何工作的理解是正确的吗?

1 个答案:

答案 0 :(得分:2)

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

  1. 将父母个人与父母个人匹配,根据他们的比例适合度优先选择,
  2. 选择交叉点,和
  3. 改变后代。
  4. 关于第二个问题,你无能为力,因为这通常是一个统一的随机分布。当您选择父母个体时,可能可以想象在轮盘赌轮中添加一些随机因素,然后慢慢减少随机函数。但这违背了遗传算法的精神,并且(更重要的是)我认为它不会带来太多好处。实际上我觉得它会受伤。

    这留下了第三个因素 - 随着世代的流逝,突变率从高突变变为低突变。

    这真的不是那么复杂。