一种麻将智能决策方法、装置、存储介质及设备与流程

专利查询6月前  50



1.本发明涉及麻将智能决策领域,特别涉及一种麻将智能决策方法、装置、存储介质及设备。


背景技术:

2.麻将决策要解决的问题是根据麻将游戏中的可见场面信息(包括手牌、副露、对手的副露、弃牌、庄家位置等等),经过模型转化处理得出合理有效的决策,从而追求在人工智能的麻将游戏中获得更高的胜率和分数。在麻将游戏中,决策包括出牌决策与听碰杠决策。
3.目前关于智能麻将决策模型的构建主要是应用了博弈树搜索算法(expectimax search)和机器学习算法来实现。
4.1、基于机器学习的方法,首先搜集大量高等水平人类玩家的比赛数据,设计并提取相应的特征,然后构建合适的模型进行训练,得到最后的决策模型,例如日本东京大学爆打系统,使用大量数据训练线性神经网络,其决策能力能达到中高等玩家水平。基于机器学习相关方法的不同点主要在于模型的选用与特征的设计上,使用的网络主要有svm、svr、线性神经网络、卷积神经网络、残差网络等,这种方法的实现需要大量专业玩家的高水平对战数据,对于刚上线、用户量不多的麻将游戏平台则难以实现。
5.2、基于博弈树搜索算法的方法,将人类玩家的博弈知识总结成规则,再结合评估或搜索的方法计算出最佳决策,例如expectimax search算法,主要使用的方法是搜索树算法和最大期望评估函数,其搜索算法的特点是快速获胜与转牌搜索。但完整搜索树很难在有限时间内完全展开,导致机器很难快速做出决策,且由于未结合得分检测,容易使搜索树往快速胡牌方向扩展,出现局部最优问题,不能获取最大胡牌收益。


技术实现要素:

