You are on page 1of 7

2022 年 第 36 卷 第 12 期

Journal of Chongqing University of Technology( Natural Science) Vol. 36 No. 12 2022

doi: 10. 3969 / j. issn. 1674-8425( z) . 2022. 12. 018

“机器博弈”专栏( 专栏主编: 张小川 重庆理工大学 教授)

牌型预测与蒙特卡洛模拟结合的麻将博弈策略
1,
2 1,
2
李淑琴 ,冯浩东
( 1. 北京信息科技大学 计算机学院,北京 100101;
2. 感知与计算智能联合实验室,北京 100101)

摘 要: 针对麻将博弈中状态空间巨大和隐藏信息过多等难点,提出利用局面信息缩减未
知状态空间,并通过动态划分游戏状态提升牌型预测准确率的方法 。根据麻将领域知识将对手
玩家的弃牌信息转换为可利用信息 ,预测对手玩家持有某一牌型的概率,使用这一概率约束蒙
特卡洛模拟的范围,得到对手手牌及需求牌的概率分布。 通过对比试验表明: 局面信息利用方
法和动态游戏划分方法是有效的 ,不仅可以降低出牌的点炮风险,还可以获得更高的得分,实现
了通过缩减未知状态空间提升麻将博弈水平的目的 。
关 键 词: 麻将; 计算机博弈; 非完全信息博弈; 领域知识; 蒙特卡洛模拟
中图分类号: TP311 文献标识码: A 文章编号: 1674 - 8425( 2022) 12 - 0148 - 07

不可见的。因此,麻将是典型的非完全信息博弈。
0 引言
在完全信息博弈领域,当前最出名的是谷歌
[1 - 4]
自古以来,博弈就是一个经典的研究领域,人 公司 DeepMind 团队开发的 Alpha 系列程序 ,
类生活中每时每刻都在做着平衡与决策。 每天的 彻底击败了人类选手。 与其不同,非完全信息博
衣食住行、升学就业时的选择、购物消费时的优惠 弈的解 决 面 临 诸 多 难 题。 第 一,状 态 空 间 巨 大。
折扣、国与国之间的经济竞争和军事竞争,等等, 由于在非完全信息博弈中没有办法得知当前局面
这些问题场景都可以抽象成博弈决策问题。 根据 的全部信息,所以需要进行大量模拟来求解未知
不同的角度,可以把博弈分为不同类型。 根据博 信息。非完全信息博弈的决策动作一般也不是固
弈参与者对整个博弈状态的了解程度可以把博弈 定的,例如德州扑克和斗地主中可以采取过牌操
分为完全信息博弈和非完全信息博弈。 在麻将游 作,麻将中可以进行吃、碰、杠等操作,这都会使局
戏中,玩家只能看到自己的手牌信息和一些公共 面信息更加复杂。这些原因导致非完全信息博弈
信息,而对手的手牌信息以及牌库中的信息都是 的状态空间非常庞大。 第二,信息缺失。 不同于

收稿日期: 2022 - 09 - 04
基金项目: 北京信息科技大学科技项目( 5212010937,KM201911232002)
作者简介: 李淑琴,女,博士,教授,主要从事人工智能与计算机博弈研究,E-mail: lishuqin_de@ 126. com; 通讯作者 冯浩
东,男,硕士研究生,主要从事计算机博弈研究,E-mail: haodong0808@ outlook. com。

本文引用格式: 李淑琴,冯浩东. 牌型预测与蒙特卡洛模拟结合的麻将博弈策略[J]. 重庆理工大学学报( 自然科学) ,2022,36 ( 12 ) : 148


- 154.
Citation format: LI Shuqin,FENG Haodong. Study on Mahjong game strategy based on tile prediction and Monte Carlo simulation[J]. Journal of
Chongqing University of Technology( Natural Science) , 36( 12) : 148 - 154.
2022,
李淑琴,等: 牌型预测与蒙特卡洛模拟结合的麻将博弈策略 149

完全信息博弈,非完全信息博弈的参与者并不知 性、博弈性于一体。 麻将自发明来一直深受社会


