前言:
本文將談談如何評估測試炸金花的AI, 其實這個也表明一類的問題, 德州撲克也是相似的解法. 本文將談談兩種思路, 一種是基於基準AI對抗評估, 另外一種是基於測試集(人工選定牌譜). 因爲炸金花/德州是一類信息不徹底的遊戲, 並且運氣在局數少的狀況下, 佔據很大比例, 波動有些大. 所以基於測試集來評估, 可能更好, 更準確.
總而言之, 好的AI, 在優點下贏得越多, 在劣勢下輸得越少, ^_^.html
相關文章:
德州撲克AI--Programming Poker AI(譯).
系列文章說來慚愧, 以前一直叫嚷着寫德州AI, 不過惋惜懶癌晚期, 一直沒去實踐, T_T. 相比而言, 炸金花簡單不少, 也更偏重於運氣和所謂的心理對抗.
系列文章:
1. 炸金花遊戲的模型設計和牌力評估
2. 炸金花遊戲的勝率預估
3. 基於EV(指望收益)的簡單AI模型
4. 炸金花AI基準測試評估
5. 動態收斂預期勝率的一種思路python
基準AI的選定:
基準AI來評估新AI的好壞, 這個有點繞, 感受像先有雞, 仍是先有蛋的問題. 但應該屬於迭代發展的例子, 就好像最老一代的C編譯器由彙編編寫, 而後用C語言編寫新一代的C編譯器, 繼而在用c語言開發再新一代的C編譯器...., 最終C語法支持愈來愈強, 性能愈來愈強大.
對於這個基準AI, 咱們能夠以下設定基礎規則:
1. 隨機選擇see操做
看牌see的最佳時期, 這個難以定論, 這邊引入隨即決策看牌, 幾次合後強制看牌.
2. 提高對手手牌範圍, 明注每操做一輪提高, 明注主動raise提高, PK勝利提高.性能
玩家默認牌力爲高high/弱對子 玩家明注check一輪, 牌力 += 1 玩家明注raise, 牌力 += 2 玩家主動pk勝利, 牌力 += 1 玩家被動pk勝率, 牌力 += 2
3. 根據手牌勝率, 決定check/raise/pk/pack測試
p >= 0.65, 選擇check/raise p >= 0.5 && p < 0.65, 60%選擇pk, 40%選擇check p >= 0.4 && p < 0.5, 70%選擇pk, 30%選擇pack p >= 0.2 && p < 0.4, 30%選擇pk, 70%選擇pack p <= 0.2, 選擇pack
任何有必定均衡性的遊戲, 都有風格相剋的問題, 因此基準AI對抗也有過擬合的問題.spa
基於測試集:
這須要人工選一些有表明意義的牌譜, 牌譜覆蓋正反case, 同時能知足必定的機率分佈, 這個測試牌譜須要領域專家來完成. 除了牌譜選定外, 對每一個牌譜, 須要人爲的設定閾值條件和策略規則.這邊的牌譜以及規則設定都是基於理性的.
1. 正向case
AI手牌牌力強, 敵方手牌牌力弱/稍弱, 這些狀況下, AI能取獲得的最大價值.
2. 反向case
AI手牌牌力弱, 敵方手牌牌力強, 這些狀況下, AI能儘可能的少輸.
這邊舉幾個列子吧, 確實這個挺難以展開的.
AI手牌爲同花, 測試牌譜爲弱對子, AI須要謹慎的處理raise, 由於一旦raise, 會致使對方提早pk或者pack, 這樣能取到的價值較少了.
AI手牌爲同花, 測試牌譜爲順子, AI在謹慎處理後, 發現對方牌力不小, 能夠raise, 提升可獲取的價值.
這邊作個小廣告吧, poker logic, 這邊的測試來評估玩家水平, 進而衍生爲評估AI, 這種方式我以爲是評估AI強弱的正道.設計
總結:
本文談到了兩種方式去評估AI, 一種是基於基準AI, 一種是就要牌譜測試集, 我我的更傾向於第二種. 由領域專家選定的牌譜在指導和評估AI的能力, 更具說服力.
對待博彩遊戲, 但願你們娛樂心態行娛樂之事, 切勿賭博, ^_^.htm