实现模拟退火



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

我有点困惑,我将如何实现这一点,我的遗传算法。

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

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

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

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

这就留下了第三个因素——随着世代的推移,突变率从高突变变为低突变

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

最新更新