我目前正在从事一个项目,我正在使用基本的元胞自动机和遗传算法来创建类似地牢的地图。目前,当我的输出只能是两种状态时,我很难理解交叉究竟是如何工作的:DEAD 或 ALIVE(1 或 0)。
我从概念上理解交叉——你找到两个合适的种群成员,他们交换遗传物质,希望产生更合适的后代。我也明白这通常是通过对位串执行 k 点交叉来完成的(但也可以用实数完成)。
然而,即使我将我的死/活细胞编码成比特并将它们交叉......我最终会得到什么?细胞只能是死的或活着的。交叉会给我一些超出这个范围的随机值,对吧?即使我要处理浮点数,我最终不会得到 1 或 0 吗?在这种情况下,似乎最好将死细胞随机突变为活细胞,反之亦然。
我已经阅读了几篇关于该主题的论文,但似乎没有一篇能解释这个特定问题(无论如何,用我能理解的语言)。直觉上,我想也许我可以对单元格的邻居进行交叉 - 所以我找到了 2 个合适的邻居,然后他们交换成员(例如,邻居 A 将它的 4 个邻居提供给邻居 B)。但是,我在任何地方都没有看到这个想法,这让我相信它一定是根本错误的。
任何帮助将不胜感激,我真的坚持这一点。