6.基于此,本发明的目的是提供一种麻将智能决策方法、装置、存储介质及设备,以至少解决搜索树很难在有限时间内完全展开,导致很难快速做出决策的技术问题。
7.根据本发明实施例的一种麻将智能决策方法,应用于计算机设备中,所述方法包括:
8.获取自身手牌,并对所述自身手牌进行排列,得到多种不同排列的目标手牌;
9.根据预设的麻将规则中的组合牌方式,对所述目标手牌进行手牌组合;
10.分别给所述目标手牌当中的每种手牌组合赋予对应预设的权重值,并将每种手牌组合的权重值进行累加,得到所述目标手牌的权重值总和;
11.根据各所述目标手牌的权重值总和,将权重值总和最高的目标手牌确定为最优权值排列手牌;
12.根据所述最优权值排列手牌进行搜索树扩展,并找到最优胡牌路径,并根据所述最优胡牌路径进行出牌决策和吃碰杠动作决策。
13.另外,根据本发明上述实施例的一种麻将智能决策方法,还可以具有如下附加的
技术特征:
14.进一步地,获取自身手牌,并对所述自身手牌进行排列,得到多种不同排列的目标手牌的步骤之后,还包括:
15.计算出各所述目标手牌对应的向听数,并根据计算得到的向听数对各所述目标手牌进行筛选。
16.进一步地,根据计算得到的向听数对各所述目标手牌进行筛选的步骤包括:
17.筛除掉向听数高于阈值的目标手牌。
18.进一步地,根据所述最优权值排列手牌进行搜索树扩展的步骤包括:
19.将所述最优权值排列手牌中缺失的有效牌作为搜索树的摸牌节点进行扩展,并将准备作为出牌节点的无用牌存储在相对应的摸牌节点信息中,探索构建多条胡牌路径。
20.进一步地,所述找到最优胡牌路径的步骤包括:
21.计算每条所述胡牌路径的胡牌概率和获胜得分,并根据每条所述胡牌路径的胡牌概率和所述获胜得分,计算得到每条所述胡牌路径的路径期望值;
22.将路径期望值最大的胡牌路径确定为最优胡牌路径。
23.进一步地,所述路径期望值的计算公式为:
24.e
path
=p
winning
*i
score
25.式中,e
path
所述路径期望值,p
winning
表示所述胡牌概率,t
score
表示所述获胜得分。
26.进一步地,所述胡牌路径的胡牌概率的计算公式为:
[0027][0028]
式中,p
winning
表示所述胡牌概率,表示所述胡牌路径中第i个所述有效牌的获取概率,n表示所述胡牌路径中所述有效牌的总数;
[0029]
其中,
[0030][0031]
其中,p
selfi
表示玩家自身摸到第i个有效牌的概率,p
otheri
表示的是其他玩家摸到第i个有效牌的概率,ni表示第i个有效牌的剩余张数,n
left
表示牌墙中剩下的牌总数,ni的计算公式为:ni=4-t
i-ai*gi,其中ti表示第i个有效牌在牌桌上已经显示的数量,ai表示对手建模中对第i个有效牌估计的精确度,gi表示对手建模中预测的第i个有效牌已经被其他玩家摸走的张数,第i个有效牌作为搭子的有效牌时,bias=1,第i个有效牌为对子的有效牌时,bias=5,其他情况bias=0。
[0032]
另外,本发明还提出一种麻将智能决策装置,所述装置包括:
[0033]
手牌排列模块,用于获取自身手牌,并对所述自身手牌进行排列,得到多种不同排列的目标手牌;
[0034]
手牌组合模块,用于根据预设的麻将规则中的组合牌方式,对所述目标手牌进行手牌组合;
[0035]
手牌权值计算模块,用于分别给所述目标手牌当中的每种手牌组合赋予对应预设的权重值,并将每种手牌组合的权重值进行累加,得到所述目标手牌的权重值总和;
[0036]
最优手牌确定模块,用于根据各所述目标手牌的权重值总和,将权重值总和最高的目标手牌确定为最优权值排列手牌;
[0037]
智能决策模块,用于根据所述最优权值排列手牌进行搜索树扩展,并找到最优胡牌路径,并根据所述最优胡牌路径进行出牌决策和吃碰杠动作决策。
[0038]
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的麻将智能决策方法。
[0039]
本发明还提出一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的麻将智能决策方法。
[0040]
与现有技术相比:通过对手牌进行排序,并对每种排序的手牌进行组合,并赋予每种手牌组合对应预设的权重值,以得到每种排序的手牌的权重值总和,并将权重值总和最高的目标手牌确定为最优权值排列手牌,并以最优权值排列手牌进行搜索树扩展,由于在进行搜索树扩展之前,已经筛选确定了最优手牌,因此在进行树搜索时就可以作出合理的剪枝,极大的减少了搜索时间,相比于传统的expectimax search算法,具有更明显的响应速度优势。
附图说明
[0041]
图1为本发明第一实施例中的麻将智能决策方法的流程图;
[0042]
图2为本发明实施例提供的手牌不同排列的示意图;
[0043]
图3为本发明第二实施例中的麻将智能决策方法的流程图;
[0044]
图4为本发明实施例提供的构建胡牌搜索树的示意图;
[0045]
图5为本发明第三实施例中的麻将智能决策装置的结构示意图;
[0046]
图6为本发明第四实施例中的计算机设备的结构示意图。
[0047]
以下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
[0048]
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
[0049]
需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
[0050]
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的
技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
[0051]
实施例一
[0052]
请参阅图1,所示为本发明第一实施例中的麻将智能决策方法,应用于计算机设备,该计算机设备可以由软件和/或硬件来实现所述方法,所述方法具体包括步骤s01至步骤s05。
[0053]
步骤s01,获取自身手牌,并对所述自身手牌进行排列,得到多种不同排列的目标手牌。
[0054]
在具体实施时,本发明可以应用在人机对战的4人麻将游戏当中,人机采用本麻将智能决策方法来进行决策出牌。获取麻将场面信息之后,需要对自身手牌进行整理。在一副手牌中,根据麻将的不同排列计算规则,手牌可以划分为很多排列方式。即在获取到自身手牌之后,会对手牌进行排列,找到所有可能的手牌排列,例如对于手牌[2,3,4,4,5],可以有图2中多种排列方式,由此得到不同排列方式的目标手牌。
[0055]
步骤s02,根据预设的麻将规则中的组合牌方式,对所述目标手牌进行手牌组合。
[0056]
其中,预设的麻将规则中的组合牌可以为但不限于顺子、刻子、对子、连续搭、间隔搭等,以平胡为例,平胡的胡牌组成单位是:顺子(3张同花色依次递增的牌)、刻子(3张完全相同的牌,杠也视为一种刻子)和将牌(2张完全相同的牌,也称为对子)。另外,搭子定义为差一张有效牌可以组成顺子或刻子的组合。
[0057]
即,在对手牌进行排列之后,按照预设的麻将规则中的组合牌方式对每种排列的目标手牌进行手牌组合,同一目标手牌可能存在多种手牌组合,如图2所示。
[0058]
步骤s03,分别给所述目标手牌当中的每种手牌组合赋予对应预设的权重值,并将每种手牌组合的权重值进行累加,得到所述目标手牌的权重值总和。
[0059]
步骤s04,根据各所述目标手牌的权重值总和,将权重值总和最高的目标手牌确定为最优权值排列手牌。
[0060]
具体来说,为缩小搜索树的扩展规模,选择更有价值的扩展起始节点,在结合大量麻将数据统计和部分麻将高手经验的基础上,对麻将中各类手牌组合赋予了各自不同的特殊权值,如[3万,3万,3万]此类3张一样的手牌组合权值为25,3张连续的手牌[2万,3万,4万]赋予权值为10,两张一样手牌[2万,2万]赋予权值为6等等,将一类排列中的所有组合的权值累加作为该类排列手牌的完整权值,并选取权值排列中高于阈值的排列作为搜索树的一个起始节点。例如在图2所示手牌及其排列组合方式当中,[[2,3,4],[4,5]]的排列组合方式的权值最高,因此确定[[2,3,4],[4,5]]为最优权值排列手牌。
[0061]
示例而非限定,在本实施例一些可选情况当中,经过大量人类麻将对局数据统计和测试,不同手牌组合对应预设的权重值优选如下表1所示:
[0062]
表1:
[0063]
[0064][0065]
其中,部分麻将中缺一门规则的判断也是采用同样的方法,我们计算麻将中万条筒3种花色的各自最高权值,并将权值最低的花色作为缺一门的选择,在出牌决策中,若存在定缺花色手牌,不会进入树搜索,直接优先将定缺花色手牌作为出牌决策结果。
[0066]
步骤s05,根据所述最优权值排列手牌进行搜索树扩展,并找到最优胡牌路径,并根据所述最优胡牌路径进行出牌决策和吃碰杠动作决策。
[0067]
在具体实施时,在确定最优权值排列手牌之后,可以以最优权值排列手牌中缺失的有效牌(最终胡牌还缺少的牌)作为摸牌节点、并以最优权值排列手牌中的无用牌(最终胡牌不需要的牌)作为出牌节点进行搜索树扩展,探索构建多条胡牌路径,再以最大期望评估函数来确定最优胡牌路径,最终以最优胡牌路径进行出牌决策和吃碰杠动作决策即可。
[0068]
综上,本发明上述实施例当中的麻将智能决策方法至少具有如下有益效果:
[0069]
1)通过对手牌进行排序,并对每种排序的手牌进行组合,并赋予每种手牌组合对应预设的权重值,以得到每种排序的手牌的权重值总和,并将权重值总和最高的目标手牌确定为最优权值排列手牌,并以最优权值排列手牌进行搜索树扩展,由于在进行搜索树扩展之前,已经筛选确定了最优手牌,因此在进行树搜索时就可以作出合理的剪枝,极大的减少了搜索时间,相比于传统的expectimax search算法,具有更明显的响应速度优势;
[0070]
2)本方案不需要大量的高水平玩家用户数据和大量的计算资源进行训练,具有更好的普适性以及更高的商业价值。由于在实际商业运用的过程中,很多游戏公司需要在刚上线的麻将游戏内配置高水平的麻将ai,但是由于没有积累足够多的用户数据和价格高昂的gpu进行训练,所以很难利用监督学习方法构建麻将ai。相比之下,本方案只需要根据先验知识修正部分参数和规则,就可以构建出一个较高水平麻将ai;
[0071]
3)本方案具有决策可解释性,可跟踪决策流程并作出灵活的调整。在深度学习,强化学习等传统的机器学习方法中深层网络是“黑匣子”型,即使现在研究人员也不能完全了解深层网络的“内部”,导致智能体调试难度极大,目前只能通过提升数据集质量和重新设计网络结构实现,并且耗时耗力。本方案的搜索树扩展流程和节点评估函数均根据各类麻将的游戏规则和技巧灵活设计,可追踪搜索树扩展的完整流程,调试方便;只需调整部分规则和评估方式即可设计一种较高水平的麻将ai,更具通用性和普适性。
[0072]
实施例二
[0073]
请参阅图3,所示为本发明第二实施例中的麻将智能决策方法,应用于计算机设备,该计算机设备可以由软件和/或硬件来实现所述方法,所述方法具体包括步骤s11至步骤s18。
[0074]
步骤s11,获取自身手牌,并对所述自身手牌进行排列,得到多种不同排列的目标手牌。
[0075]
步骤s12,计算出各所述目标手牌对应的向听数,并根据计算得到的向听数对各所述目标手牌进行筛选,具体为筛除掉向听数高于阈值的目标手牌。
[0076]
其中,向听数是指距离胡牌的有效牌个数。本实施例通过向听数来对不同排列的目标手牌进行初步筛选,以筛选掉向听数高于阈值的目标手牌,剩余手牌为更接近胡牌的手牌,从而以进一步缩短搜索时间,提供响应速度。
[0077]
步骤s13,根据预设的麻将规则中的组合牌方式,对筛选后的目标手牌进行手牌组合。
[0078]
步骤s14,分别给所述目标手牌当中的每种手牌组合赋予对应预设的权重值,并将每种手牌组合的权重值进行累加,得到所述目标手牌的权重值总和。
[0079]
步骤s15,根据各所述目标手牌的权重值总和,将权重值总和最高的目标手牌确定为最优权值排列手牌。
[0080]
需要说明的是,在相同的向听数下,不同的组合方式在游戏中对应着不同价值,例如[2万,4万]和[2万,2万]中虽对应相同的向听数,但是由于麻将游戏中碰牌这个游戏规则的存在,[2万,2万]明显价值更高。因此经过向听数筛选之后,还需要通过最优权重排列方式来进一步筛选,例如筛选出相同向听数下的最优组合。
[0081]
步骤s16,将所述最优权值排列手牌中缺失的有效牌作为搜索树的摸牌节点进行扩展,并将准备作为出牌节点的无用牌存储在相对应的摸牌节点信息中,探索构建多条胡牌路径。
[0082]
具体地,将手牌信息经过最优权值排列筛选处理后,放入搜索树进行搜索树扩展至节点中手牌达到胡牌状态。传统expectimax search算法采用的是节点全搜索,即将手牌中每张牌作为出牌节点(discard),麻将中所有牌类作为摸牌节点(take),如图4中左图所示;而本实施例当中的搜索树扩展方式完全不同,本实施例仅将手牌排列中缺失的有效牌作为搜索树的摸牌节点进行扩展,同时舍弃了对应丢牌动作的出牌节点,将准备作为出牌节点的无用牌存储在相对应的摸牌节点信息中,如图4中右图所示,将整个过程抽象成摸牌的过程,在精确搜索树的基础上进一步将搜索树的搜索深度减少一半。
[0083]
步骤s17,计算每条所述胡牌路径的胡牌概率和获胜得分,并根据每条所述胡牌路径的胡牌概率和所述获胜得分,计算得到每条所述胡牌路径的路径期望值。
[0084]
在具体实施时,在步骤s17之前,还可以采用知识和蒙特卡洛模拟方法构建对手模型,以对其他玩家手牌信息和牌墙信息进行预测,并将预测结果转化和生成为自摸概率表。具体来说,在麻将的博弈过程中,玩家会通过保留搭子(2张相同的牌、相邻或间隔一张的序数牌)和面子(刻子与顺子的合称)等组合牌来尽量减少向听数,所以我们可以通过推测每轮的向听数来进一步推测玩家手牌中搭子和面子的数量。并且随着博弈进程的发展,玩家执行的动作越来越多,例如出牌和吃、碰、杠等动作,因此暴露的信息也越来越多,隐藏信息
的空间也相对缩减,所以通过结合知识和蒙特卡洛方法来模拟对手的手牌,进而推测出对手的有效牌分布和牌墙剩余牌的分布,最后转化为每张牌的自摸概率表和出牌危险度表,下面将具体介绍对手模型的构建方法。
[0085]
麻将作为一个4人竞技博弈,每位玩家对我们的影响都不同,例如在吃牌只能通过上家的弃牌来实现,因此上家的出牌对我们至关重要,同理,我们也要尽量减少打出下家需要的牌。在本模块中,本文方法对每位玩家都建立了模型,使用p来表示玩家集合,p={0,1,2,3},其中0表示我方,1、2、3分别表示我方的下家,对家和上家。在每次模拟中,对每位玩家i∈(1,2,3),以概率α(α设定为此轮中该向听数分布的占比,可以从该种类麻将的向听数在该轮数中的分布统计结果中计算得到)随机选择向听数wn,然后根据模拟的向听数wn随机选择出面子和搭子的数量组合(n3,n2),面子和搭子与向听数的计算关系如公式(1)所示:
[0086][0087]
式中,n
max
表示最大向听数,n3表示手牌达到获胜模式时具有的最大面子数,在具有14张初始手牌麻将中,有n
max
=14,n3=4。n
t3
,n
t2
分别表示当前手牌中面子和搭子的数量。
[0088]
接下来,基于选定的面子与搭子数量(n
t3
,n
t2
),分配具体的组合牌。为更加符合真实环境中的分布情况,本文计算了每种组合牌的分配度p,公式(2)~(5)分别给出了刻子aaa、顺子abc,对子aa和连续搭/间隔搭ab/ac的分配度计算方法:
[0089][0090]
p
abc
=min(ni,nj,nk)+bias
ꢀꢀ
(3)
[0091][0092]
p
ab/ac
=min(ni,nj)+bias
ꢀꢀ
(5)
[0093]
式中,(ni,nj,nk)分别表示面子中每张牌的数量,(ni,nj)分别表示搭子中每种牌的数量,bias表示偏差,本专利将结合麻将博弈的经验和知识来具体调整,例如:
[0094]
1)对于公式(2),当包含该牌的顺子可能数量为0时,如果该牌未出现的张数不小于3,该牌极有可能已经形成刻子,并存在于其他玩家手牌中,因此需要增加其分配度。例如2w的未出现的数量不小于3,对(2w,2w,2w)进行分配度计算时,如果3w已经全部出现,因此其他玩家手牌中不可能还存在(1w,2w,3w)或(2w,3w,4w)的顺子,2w形成刻子的概率相对变高。
[0095]
2)由于弃牌一般是该玩家不需要的牌,在后续对局过程中,几乎不会再次成为该玩家的有效牌,因此,在对公式(4)和(5)中aa或ab/ac的分配度计算时,不再分配有效牌为该弃牌的搭子,本文对此情况下的搭子的分配度设定为0。
[0096]
3)根据一般统计规律和经验,玩家一般会保留联系性较强的中心牌,例如牌值为3到7的牌,而打出边张1、2、8、9与字牌,因此,如果边张的剩余张数较多时,其成为刻子的概率相对较高,因此,在对边张的aaa进行分配度计算时,可以适当增加bias的值,而对中心张的abc进行分配度计算时,可以适当增加bias的值,等等。其中,所述联系性指该牌能与其他
牌组成搭子或面子的能力,例如与3w具有联系的牌为1w、2w、3w、4w和5w,该牌的联系性较高,而字牌的联系性牌只有该牌本身,因此联系性较低。
[0097]
在为所有对手分配完具体的搭子和面子后,本文将未分配的牌设定为牌墙的牌,即我们有可能会摸到的牌,并将其转化为每张牌的自摸概率表t
self-mo
,自摸概率的计算方法如公式(6)所示:
[0098][0099]
其中,ni表示第i张牌在牌墙中的数量,w表示牌墙。
[0100]
其中,所述胡牌路径的胡牌概率的计算公式为:
[0101][0102]
式中,p
winning
表示所述胡牌概率,表示所述胡牌路径中第i个所述有效牌的获取概率,n表示所述胡牌路径中所述有效牌的总数;其中有
[0103][0104]
其中,p
selfi
表示玩家自身摸到第i个有效牌的概率,p
otheri
表示的是其他玩家摸到第i个有效牌的概率,p
selfi
和p
otheri
可通过自摸概率表t
self-mo
获取得到,ni表示第i个有效牌的剩余张数,n
left
表示牌墙中剩下的牌总数,ni的计算公式为:ni=4-t
i-ai*gi,其中ti表示第i个有效牌在牌桌上已经显示的数量(即已出现的张数),ai表示对手建模中对第i个有效牌估计的精确度,ai一般取值为0.5-1,gi表示对手建模中预测的第i个有效牌已经被其他玩家摸走的张数,第i个有效牌作为搭子的有效牌时,bias=1,第i个有效牌为对子的有效牌时,bias=5,其他情况bias=0。
[0105]
此外,对于获胜得分,在手牌达到获胜模式后,获胜模式中可能还存在一些特定的得分组合,这些得分组合被称为番型。在国标竞技麻将中,番型按番数分为1、2、4、6、8、12、16、24、32、64和88番共81种,因此,麻将一局的输赢差别可能会很大。在搜索过程中,如果过分追求快速获胜,可能会错过一些大番牌型,例如手牌为123w、456w和679w的牌型时,搭子67w的有效牌为5w和8w,而搭子79w的有效牌只有8w,如果只考虑获胜概率作为评估值,会保留67w而打出9w,这样会错过组成123456789w分数为16番的清龙番型,因此本专利增加了番型检测模块来完善最终的期望值评估。
[0106]
番型检测主要与2个要素有关,一是组合的表现形式,例如在大三元番型中,必须包含中、发、白3个刻子,碰碰胡番型中,所有面子必须为刻子等,二是组合的花色信息,例如清一色番型,所有手牌必须是同一种花色,且不能包含字牌等。受这些信息启发,本文在树
搜索的结点存储了刻子、顺子和将牌的相关信息,这些组合信息不仅包含了上述的所有检测要素,而且还包含了手牌的合理组成形式,直接使用这些组合信息进行番型检测时,能极大减少计算量。此外,某些大番组合中可能会包含一些小番,例如大三元包含了三元牌,根据麻将计分规则,这样的情况只计最大番,因此需要在番型检测的最后进行过滤处理。
[0107]
进一步地,在计算出每条胡牌路径的胡牌概率和获胜得分之后,就可以根据每条胡牌路径的胡牌概率和获胜得分,计算得到每条胡牌路径的路径期望值,具体地,所述路径期望值的计算公式为:
[0108]epath
=p
winning
*i
score
ꢀꢀ
(11)
[0109]
式中,e
path
所述路径期望值,p
winning
表示所述胡牌概率,t
score
表示所述获胜得分。
[0110]
本方法设定了获胜概率来评估本条路径达到获胜模式的难易度,由路径中所有有效牌获取概率累乘得到,所有路径中评估值最低路径中的无效牌作为最终决策结果;为避免搜索树仅向概率最大方向,也就是快速胡牌方向扩展,陷入局部最优解,我们引入了获胜得分作为最终评估值的一部分,同时将搜索树按照不同的牌型进行不同方向进行扩展;由于搜索树优化掉了常规搜索的出牌节点,导致在路径评估中没有了出牌危险度的概念,简化了评估公式。最终评估值为该路径所有节点的获取概率与最终扩展结果所预估的分数累乘获取。
[0111]
步骤s18,将路径期望值最大的胡牌路径确定为最优胡牌路径,并根据所述最优胡牌路径进行出牌决策和吃碰杠动作决策。
[0112]
麻将中的决策分为2类:出牌决策与吃、碰、杠动作决策。当进行出牌决策时,结合局势分析模块,判断此时是否需要弃胡,如果不需要,则采用搜索树来探索获胜路径,由公式(11)生成每条路径的评估值e
path
,相应的,路径上所有出牌的期望值都设置为路径的评估值,而出牌的总期望值由所有包含该出牌的路径评估值累加得到,其计算方法如公式(12)所示:
[0113][0114]
式中,表示第i张出牌的期望值,表示包含该出牌的所有路径中的第j条路径的期望值。相应的,模型的最佳出牌决策为期望值最大的牌。当手牌的牌力过低时,例如手牌的向听数过高以至于难以在有限回合内获胜,或手牌的有效牌难以获取等,此时我们会采取弃胡策略,选择rt中风险值最低的牌打出。
[0115]
对于吃、碰动作决策,我们每次执行该类动作时,会将弃牌加入到手牌,生成一个面子并移出手牌,然后再打出一张牌,其本质仍然是获取一张有用牌然后打出一张无用牌,因此,我们对比执行动作前后的手牌的最佳出牌的评估值,首先对未采取动作的手牌h,使用上述出牌决策评估方法,计算最佳出牌的评估值e
tile
,然后将弃牌加入到手牌h中,生成操作后的手牌h-,计算所有可执行的动作,将生成的面子移出手牌,计算最佳出牌评估值如果则选择该动作并执行,否则放弃。对于杠动作决策,在不减少当前手牌期望值时,都选择执行。
[0116]
相比于第一实施例,本实施例当中的麻将智能决策方法还具有如下有益效果:
[0117]
1)本实施例利用向听数和最优权值来对手牌排列进行筛选,并优化掉了常规搜索的出牌节点,决策时间得到了更大的改善,传统的expectimax search算法在往下搜索两层的情况下需要耗时6.778s来完成计算,而本方案只需0.01s内就能完成整颗搜索树的扩展并作出相应的决策;
[0118]
2)改进了以往算法存在的一些不足,从而使模型的胜率与得分都有了进一步的提升,本方案的模型具有更高的胜率以及胡牌得分。
[0119]
实施例三
[0120]
本发明另一方面还提供一种麻将智能决策装置,请查阅图5,所示为本发明第三实施例中的麻将智能决策装置,应用于计算机设备,所述装置包括:
[0121]
手牌排列模块11,用于获取自身手牌,并对所述自身手牌进行排列,得到多种不同排列的目标手牌;
[0122]
手牌组合模块12,用于根据预设的麻将规则中的组合牌方式,对所述目标手牌进行手牌组合;
[0123]
手牌权值计算模块13,用于分别给所述目标手牌当中的每种手牌组合赋予对应预设的权重值,并将每种手牌组合的权重值进行累加,得到所述目标手牌的权重值总和;
[0124]
最优手牌确定模块14,用于根据各所述目标手牌的权重值总和,将权重值总和最高的目标手牌确定为最优权值排列手牌;
[0125]
智能决策模块15,用于根据所述最优权值排列手牌进行搜索树扩展,并找到最优胡牌路径,并根据所述最优胡牌路径进行出牌决策和吃碰杠动作决策。
[0126]
进一步地,在一些可选实施例当中,所述麻将智能决策装置还包括:
[0127]
向听数筛选模块,用于计算出各所述目标手牌对应的向听数,并根据计算得到的向听数对各所述目标手牌进行筛选。
[0128]
进一步地,在一些可选实施例当中,所述向听数筛选模块具体还可以用于筛除掉向听数高于阈值的目标手牌。
[0129]
进一步地,在一些可选实施例当中,所述智能决策模块15包括:
[0130]
搜索树扩展单元,用于将所述最优权值排列手牌中缺失的有效牌作为搜索树的摸牌节点进行扩展,并将准备作为出牌节点的无用牌存储在相对应的摸牌节点信息中,探索构建多条胡牌路径。
[0131]
进一步地,在一些可选实施例当中,所述智能决策模块15还包括:
[0132]
最优路径确定单元,用于计算每条所述胡牌路径的胡牌概率和获胜得分,并根据每条所述胡牌路径的胡牌概率和所述获胜得分,计算得到每条所述胡牌路径的路径期望值;将路径期望值最大的胡牌路径确定为最优胡牌路径。
[0133]
需要说明的是,上述各模块、单元被执行时所实现的功能或操作步骤与上述方法实施例大体相同,在此不再赘述。
[0134]
实施例四
[0135]
本发明另一方面还提出一种计算机设备,请参阅图6,所示为本发明第四实施例当中的计算机设备,包括处理器10、存储器20以及存储在存储器上并可在处理器上运行的计算机程序30,所述处理器10执行所述计算机程序30时实现如上述的麻将智能决策方法。
[0136]
其中,所述计算机设备可以为但不限于麻将机、电脑、手机等能够进行虚拟麻将游
戏的电子设备。处理器10在一些实施例中可以是一中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器20中存储的程序代码或处理数据,例如执行麻将决策程序等。
[0137]
其中,存储器20至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器20在一些实施例中可以是计算机设备的内部存储单元,例如该计算机设备的硬盘。存储器20在另一些实施例中也可以是计算机设备的外部存储装置,例如计算机设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器20还可以既包括计算机设备的内部存储单元也包括外部存储装置。存储器20不仅可以用于存储安装于计算机设备的应用软件及各类数据,例如麻将决策程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0138]
可选地,该计算机设备还可以包括用户接口、网络接口、通信总线等,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在计算机设备中处理的信息以及用于显示可视化的用户界面。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口),通常用于在该装置与其他电子装置之间建立通信连接。通信总线用于实现这些组件之间的连接通信。
[0139]
需要指出的是,图6示出的结构并不构成对计算机设备的限定,在其它实施例当中,该计算机设备可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0140]
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的麻将智能决策方法。
[0141]
本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或装置(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或装置取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或装置而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或装置或结合这些指令执行系统、装置或装置而使用的装置。
[0142]
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0143]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件
或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0144]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0145]
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

