2013-09-25 25 views
3

我一直在研究遺傳算法。我的目標是實現簡單的模擬,其中玩家(不受外部人類玩家的控制)避開障礙並進入獎勵。如何將遺傳算法用於實際AI?

據我所知,遺傳算法陷入進化算法,因爲我沒有提供培訓數據,那麼這是偉大的這個場景。它會自學。

這些介紹我一直在閱讀有關其被編碼爲二進制字符串人羣談話(我認爲),我沒有看到人口和精煉種羣是如何產生新的一代有什麼這個問題域。

能有人請解釋

+0

Adeeb,它已經被指出,他們不屬於強化學習。遺傳算法屬於進化算法的範疇。如果你想要使用「增強」的東西,看看神經網絡。 –

回答

4

簡而言之,您將使用遺傳算法來生成確定AI的行爲規則。具體如何編碼和解釋這些規則取決於你想達到的目標。

也許你想要的遺傳算法來生成,反過來處理玩家的行爲神經網絡的連接權重。在這種情況下,您會將權重編碼爲二進制字符串。

另一個例子是解釋二進制字符串作爲decision tree

當你有你表示編碼,你的遺傳算法會產生不同的基因或二進制字符串的個體。然後根據這些個體的表現如何,爲這些個體分配一個適應度值,隨着時間的推移,遺傳算法將根據您的適應度函數和表示形式找到一個好的AI。

編輯:假設您的網絡具有三個連接,並且您選擇用四位編碼每個權重。然後你的二進制字符串可以用最簡單的編碼方式連接這3個權重。

enter image description here

+0

由於編碼取決於我想實現的目標,有沒有一種算法或選擇編碼的直接方法?我只想讓玩家收集獎勵,我已經使用神經網絡避免與障礙物碰撞。 – Adeeb

+0

然後,您將編碼有關您的神經網絡的信息,例如節點,圖層和權重等二進制字符串。也許你可以從靜態拓撲開始,只編碼二進制字符串中的連接權值。 – PureW

+0

我明白你的意思了,我的ANN有3層,所以我可以加上其他的權重? – Adeeb