道对手的私有状态。这就意味着在完全信息博弈 各阶层的喜爱。
中的求解局部最优解方法不适用于非完全信息博 1. 1 麻将规则
弈,且没有办法准确评估自己在整个博弈局势中 本文的研究对象为大众麻将,它是以国标麻
的优劣。例如在象棋、五子棋等完全信息博弈中 将为基础简化而来。大众麻将的特点为牌型组合
可以通过搜索和遍历来得出最优决策,但这在非 多、番型多,几乎涵盖所有麻将番型,十分考验麻
完全信息博弈上是不可行的。 将技巧与策略。 牌库中有万、筒、条 3 种,点数分
在非完全信息博弈中,德州扑克是最受欢迎 别为 1 ~ 9,每个样式的牌有 4 张,总共 108 张牌。
的研究对象。参考文献[5 - 7]使用反事实虚拟遗 庄家起手 14 张牌,其他 3 位起手 13 张牌。行牌过
憾最小化算法在两人有限注德州扑克上取得了近 程,可吃、碰、杠和听,并都可获得直接收益。 行牌
似纳什均衡的效果。这是因为两人有限注德州扑 过程的优先级为: 胡 > 杠 > 碰 > 吃。 当有玩家成
克的状态空间小,因此反事实虚拟遗憾最小化算 功胡牌或牌库摸完后,牌局结束并给出总分。
法是 行 之 有 效 的。 随 后,卡 耐 基 梅 隆 大 学 的 1. 2 麻将术语
TSandholm 团 队 于 2017—2018 年 提 出 了 Libratus 本节 对 后 文 中 将 要 提 及 的 术 语 进 行 统 一
[8 - 9]
系列 程序,将改进的反事实虚拟遗憾最小化 解释。
算法与安全子问题求解方法相结合解决了多人无 顺子: 3 张连续的牌称为顺子;
限注德州扑克问题。Libratus 没有采用当时流行 相关组: 2 张连续的牌或间隔为 1 的 2 张牌称
的深度学习方法和神经网络模型,尽管取得了良 为相关组;
好的效果,但是需要极大的计算资源。 显然,德州 刻子: 3 张相同的牌称为刻子;
扑克的解决方法在麻将这种状态空间爆炸的游戏 对子: 2 张相同的牌称为对子;
中并不适用,因为其取得纳什均衡的成本是极其 吃: 当上一位玩家丢出一张牌,且可以与玩家
高昂的。 手中的牌构成顺子时,可以吃牌;
[10]
在麻将领域,Cheng 等 在 2017 年使用数学 碰: 当其他玩家丢出一张牌,且玩家手中有 2
模型通过基 本 组 合 理 论 研 究 麻 将 游 戏。 王 亚 杰 张相同的牌时,可以碰牌;
[11]
等 根据先验知识和手牌信息给出麻将出牌决 杠: 当其他玩家丢出一张牌,且玩家手中有 3
策,并使用蒙特卡洛模拟方法模拟对手手牌来防 张相同的牌时,可以杠牌;
止点炮。虽然取得了不错的效果,但其核心方法 副露: 玩家吃、碰、杠后,可以被所有玩家观察
是大量的领域知识模型。 对于弃牌信息的利用率 到的牌型称为副露;
不高,也没有根据游戏状态来动态调整先验知识。 庄家: 第一个打牌的玩家被称为庄家;
针对非完全信息博弈和麻将游戏的特点,本文的 听牌: 当玩家只剩一张牌就可以达到获胜状
工作目的就是充分利用麻将中的局面信息,尤其 态时,可以宣布听牌;
是弃牌信息,依此预测对手手牌和需求牌来缩减 向听数: 向听数指玩家的手牌还差多少张牌
未知状态空间,从而降低麻将游戏的难度。 并使 可以听牌。
用动态游戏状态划分方法适时调整局面信息利用 胡: 当玩家 组 成 获 胜 牌 型,即 4 个 顺 子 或 刻
方法,提升其准确性。 将本文方法应用于麻将程 子、一个对子时称为胡;
序后,大幅提高了麻将程序的胜率,并降低了点炮 点炮: 当玩家丢出的牌使对手达到胡牌状态
风险。 时,称为点炮。

