在Essentials of Metaheuristics和site中读取了用于在遗传算法中实现稳态选择的伪代码, 我应该总是改变孩子,或者我应该让它受到突变概率,比如50%?
如果我总是在每一代都做突变,我有点担心人口不会收敛,因为染色体用从0到1的实数值表示。
答案 0 :(得分:3)
遗传算法的行为对于您启发式选择的权重值非常敏感。
分配给每个动作的概率值实际上取决于您正在应用的特定遗传方案,数据表示和受影响的方式 by mutation 和 crossover ,初始人口和问题本身。
因此,为了启发式地为您的问题选择最佳权重值,我建议您跟踪以下数据:
这里我附上一个图表,显示这些参数在最早的一次执行中的演变(我仍然需要平衡它) AGER ,一个定制 - 基于 simplescalar架构执行给定的遗传算法能够自动找到嵌入式微处理器理想设计的最佳近似值应用
理想情况下,您需要设置权重值以使初始斜率尽可能低,但不能达到平均适应度函数值不能&# 39; t代改进几代(应该允许暂时恶化)。 多样性应该尽可能长时间保持相对较高,而适应度函数的平均值应该非常缓慢地增长(与图片不同)。相反,最佳适合度值应验证为单调递增函数。
话虽如此,突变率等于50%
似乎非常高。