炸金花游戲(4)--炸金花AI基准測試評估


 

前言:
  本文將談談如何評估測試炸金花的AI, 其實這個也代表一類的問題, 德州撲克也是類似的解法. 本文將談談兩種思路, 一種是基於基准AI對抗評估, 另一種是基於測試集(人工選定牌譜). 由於炸金花/德州是一類信息不完全的游戲, 而且運氣在局數少的情況下, 占據很大比例, 波動有些大. 因此基於測試集來評估, 可能更好, 更准確.
  總而言之, 好的AI, 在優勢下贏得越多, 在劣勢下輸得越少, ^_^.

 

相關文章:
  德州撲克AI--Programming Poker AI(譯)
  系列文章說來慚愧, 之前一直叫嚷着寫德州AI, 不過可惜懶癌晚期, 一直沒去實踐, T_T. 相比而言, 炸金花簡單很多, 也更偏重於運氣和所謂的心理對抗.
  系列文章:
  1. 炸金花游戲的模型設計和牌力評估 
  2. 炸金花游戲的勝率預估 
  3. 基於EV(期望收益)的簡單AI模型
  4. 炸金花AI基准測試評估
  5. 動態收斂預期勝率的一種思路

 

基准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對抗也有過擬合的問題.

 

基於測試集:
  這需要人工選一些有代表意義的牌譜, 牌譜覆蓋正反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的能力, 更具說服力.
  對待博彩游戲, 希望大家娛樂心態行娛樂之事, 切勿賭博, ^_^.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM