2009-12-06 61 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代碼。