1 麻将的规则和术语 2 局面信息利用方法

麻将作为一项智力竞技运动,集益智性、趣味 在麻将中,因为玩家的弃牌与手牌具有一定
150

的联系,玩家的信息会随着游戏进程的发展而不 根据弃牌的数量和相依程度,可以得到某一
断暴露。在麻将中转换局面信息不仅可以帮助麻 张牌对所预测牌的影响度。 计算方式如式 ( 2) 所
将程序做出更合理的出牌决策,也可以降低点炮 示,式中 A i,j 指牌 i 对牌 j 的影响度,N i 指弃牌中牌
风险,进而提高自己的收益。 本文首先根据大众 i 的张数,R i,j 指牌 i 与牌 j 的相依程度。
麻将领域知识提出弃牌信息利用方法和对手牌型 A i,j = N i × R i,j ( 2)
概率计算方法,然后进行蒙特卡洛模拟得到对手 根据某一玩家的弃牌信息可以给出该玩家拥
的手牌分布,实现对麻将局面信息的最大化利用 。 有某一张牌 i 的可能性 P Ri ,计算方法如式 ( 3) 所
2. 1 弃牌信息利用方法 示。当牌的点数不同时,其对应的相依牌数目也
本小节将把对手玩家的弃牌信息转换为可利 不同,因此式( 3) 按牌的点数将牌分为了 5 类。
用信息,并推算对手玩家持有某张牌的概率。 在 1 - A i -2,i - A i -1,i - A i,i - A i +1,i - A i +2,i 2 < i < 8
大众麻将中,同一花色的连续牌是具有强关联性 
1 - A i -1,i - A i,i - A i +1,i - A i +2,i i=2
的。针对大众麻将的规则特点,本文将在游戏的 P Ri = 1 - A i -2,i - A i -1,i - A i,i - A i +1,i i=8
前后期采取 2 种不同的弃牌信息利用方法。 
1 - A i,i - A i +1,i - A i +2,i i=1
按照当前局面的情形,根据式( 1) 计算每一张
1 - A i -2,i - A i -1,i - A i,i i=9
牌的剩余牌数。
N i = 4 - N Oi - N Mi ( 1) ( 3)

式中: N i 表示牌 i 的剩余张数; N Oi 表示对手弃牌 游戏进入中后期时,玩家的手牌已基本成型,

中牌 i 的张数; N Mi 表示我方手牌及我方弃牌中牌 i 玩家丢出的牌多数都是与手牌无关的。 当玩家弃


的张数。 牌时,理论上也不需要跟这张弃牌相关的牌。 与
大众麻将游戏前期,各个玩家都追求快速达 之对应,提出非需求牌的概念。 例如,由于 1 可以
到听牌状态,一般不会将关联牌拆分打出,所以前 3 组成顺子,当玩家打出 1 时,可能是该玩家
跟 2、
期的方法将围绕这一理念展开。 与之对应,本文 手中 并 没 有「2、3 」这 个 组 合,或 是 手 牌 中 已 有
提出相依牌的概念。 例如,若玩家丢弃某一花色 「1、
2、3」的 顺 子,或 是 已 经 跟 相 邻 的 4 组 合 成
的 5 点数牌时,其手牌中应该不会还有 5,且在弃 「2、
3、4」的组合,而不论是上述哪一个状况,都可
牌前应该没有「4、
5」、「5、
6」、「3、 7」等组合
5」、「5、 以推论该玩家对 4 的需求会降低。 类似的,以此
牌。因此,若某一玩家弃牌中有 5,应降低该玩家 为依据可以得出非需求牌表,如表 2 所示。
持有该花色牌中 3、
4、5、
6、7 的概率。 其中,持有 5 表2 非需求牌表
的概率最小,其次是 4 和 6、3 和 7。 类似的,以此
牌点数 非需求牌 牌点数 非需求牌
为依据可以得出相依牌表,如表 1 所示。 表中相
1 1、
4 6 3、
6、9
依牌与弃牌的相依程度依次降低,随着博弈的进
2 2、
5 7 4、
7
行,相依程度还会进一步降低。 此外,相依程度还
3 3、
6 8 5、
8
与玩家的听牌时机高度相关,需要动态调整。
4 1、
4、7 9 6、
9
表1 相依牌表 5 2、
5、8
牌点数 相依牌 牌点数 相依牌
1 1、
2、3 6 6、
5、4、
7、8 非需求牌主要在防守阶段使用,通过其他玩
2 2、
3、1、
4 7 7、
6、8、
5、9 家的弃牌信息来推算其不需要的牌,并且在游戏
3 3、
4、2、
1、5 8 8、
7、9、
6 终盘时根据非需求牌调整手牌的权重分,使其他
4 4、
5、3、
6、2 9 9、
8、7 玩家不需要的牌更容易被打出去,挑选弃牌时的
5 5、
4、6、
3、7 依据会从进牌收益最高的牌,变成兼具进牌收益
与防守收益的牌,以此降低自己的点炮概率。
李淑琴,等: 牌型预测与蒙特卡洛模拟结合的麻将博弈策略 151

