![]() |
1
5
有很多事情都出了问题。 一些一般性意见
交叉与变异 交叉用于交换已知有效的基因组的大部分。突变可以细化基因组片段。粗略地说,crossover帮助您将两个好的解决方案结合起来,希望这能快速引导您找到更好的解决方案,而变异则探索解决方案附近的空间。 交叉也会破坏一个好的解决方案,因为它会将其分成两部分,而这两部分独立地没有意义,或者将两部分结合起来,产生非感官输出。 在许多情况下,突变足以探索整个空间,尽管速度很慢。你的空间就是这样,因为分数随着距离目标的距离单调下降。在更复杂的空间中,交叉可以帮助您跳过局部极小值之间的障碍。 把它放在一起 我的建议是 在给定的时间内减少种群中的交叉数量 . 最初,交叉可能会帮助您快速获得进展。但是,随着时间的推移,尤其是在模拟接近尾声时,您将需要精细的细化。此技术类似于 simulated annealing . |
![]() |
2
1
|
![]() |
3
0
是时候调试进化了! 最终解决方案(路径)是什么样的?我想,他们只能去NSEW。如果是这样,那么很容易陷入局部(一个或两个)解决方案。 此外,观察最佳解决方案是如何随时间演变的也很有用。这可能很有见地(而且很有趣!) 祝您调试顺利! |
![]() |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
![]() |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |