我是否应该总是在稳态选择中改变后代?

时间:2016-07-26 08:52:20

标签: selection genetic-algorithm evolutionary-algorithm

Essentials of Metaheuristicssite中读取了用于在遗传算法中实现稳态选择的伪代码, 我应该总是改变孩子,或者我应该让它受到突变概率,比如50%?

如果我总是在每一代都做突变,我有点担心人口不会收敛,因为染色体用从0到1的实数值表示。

1 个答案:

答案 0 :(得分:3)

遗传算法的行为对于您启发式选择的权重值非常敏感。

分配给每个动作的概率值实际上取决于您正在应用的特定遗传方案,数据表示受影响的方式 by mutation crossover ,初始人口和问题本身。

因此,为了启发式地为您的问题选择最佳权重值,我建议您跟踪以下数据:

  • 熵多样性指数的进化 (参考:Wikipedia)随着时间的推移
  • 随着时间的推移
  • 最佳健身功能
  • 随着时间的推移,人口中平均适应度函数进化
  • 新个人现有(或过去)个人相同的遗传代码

这里我附上一个图表,显示这些参数在最早的一次执行中的演变(我仍然需要平衡它) AGER ,一个定制 - 基于 simplescalar架构执行给定的遗传算法能够自动找到嵌入式微处理器理想设计的最佳近似值应用

enter image description here (click to enlarge picture)

理想情况下,您需要设置权重值以使初始斜率尽可能低,但不能达到平均适应度函数值不能&# 39; t代改进几代(应该允许暂时恶化)多样性应该尽可能长时间保持相对较高,而适应度函数的平均值应该非常缓慢地增长(与图片不同)。相反,最佳适合度值应验证为单调递增函数。

话虽如此,突变率等于50%似乎非常高。