2. 2 对手牌型概率计算方法 增加获胜概 率。 蒙 特 卡 洛 模 拟 是 一 种 统 计 学 方
在 2. 1 小节中,已经得到了玩家手牌中持有 法,用来模拟大量数据。 其核心思想就是通过模
某张牌的概率计算方法。 以此为依据,下面对玩 拟出来的大量样本集或者随机过程去近似想要研
家手中持有刻子、顺子、对子和相关组的概率进行 究的实际问题对象。对于那些由于计算过于复杂
计算。玩家手牌中拥有刻子牌型的概率计算方法 而难以得到解析解或者根本没有解析解的问题,
如公式( 4) 所示。当牌 A 的数量小于 3 时,此时不 蒙特卡洛模拟是一种有效的求出数值解的方法 。
可能存在由牌 A 组成的刻子; 当牌 A 的数量大于 在麻将游戏初期,暴露的信息过少,若在初期
等于 3 时,将根据牌 A 的数量和该玩家拥有该牌 进行蒙特卡洛模拟,只会增加模型复杂度而不会
的可能性综合计算拥有牌 A 刻子的概率。 玩家手 产生收益,因此蒙特卡洛模拟将在游戏中后期进
牌中拥有顺子牌型的概率计算方法如式 ( 5) 所示。 行。下面给出基于局面信息和蒙特卡洛的对手手
计算该玩家手牌中拥有顺子中每张牌的可能性, 牌模拟算法流程,将整个模拟过程迭代 X 次至结
选最小值作为拥有该顺子的概率。 与刻子和顺子 果收敛便可以得出对手手牌,还可以根据对手手
不同,本文在对子和相关组牌型的概率值计算上 牌模拟剩余牌库分布。 这样,麻将游戏中的信息
还考虑了弃牌中其需求牌的非需求牌数量,若其 不透明度会进一步降低,便于麻将程序对博弈局
需求牌的非需求牌数量很多,说明对手玩家手中 势做出更准确的判断。 对手手牌模拟流程如算法
有此牌型的概率极低,如式( 6) —( 8) 所示。 1 所示。

