0

我仍然在为不死者帖子破解我的旧红宝石我知道,我知道,停止尝试将帖子从死去的查克手中夺回)。但是代码已经有点失控了,现在我正在研究一种遗传算法,以创造生死攸关的终极战斗,而适应性是战斗持续多长时间。

所以,我已经掌握了它的基础知识;如何调整游戏的属性以及如何获取解决方案的适应度,我想不通的是如何存储适应度,以便我知道以前尝试过组合的时候。

我无法找到太多的遗传密码来查看,更不用说我可以很好地阅读以判断发生了什么的代码。有谁知道这通常是如何完成的,或者只是一个可以帮助我指出正确方向的算法?

4

3 回答 3

1

我想不通的是如何存储健身,以便我知道我之前尝试过的组合。

通常在 GA 解决方案中,您不关心生成相同的“解决方案”,您关心的是当您的“分数”的提高率稳定时。

现在,如果您想记录/跟踪“解决方案”历史记录,很多人都想知道它何时重新出现,但我认为您的“游戏”有一些随机性,因此您希望对象重复运行。

于 2009-12-06T06:32:48.477 回答
1

在 GA 中,如果适应度测试需要很长时间,您不想重新评估解决方案。使用哈希表存储您的健康分数并将哈希键设为染色体。使用“兽人机动”;首先检查缓存,如果在那里检索它并继续,否则计算它并将其放入哈希中以备下次使用。

于 2009-12-09T05:11:43.507 回答
1

如果您想要一个完整的 GA 示例,您可以从英国谢菲尔德大学的进化计算团队获得免费的开源 Matlab GA 工具箱,可在此处获得:

http://www.sheffield.ac.uk/acse/research/ecrg/gat.html

即使您不想查看 matlab 代码,工具箱附带的手册也对 GA 的工作原理进行了很好且易于理解的描述,这可能会帮助您编写 Ruby 代码。

于 2011-04-20T22:44:05.227 回答