2009-02-03 165 views
32

我對用德州撲克建造德州撲克遊戲AI引擎很感興趣。這是一個長期項目,我計劃投資至少兩年。我還在讀大學,還沒有制定任何雄心勃勃的計劃,想要解決一個長期會讓我感興趣的問題。我是新來的人工智能領域。從我在大學的數據結構課,我知道BFS和DFS等基本構建塊,回溯,DP,樹,圖等。我正在學習正則表達式,爲SCJP和SCJD學習,我將很快採用一種)統計課程。打造德州撲克玩AI..從零開始

問題:

- 從哪裏入手?我應該選擇哪些書?撲克牌遊戲運行的是什麼樣的AI?我可以從哪個開源項目中獲取頁面? Java中的任何好的AI資源?我也有興趣學習Lisp,Jatha很好嗎?

+10

你成功開發什麼?已經過了2年...... – 2012-05-03 07:25:55

回答

5

撲克AI由於人類的賭注難以預測而出名是很難得到正確的。它通常分爲兩部分。

1)計算你的手勝出的機率。

2)制定基於1

我建議你開始有大量的統計數據閱讀部分1.這似乎很容易第一眼的投注策略,但它實際上是非常複雜(和犯錯會死命你的AI)。然後轉向第2部分的遺傳算法。投注策略主要是遺傳算法。他們根據過去的成功和失敗以及一些隨機化進行調整,以免變得可預測。

-1

我聽說的一個有趣的結果是,如果您限制投注選項摺疊,選中和全押,您可以編寫一個AI,以至少49%的概率贏得一對一的比賽,以及49.5%如果是(IIRC)不是先走。

我不知道這個AI比較容易寫出一個知道要下注多少的AI,但這是一個值得思考的問題:選擇下注的金額僅佔中獎概率的1.5%。

1

我在本科生寫了Hold'Em AI。它並不是特別先進,我使用了一個遍歷多個狀態並更新每個狀態的Q值的Q值機器。

我發現艾伯塔大學的AI撲克項目是避免陷阱的寶貴資訊來源。

正如上面的一張海報所述,第一步是要確定幾項可確定的撲克規則 - 可以通過編程方式開發一對一撲克。

我陷入的一個陷阱並沒有在可重構性的早期建立。例如能夠切換學習/播放的等級。

我很想聽到你能把我怎麼弄在gmail.com

2

而且郵件stevekeogh,讓遺傳算法調整神經網絡,它決定了決策邏輯的權重。這種方法非常適合撲克AI。

我這樣做了我自己的AI。起初,我創造了大約1000名玩家,他們根本不知道如何玩遊戲。根據他們手中的最初運氣,他們的身體素質被加權並創造出新一代。新的「大腦」比上一代打得更好。

最終,最好的人打得非常好。

+4

您是否在任何地方發佈過結果? – 2009-05-07 11:08:30

2

正如已經建議的那樣,撲克理論是玩遊戲以及建立AI的真正寶貴的信息來源。您應該購買它,因爲它不會花費太多。

阿爾伯塔大學研究小組目前正在進行最先進的研究,儘管他們之間有時會出現激烈的競爭。 (並不是所有的撲克機器人和AI領域的研究都是公開的,因爲在網絡撲克中使用其結果的誘惑,儘管這是被禁止的。)

首先,你應該決定你首先要解決什麼樣的撲克。雙人撲克已經解決了,儘管最好的人類仍然會用最好的AI提供真正的戰鬥。人工智能具有超越人類的主要優勢,擁有無限無瑕的過去的雙手記憶,以此爲基礎的模式的完美分析,並且因爲它們是機器,它們不像幾乎所有人類偶爾那樣傾斜。

固定的德州撲克可能是最容易破解的,所以您可能希望從1-1固定德州撲克開始,然後決定下一步做什麼。

這裏有一些方面改變正確的戰略(和你的AI):

  • 現金遊戲是玩家 一個 比賽 -The數不同來作決定不同。
  • 德州撲克 不是唯一的撲克。奧馬哈,梭哈 等存在,並廣泛發揮 。
  • 固定限制不同於 罐底限制,與不同於 限制不同。
  • 爲了擊敗最好的球員,你需要覆蓋很多非常微妙的東西,最好的球員在他們打球的時候會想。要打敗一場低風險的業餘比賽,這些事情都不算。

如果你決定去無限額德州撲克,你可能想看看三書系列哈靈頓在撲克和一本書沒有極限撲克 - 理論與實踐。看過很多關於撲克的書籍,我可以說這些書與撲克理論相結合已經足夠了。

0

只需添加到鏈接以上,要實施的重要事項之一是http://en.wikipedia.org/wiki/Kelly_criterion,這將有助於根據一系列投注的預期賠率計算出最佳賭注規模。 對於人類來說,可能會出現判斷賠率的錯誤,但是如果您的AI程序可以基於任何算法吐出一些預期的歸一化賠率,那麼這種平衡優勢賭徒的風險和回報的賭注 - 技術將是一個很好的便宜解。

2

我不確定你感興趣的確切遊戲,但典型的方法是創建一個更小的抽象版本的遊戲,解決這個較小的遊戲,然後將真實的遊戲情況映射回抽象遊戲生成建議。大多數學術論文都跳過了這個過程的細節,贊成展示有關融合,開發和競爭結果的結果。

但是,有一些公開可用的代碼庫提供了完整的實現。其中最好的是菲爾預兆:

http://www.deducer.org/pmwiki/pmwiki.php?n=Main.ArtificialIntelligencePoker

這是一個使用虛擬發揮優化抽象遊戲策略基本完整的戰略機器人。這是一個很好的起點,因爲它非常簡單,完整,並且代表了抽象遊戲方法的良好表現。

如果您有興趣開發撲克AI,我建議從2007年和從UA撲克組和圖奧馬斯桑德霍姆的學生閱讀的一切:

http://www.cs.cmu.edu/~sandholm/

http://poker.cs.ualberta.ca/publications.html