问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

论文:牌型预测与蒙特卡洛模拟结合的麻将博弈策略

创作时间:
作者:
@小白创作中心

论文:牌型预测与蒙特卡洛模拟结合的麻将博弈策略

引用
CSDN
1.
https://blog.csdn.net/sinat_37574187/article/details/145021419

本文研究了如何通过结合局面信息利用方法和蒙特卡洛模拟来提高麻将博弈策略的效率。文章详细介绍了研究背景、方法、实验设计、结果与分析等内容,具有较高的学术价值和实际应用意义。

研究背景

  1. 研究问题: 本文旨在解决麻将博弈中状态空间巨大和隐藏信息过多的问题,提出了一种新的策略来提高麻将博弈的水平。
  2. 研究难点: 麻将博弈属于典型的非完全信息博弈,玩家只能看到自己的手牌和一些公共信息,而对手的手牌信息以及牌库中的信息是不可见的。这使得状态空间非常庞大,信息缺失严重,增加了求解难度。
  3. 相关工作: 现有的研究主要集中在完全信息博弈领域,如AlphaGo在围棋中的成功应用。对于非完全信息博弈,如德州扑克,已有研究使用反事实虚拟遗憾最小化算法和Libratus程序取得了一定的成果,但这些方法在麻将这种状态空间爆炸的游戏中并不适用。

研究方法

这篇论文提出了利用局面信息缩减未知状态空间,并通过动态划分游戏状态提升牌型预测准确率的方法。具体来说,

  1. 弃牌信息利用方法: 将对手玩家的弃牌信息转换为可利用信息,推算对手玩家持有某张牌的概率。根据大众麻将的规则特点,提出了相依牌和非需求牌的概念,分别用于游戏前期和中后期的弃牌信息利用。
  • 计算每一张牌的剩余牌数:Ni =4−NOi −NMi
  • 计算牌i对牌j的影响度:Ai,j =Ni ×Ri,j
  • 计算玩家拥有某一张牌i的可能性:

  1. 对手牌型概率计算方法: 根据玩家手牌中持有某张牌的概率,计算玩家手中持有刻子、顺子、对子和相关组的概率。
  • 计算玩家手牌中拥有刻子牌型的概率:
    PAAA ={NA ×PRA 0 NA ⩾3NA <3
  • 计算玩家手牌中拥有顺子牌型的概率:
    PABC =min[PRA ,PRB ,PRC ]
  • 计算玩家手牌中拥有对子牌型的概率:
    PAA ={NA ×PRA −NNA 0 NA ⩾2NA <2
  • 计算玩家手牌中拥有相关组牌型的概率:
    PAB =min[PRA ,PRB ]−[NN[A−1] +NN[B+1] ]/2PAC =min[PRA ,PRC ]−NN[A+1]
  1. 对手手牌模拟方法: 通过蒙特卡洛模拟方法来模拟对手手牌,降低给对手打出需求牌的概率,并辅助判断我方的需求牌数量。
  • 基于局面信息和蒙特卡洛的对手手牌模拟算法流程:
  • 输入: 我方手牌 H, 对手弃牌 Di , 对手副露 Fi , 轮数 Round输出: 对手玩家的手牌分布 DHi
  • 根据式[1]计算每一张牌的剩余牌数 Ni
  • while [X−−>0] do
  • 根据式[9]计算出 Round轮的向听数 WN
  • 根据向听数 WN, 随机选择刻子数 NAAA 、顺子数 NABC 、对子数 NAA 、相关组数 NAB
  • 随机生成刻子、顺子、对子和相关组, 根据公式[4]一[8]计算其持有概率, 若概率极低则重新生成
  • 根据随机结果更新 DHi
  • end while
  • return DHi

实验设计

本文结合局面信息利用方法和动态游戏状态划分方法构造了一个麻将AI程序,并进行了大量实验来验证其有效性。实验设计包括以下几个方面:

  1. 对战策略: 在每轮对局中,采用2+2的对战策略,即2位使用A方法的麻将程序和2位使用B方法的麻将程序进行对战。
  2. 实验局数: 设定1000局对局为标准来验证各个方法的有效性。
  3. 座位顺序: 通过调换每轮游戏中麻将程序的座位顺序来消除麻将游戏中靠运气取得胜利的因素。

结果与分析

  1. 局面信息利用方法的影响: 使用局面信息利用方法的麻将程序得分大幅领先于使用追求快速听牌方法的麻将程序,在点炮率和获胜率上都优于追求快速听牌方法的麻将程序。
  • 表3显示,使用局面信息利用方法的麻将程序点炮率为0.324,获胜率为0.587,得分为973;而使用追求快速听牌方法的麻将程序点炮率为0.471,获胜率为0.413,得分为-973。
  1. 动态游戏状态划分方法的影响: 使用动态游戏状态划分方法后,点炮率大幅下降,其获胜率和得分也随之提高。使用静态游戏状态划分方法的麻将程序在游戏后期常常会做出不符合游戏规则的决策。
  • 表4显示,使用动态游戏状态划分方法的麻将程序点炮率为0.292,获胜率为0.676,得分为1872;而使用静态游戏状态划分方法的麻将程序点炮率为0.558,获胜率为0.324,得分为-1872。
  1. 与高水平麻将AI之间的比赛: 使用本文方法的麻将程序点炮率相比冠军程序降低了11.9%,获胜率提升了7.6%。
  • 表5显示,使用本文方法的麻将程序点炮率为0.332,获胜率为0.538;而冠军程序点炮率为0.451,获胜率为0.462。

结论

本文提出了多种方式来充分利用麻将游戏对局信息,并使用动态游戏状态划分方法划分游戏前后期,以保证弃牌信息利用方法、对手牌型概率计算方法和对手手牌模拟方法的准确性。实验结果显示,本文的方法最大程度利用了麻将游戏中的局面信息。未来的研究将尝试结合深度学习方法,将数学模型与神经网络模型相结合,使麻将程序的出牌决策更加合理。

这篇论文通过创新的方法显著提高了麻将博弈的水平,具有重要的理论和实际意义。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号