技术特征:
1.一种麻将智能决策方法,其特征在于,应用于计算机设备中,所述方法包括:获取自身手牌,并对所述自身手牌进行排列,得到多种不同排列的目标手牌;根据预设的麻将规则中的组合牌方式,对所述目标手牌进行手牌组合;分别给所述目标手牌当中的每种手牌组合赋予对应预设的权重值,并将每种手牌组合的权重值进行累加,得到所述目标手牌的权重值总和;根据各所述目标手牌的权重值总和,将权重值总和最高的目标手牌确定为最优权值排列手牌;根据所述最优权值排列手牌进行搜索树扩展,并找到最优胡牌路径,并根据所述最优胡牌路径进行出牌决策和吃碰杠动作决策。2.根据权利要求1所述的麻将智能决策方法,其特征在于,获取自身手牌,并对所述自身手牌进行排列,得到多种不同排列的目标手牌的步骤之后,还包括:计算出各所述目标手牌对应的向听数,并根据计算得到的向听数对各所述目标手牌进行筛选。3.根据权利要求2所述的麻将智能决策方法,其特征在于,根据计算得到的向听数对各所述目标手牌进行筛选的步骤包括:筛除掉向听数高于阈值的目标手牌。4.根据权利要求1所述的麻将智能决策方法,其特征在于,根据所述最优权值排列手牌进行搜索树扩展的步骤包括:将所述最优权值排列手牌中缺失的有效牌作为搜索树的摸牌节点进行扩展,并将准备作为出牌节点的无用牌存储在相对应的摸牌节点信息中,探索构建多条胡牌路径。5.根据权利要求4所述的麻将智能决策方法,其特征在于,所述找到最优胡牌路径的步骤包括:计算每条所述胡牌路径的胡牌概率和获胜得分,并根据每条所述胡牌路径的胡牌概率和所述获胜得分,计算得到每条所述胡牌路径的路径期望值;将路径期望值最大的胡牌路径确定为最优胡牌路径。6.根据权利要求5所述的麻将智能决策方法,其特征在于,所述路径期望值的计算公式为:e
path
=p
winning
*t
score
式中,e
path
所述路径期望值,p
winning
表示所述胡牌概率,t
score
表示所述获胜得分。7.根据权利要求6所述的麻将智能决策方法,其特征在于,所述胡牌路径的胡牌概率的计算公式为:式中,p
winning
表示所述胡牌概率,表示所述胡牌路径中第i个所述有效牌的获取概率,n表示所述胡牌路径中所述有效牌的总数;其中,
其中,p
selfi
表示玩家自身摸到第i个有效牌的概率,p
otheri
表示的是其他玩家摸到第i个有效牌的概率,n
i
表示第i个有效牌的剩余张数,n
left
表示牌墙中剩下的牌总数,n
i
的计算公式为:n
i
=4-t
i-a
i
*g
i
,其中t
i
表示第i个有效牌在牌桌上已经显示的数量,a
i
表示对手建模中对第i个有效牌估计的精确度,g
i
表示对手建模中预测的第i个有效牌已经被其他玩家摸走的张数,第i个有效牌作为搭子的有效牌时,bias=1,第i个有效牌为对子的有效牌时,bias=5,其他情况bias=0。8.一种麻将智能决策装置,其特征在于,应用于计算机设备中,所述装置包括:手牌排列模块,用于获取自身手牌,并对所述自身手牌进行排列,得到多种不同排列的目标手牌;手牌组合模块,用于根据预设的麻将规则中的组合牌方式,对所述目标手牌进行手牌组合;手牌权值计算模块,用于分别给所述目标手牌当中的每种手牌组合赋予对应预设的权重值,并将每种手牌组合的权重值进行累加,得到所述目标手牌的权重值总和;最优手牌确定模块,用于根据各所述目标手牌的权重值总和,将权重值总和最高的目标手牌确定为最优权值排列手牌;智能决策模块,用于根据所述最优权值排列手牌进行搜索树扩展,并找到最优胡牌路径,并根据所述最优胡牌路径进行出牌决策和吃碰杠动作决策。9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一所述的方法。10.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一所述的方法。

技术总结
本发明提供一种麻将智能决策方法、装置、存储介质及设备,该方法包括:获取自身手牌,并对自身手牌进行排列,得到多种不同排列的目标手牌;根据预设的麻将规则中的组合牌方式,对目标手牌进行手牌组合;分别给目标手牌当中的每种手牌组合赋予对应预设的权重值,并将每种手牌组合的权重值进行累加,得到目标手牌的权重值总和;根据各目标手牌的权重值总和,将权重值总和最高的目标手牌确定为最优权值排列手牌;根据最优权值排列手牌进行搜索树扩展,并找到最优胡牌路径,并根据最优胡牌路径进行出牌决策和吃碰杠动作决策。本发明在进行树搜索时就可以作出合理的剪枝,极大的减少了搜索时间,相比于传统的Expectimax Search算法,具有更明显的响应速度优势。有更明显的响应速度优势。有更明显的响应速度优势。


技术研发人员:李一华 肖凌峰 王嘉旸 黄伟 熊唤亮 王命延
受保护的技术使用者:江西中至科技有限公司
技术研发日:2021.12.30
技术公布日:2022/3/8

最新回复(0)