2009-12-06 63 views
0

我仍然在为我的老红宝石进行不死化post(我知道,我知道,不要试图将帖子从死亡查克带回来)。但是代码已经有些失控了,现在我正在研究一种遗传算法来创造生命和死亡的终极战役,并且战斗持续了多长时间。在遗传算法中跟踪健身

所以,我已经有了它的基础知识;如何调整游戏属性以及如何获得解决方案的适应性,但我无法弄清楚如何存储适合度,以便知道何时尝试过组合。

我一直没能找到很多遗传密码来看看更多的代码,我可以很好地阅读以了解发生了什么。有没有人有一个想法如何通常这样做,或者只是一个算法,可以帮助我指向正确的方向?

+1

该帖子现在真的死了 - 它已被删除! – 2011-04-20 23:29:27

回答

1

我想不通是健身如何 商店,让我知道什么时候我 之前已经尝试过的组合。

正常情况下,在GA解决方案中,您并不担心产生相同的“解决方案”,您所关心的是当“分数”的改进速度稳定下来时。

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

+0

哦,这是一个好点,有随机性,所以我希望它重复。 – 2009-12-06 06:38:53

1

在GA中,如果健身测试需要很长时间,您不想重新评估解决方案。使用散列表来存储您的健身分数,并使散列键成为染色体。使用“Orcish机动”;首先检查缓存,如果检索缓存并继续,则计算它并将其放入下一次的散列中。

+0

谢谢,我想知道这是否是一种可行的方法。健身确实是一个很长的计算,因为在这种情况下,它的基础是“游戏”持续多久。所以最适合的是永远运行的那个。 – 2009-12-09 16:53:05

1

如果你想一个GA你一个完整的例子可以得到免费的,开源的,Matlab的GA工具箱从谢菲尔德在英国大学的进化计算团队,可在这里:

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

即使您不想查看matlab代码,工具箱附带的手册也有一个非常好的可访问的关于GAs如何工作的说明,可以帮助您使用Ruby代码。