{ 算法 1 对手手牌模拟方法
N A × P RA NA ≥ 3
P AAA = ( 4)
0 NA < 3 输入: 我方手牌 H,对手弃牌 D i ,对手副露 F i ,
P ABC = min( P RA ,P RB ,P RC ) ( 5) 轮数 Round

{
N A × P RA - NN A NA ≥ 2 输出: 对手玩家的手牌分布 DH i
P AA = ( 6)
0 NA < 2 01: 根据式( 1) 计算每一张牌的剩余牌数 N i

P AB = min( P RA ,P RB ) - ( NN ( A -1) + NN ( B +1) ) /2 02: while( X - - > 0) do


03: 根据式( 9) 计算出 Round 轮的向听数 WN
( 7)
04: 根据向听数 WN,随机选择刻子数 N AAA 、顺
P AC = min( P RA ,P RC ) - NN ( A +1) ( 8)
子数 N ABC 、对子数 N AA 、相关组数 N AB
式中: P AB 指连续相关组的概率计算方式; P AC 指间
05: 随机生成刻子、顺子、对子和相关组,根据
隔相关组的概率计算方式; NN i 指的是牌 i 的非需
公式( 4 ) —( 8 ) 计算其持有概率,若概率
求牌数。
极低则重新生成
至此,手牌中各种牌型的概率计算方法已经
06: 根据随机结果更新 DH i
成型,但对手玩家手中各种牌型的数目仍然无法
07: end while
确定。接下来需要模拟对手玩家的向听数来确定
08: return DH i
玩家手牌分布。向听数将根据由大量真实对局数
据得出的每轮向听数分布 和 玩 家 副 露 数 计 算 得
3 动态游戏状态划分方法
出,为
WN = 1 + GWN - F ( 9) 在麻将游戏中,玩家的出牌与出牌时的游戏
式中: GWN 指根据真实对局统计的向听数概率分 状态是有密切联系的,合理的前后期游戏状态划
布随机选择得到的向听数; F 指玩家副露数。 分方法可以提高局面信息利用的准确率。 在以往
[12 - 13]
2. 3 对手手牌模拟方法 类似的研究中 ,常常以对大量数据样本统计
通过蒙特卡洛模拟方法来模拟对手手牌,不 后的向听数为 1 时的最大轮数分布为游戏前后期
仅可以降低给对手打出需求牌的概率,还可以辅 界线。该方法虽然可以代表多数情况,但其对于
助判断我方的需求牌数量,使我方牌型更加合理, 部分牌局情况的适应性较差,会降低局面信息转
152

换的准确性。所以本文提出了一种动态划分游戏 家 i 的吃碰次数。
前后期界线的方法,可以根据当前局面信息对游 D i = 4 - ( CP i - 1) ( 10)
戏前后期做出更为合理的分界,这会进一步提升
局面信息的利用效率,从而提高麻将程序的出牌
水平。
和以往的方式不同,本文以动作数为标准划
分游戏前后期,而不是游戏轮数。 此处的动作包
括摸牌、吃牌和碰牌。本文统计了 3 000 局真实对
局中 4 位玩家每次动作后的向听数分布,统计结
果如图 1 所示,频次指在对应动作数下的指定向
听数出现次数。 从图中可以看出,部分牌局在执
行一次动作后,就有玩家达到了 1 向听状态。 显 图2 大众麻将中向听数随吃、碰动作数变化的分布图

然,如果只依据向听数为 1 的最大轮数分布进行
前后期划分,将使麻将程序进入歧途。 而且在执 4 实验结果与分析
行动作 3、
4、5、6 次后,都有很大概率达到 1 向听
本文结合局面信息利用方法和动态游戏状态
状态,显然不能仅仅以 1 向听的最大分布动作数 4
划分方法构造了一个麻将 AI 程序,为了证明其可
为前后期分界。
靠性,在本节进行了大量实验。 在每轮对局中,采
用 2 + 2 的对战策略,即 2 位使用 A 方法的麻将程
序和 2 位使用 B 方法的麻将程序进行对战。 为了
消除麻将游戏中靠运气取得胜利的因素,本文设
定了 1 000 局对局为标准来验证各个方法的有效
性。根据麻将规则,玩家只能吃上家的牌。 因此
需要考虑不同程序之间的座位顺序,在实验时通
过调换每轮游戏中麻将程 序 的 座 位 顺 序 加 以 解
决。为了便于对比,将 2 个使用相同程序的对局
结果累加,将 点 炮 率、获 胜 率 和 得 分 作 为 比 较 标
图1 大众麻将中向听数随动作数变化的分布图
准,给出实验结果。
根据大众麻将的游戏规则,吃、碰动作对向听 4. 1 对比实验
数的影响远大于摸牌操作。 因此本文还对吃、碰 4. 1. 1 局面信息利用方法的影响
动作进行了额外的分析,统计了 3 000 局真实对局 正如前文所说,局面信息利用方法的目的是
中 4 位玩家每次吃、碰动作后的向听数分布。 因 通过转换局面信息降低麻 将 游 戏 局 面 的 不 透 明
为在执行一次吃、碰动作后 4 向听的频次极低,因 度,从而提高麻将程序的出牌水平,并降低麻将程
此在统计时将其忽略,最终的统计结果如图 2 所 序的点炮率。 为了证明其有效性,本文将其与传
示。从图中可以看出,当玩家执行 2 次吃、碰动作 统的使用追求快速听牌方法的麻将程序
[14 - 15]

后,向听数基本在 2 及 2 以下。 行对比,将 2 个使用本文方法的麻将程序和 2 个
因此,本文将以向听数为 1 时的最大分布动 使用传统方法的麻将程序进行了对战 ,结果如表 3
作数 4 为前后期分界基准,以每轮游戏中玩家的 所示。容易看出,使用局面信息利用方法的麻将
吃、碰动作次数为辅,对每轮游戏中各个玩家的前 程序得分大幅领先于使用追求快速听牌方法的麻
后期界线进行动态划分,如式 ( 10) 所示。 式中 D i 将程序,在点炮率和获胜率上都优于追求快速听
指针对 i 玩家的游戏前后期分界动作数,CP i 指玩 牌方法的麻将程序。
李淑琴,等: 牌型预测与蒙特卡洛模拟结合的麻将博弈策略 153

表3 局面信息利用方法的影响 表5 与高水平麻将 AI 比赛

程序类型 点炮率 获胜率 得分 程序类型 点炮率 获胜率 得分

使用局面信息利用方法 0. 324 0. 587 973 本文程序 0. 332 0. 538 591

使用追求快速听牌方法 0. 471 0. 413 - 973 冠军程序 0. 451 0. 462 - 591

5 结论
4. 1. 2 动态游戏状态划分方法的影响
为了证明动态游戏状态划分方法是必要的, 本文提出了多种方式来充分利用麻将游戏对
本节将动态游戏状态划分模块替换为传统的静态 局信息,并使用动态游戏状态划分方法划分游戏
麻将对局前后期划分方法进行对比试验。 使用统 前后期,以保证弃牌信息利用方法、对手牌型概率
计数据中向听数为 1 时的最大动作数分布,即玩 计算方法和对手手牌模拟方法的准确性。 实验结
家采取第 4 个动作时为前后期分界,在这里将之 果显示,本文的方法最大程度利用了麻将游戏中
称为静态游戏状态划分方法。 每场比赛包括 2 个 的局面信息。但是这些方法都是根据大众麻将的
使用动态游戏状态划分方法的麻将程序和 2 个使 游戏规则而设定的数学模型。 为了摆脱人类知识
用静态游戏状态划分方法的麻将程序 ,结果如表 4 的局限性,今后将尝试结合深度学习方法,将数学
所示。使用动态游戏状态划分方法后,点炮率大 模型与神经网络模型相结合,使麻将程序的出牌
幅下降,其获胜率和得分也随之提高。 此外,使用 决策更加合理。
静态游戏状态划分方法的麻将程序在游戏后期常
常会做出不符合游戏规则的决策,这与其对游戏
参考文献:
局面信息的错误利用有关,而动态游戏状态划分 [1] SILVER D,
HUANG A,
MADDISON C J,
et al. Mastering
方法避免了这一问题。 the game of go with deep neural networks and tree search
[J]. Nature, 529( 7587) : 484 - 489.
2016,
表4 游戏状态划分方法的影响
[2] SILVER D,
HUBERT T,
SCHRITTWIESER J,
et al. Mas-
游戏状态划分方法 点炮率 获胜率 得分 tering chess and shogi by self-play with a general rein-
动态游戏状态划分方法 0. 292 0. 676 1 872 forcement learning algorithm[J]. arXiv preprint arXiv: .
静态游戏状态划分方法 0. 558 0. 324 - 1 872 01815,
2017.
[3] SILVER D,SCHRITTWIESER J,SIMONYAN K,et al.
Mastering the game of go without human knowledge[J].
4. 2 与高水平麻将 AI 之间的比赛
Nature, 550( 7676) : 354 - 359.
2017,
本节使用本文方法构建的麻将程序与在 2020 [4] SILVER D,HUBERT T,SCHRITTWIESER J,et al. A
年中国计算机博弈锦标赛麻将项目中取得冠军成 general reinforcement learning algorithm that masters
[11]
绩的程序 进行了比赛,每场比赛包括 2 个使用 chess,
shogi,
and Go through self-play[J]. Science,
2018,
本文方法的麻将程序和 2 个冠军程序,统计了不 362( 6419) : 1140 - 1144.

同程序的点炮率、获胜率和最终得分。 该冠军程 [5] ZINKEVICH M,


JOHANSON M,
BOWLING M,
et al. Re-
gret minimization in games with incomplete information
序针对麻将游戏规则设计了一种基于弃牌优先级
[J]. Advances in Neural Information Processing Systems,
表的麻将决策方法,为不同牌型设定了不同的弃
2007,
20: 1729 - 1736.
牌先后顺序。 实验结果如表 5 所示,得益于本文
[6] BOWLING M,BURCH N,JOHANSON M,et al. Heads-
的局面信息利用方法,使用本文方法的麻将程序 up limit hold’em poker is solved[J]. Science,
2015,
347
点炮率相比冠军程序降低了 11. 9% ,获胜率提升 ( 6218) : 145 - 149.
了 7. 6% 。这表明使用本文方法构建的麻将 AI 达 [7] MASKIN E. Nash equilibrium and welfare optimality[J].
到了较高水平。 The Review of Economic Studies, 66( 1) : 23 - 38.
1999,
154

[8] BROWN N,SANDHOLM T,MACHINE S. Libratus: The [12] 任航. 基于知识与树搜索的非完备信息博弈决策的研


Superhuman AI for No-Limit Poker[C]. IJCAI. 2017: 究与应用[D]. 南昌: 南昌大学,
2020.
5226 - 5228. [13] LI S,YAN X. Let’s play mahjong! [J]. arXiv preprint
[9] BROWN N,
SANDHOLM T. Superhuman AI for heads-up arXiv: 1903. 03294,
2019.
no-limit poker: Libratus beats top professionals[J]. Sci- [14] 彭丽蓉,赵海璐,甘春晏,等. 一种大众麻将计算机博
ence, 359( 6374) : 418 - 424.
2018, 弈的胡牌方法研究[J]. 重庆理工大学学报( 自然科
[10] CHENG Y,
LI C,
LI S. Mathematical aspect of the combi- 学) , 35( 12) : 127 - 133.
2021,
natorial game“Mahjong”[J]. Southeast Asian Bulletin of [15] GAO S,
LI S X. Bloody mahjong playing strategy based on

Mathematics,
2019,
43: 815 - 826. the integration of deep learning and XGBoost[J]. CAAI

[11] 王亚杰,乔继林,梁凯,等. 结合先验知识与蒙特卡罗 Transactions on Intelligence Technology,2021,7 ( 1) : 95


- 106.
模拟 的 麻 将 博 弈 研 究[J]. 智 能 系 统 学 报,2022,17
( 1) : 69 - 78.

Study on Mahjong game strategy based on tile prediction


and Monte Carlo simulation
LI Shuqin1,2 ,FENG Haodong1,2
( 1. Computer School,Beijing Information Science and Technology University,Beijing 100101,China;
2. Perception and Computational Intelligence Joint Lab,Beijing 100101,China)

Abstract: To address the difficulties of huge state space and too much hidden information in
mahjong,this paper proposes to use situation information to reduce unknown state space and improve
the accuracy of tile prediction by dynamically dividing game stage. Based on the domain knowledge of
mahjong,this paper converts the opponent player’s discard information into available information,
predicts the probability of the opponent player holding a certain tile type,and uses this probability to
constrain the range of Monte Carlo simulation to obtain the probability distribution of the opponent’s
hand and demand tiles. Finally,the comparison tests show that the situation information utilization
method and the dynamic game division method are effective,not only to reduce the risk of discarding
winning tiles for opponents,but also to obtain higher scores,achieving the purpose of improving the
level of mahjong by reducing unknown state space.
Key words: mahjong; computer game; incomplete information game; domain knowledge; Monte
Carlo simulation

( 责任编辑 卢 燕)

You might also like