我有一個工作的F#程序,運行Dominion,一款紙牌遊戲。我想用遺傳算法來確定最佳的演奏策略。但是,我不太瞭解AI或遺傳算法。你能指點我一些好的文學作品嗎?卡牌遊戲的遺傳算法(Dominion)
遊戲策略包括對給定手的反應。在每一個回合中,一個機器人都是一張牌。它可以選擇玩行動牌,或者根據已經處理的情況購買新牌。目標是以儘可能多的勝利點卡片結束遊戲。
硬編碼的方式可能類似於:
def play(hand, totalDeck):
if hand contains Smithy then use Smithy
if hand contains enough coins for Province then buy Province
if more than 30% of the totalDeck is Smithy, then buy coins
我想在每個卡上,橋面總的目標部分的矢量方面描述策略:
[Smithy, Province, Copper, ...]
[.3, .2, .1, ...]
然後爲了改變一個機器人,我可以改變這個向量,看看這個變種版本是否更好。健身功能將是Dominion對其他各種機器人的平均分數。 (一個機器人的得分取決於對手是誰,但希望通過玩很多機器人對許多機器人,這可以甚至出)。
這是否有意義?我走向正確的道路嗎?
對不起,但國際海事組織這是一個非常糟糕的描述你的問題。我甚至不知道你爲什麼要「結合」兩個機器人或你想要結合的機器人。我認爲行動牌是一種在遊戲過程中發生變化的動態屬性。請根據目標函數和決策變量更清楚地說明問題。我假設你想訓練你寫的一個通用bot的一些參數。也許你可以詳細說明這一點。你用什麼樣的編程語言編寫了紙牌遊戲的模擬器? – Andreas
我同意我沒有很好地解決這個問題。我再次嘗試;這看起來如何? –
絕對值得多花一點時間 – Andreas