前言:
本文将谈谈如何评估测试炸金花的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