财新传媒 财新传媒

阅读:0
听报道

“二饼!三条!吃,五万!东风!九条!和了!!!”一到夜幕降临,全国各地大街小巷,房前屋后,无数麻友开始摆起了“万里长城”,很多居民区里“听取麻声一片”。“搓麻”可以称得上中国最普及的运动了,不管在寒冬腊月,东北农村的火炕上,还是炎炎夏日,“麻将之都”成都庭院里的小方桌,每当一次战役结束,一百多个麻将士兵在四双手间跑来跑去,犹如哗哗流水,广东话里还因此给麻将起了个别名“游干水”。除了中国内地和港澳台以外,“打麻雀”也是日本人、韩国人的一大爱好,据说韩国人士还提议过把麻将作为奥运会的一个项目。

麻将作为一项智力游戏,能够如此充满吸引力,在于其中牌局的千变万化,乐趣无穷,如何打好麻将也可以称得上一项学问,不过对于这项广为流行的学问,在科学界“正了八经”的研究却是少之又少。在2008年,台湾国立交通大学的一位学生的硕士毕业论文正是“麻將人工智慧之研究”,他设计了一套人工智能软件教电脑打麻将。

这篇论文中的程序与现有的电脑麻将游戏中的那些电脑“玩家”大不相同,因为这些游戏的制作者为了降低编写程序的难度,这些虚拟的玩家实际都是“作弊”的,知道扣着的牌是什么,并不是真正的以一个打麻将者的身份在玩。你如果和游戏中的三个虚拟玩家在玩,实际上他们三个都是一个电脑程序的三个部分,都是事先安排好的,你只是在和一台电脑在对抗。而这套人工智能软件则是真真正正模仿一个打麻将的人在面对亮着的牌和未知的牌如何决定打哪张牌,留哪张牌,如何猜测可能性和做决定。

我们首先简单看一下麻将的规则,有意思的是,在全国各地,麻将各有各的玩法,各成一派,有徐州麻将、温州麻将、杭州麻将、郑州麻将……,连相距几十公里的两个县城的打法也不相同,不过基本的玩法都差不多,简单的说,最开始所有的牌都是扣着的,四个人各抓13张牌(台湾玩法是15张),之后每个人轮流从自己的这13张牌中打出一张,再从扣着的牌中取回一张新的,总数还是保持在13张左右,同时玩家还可以在适当的时候把别人扔出的牌通“吃”“碰”“杠”夺到自己的牌中,这样,通过不断更新自己的十几张牌,谁先使它们形成一定整齐的花样,比如二饼三饼四饼和四组三张相同的牌,就算赢了(也就是和牌),花样不同,赢钱数额也不同,一般来说,越齐整的花样赢钱越多。在差一张牌就和的时候,叫做“上听”、“听牌”,从上听到最后和牌的这“临门一脚”有两种方式,一种是自己从扣着的牌里抓到,称为“自摸”,此时其余三人都是输家,每人都要给赢家少量的钱;另一种是从别人扔出的牌里得到,称为“点炮”、“放枪”,此时输家只有一个,就是扔出这张倒霉牌的那个家伙,另外两人不输不赢,所有的责任都由这个“点炮”者承担,要给赢家较多的钱。

这份人工智能程序在打麻将的时候,不仅时刻记录着手中的十几张牌,还记录着之前已经打出的每一张牌和已经亮出的牌,然后经过快速计算,可以算出自己手中的牌可以达到“上听”情况的所有可能性,每一次可能有几十种,然后自动选择其中最容易达到的,以此为依据来打牌和吃牌。麻将的真人玩家的大脑没有计算机的运算速度,自然没办法记住所有的牌和算出所有的牌组合方式。不过,这份程序的缺陷是没有考虑不同和牌花样赢钱数额就不同,只是追求最快的和牌可能,所以“玩一次大的”的情况一般不会有。

当一局麻将进行到后期的时候,可能几个玩家都已经“上听”,这时如果不能和牌,避免点炮成为大输家就成了首要任务,在这一点上,这套程序也有自己的办法。每一次它可以在一秒钟内决定打出哪一张牌,可是在这短短一秒钟内,电脑内却发生了复杂无比的计算,程序会模拟出其他三个玩家,每一次以一定的概率打骰子的形式决定他们是否上听,如果上听了,需要的牌是哪一张以及扣着的牌是什么,然后分别模拟自己的打出一张牌后之后会发生什么,最后是谁和了。整个过程相当于自己和自己打了成千上万场麻将,来决定自己目前的三张或四张牌中打出哪一张对自己最有利。

通过“尽快上听和牌”和“避免点炮”的两个设计思想,这套程序已经可以驰骋于牌场。其实除了会打麻将的电脑之外,会下棋的电脑很早就有了,最著名的当数美国卡内基梅隆大学开发的深蓝电脑,在1997年战败国际象棋棋王卡西帕罗夫的故事了。在2006年的中国象棋人机大战比赛中,电脑浪潮天梭也以11比9的总比分战胜了由柳大华、徐天红等五位全国冠军和象棋大师组成的联队,后来又和全国象棋冠军许银川打成了平手。不过不是所有的电脑棋手都有这么高的水平,科学家们研发的会下围棋的电脑表现就都不尽如人意,最好的只相当于围棋九段中最低的初段。也有人研制过会打桥牌的电脑,不过也只达到了业余选手标准。有人分析其中主要原因是围棋和桥牌的每一步棋或者每次出牌的复杂程度和不确定性是两种象棋的很多倍,电脑下起围棋来也常常会有点“脑子不够用”,这是造成电脑在这两个项目上“状态不佳”的主要原因。

那么这套麻将程序又有几段的水平呢?在论文中,作者把这套程序连接到一个游戏网站的服务器上,和别人打了一百局麻将后,结果在六十多局中都和牌,表现尚佳,因为麻将运气的因素不可忽略。看来如果让装着这套程序的电脑去“聚众赌博”,一晚上还十有八九可以赢一笔。

话题:



0

推荐

科学松鼠会

科学松鼠会

4011篇文章 5年前更新

什么是科学松鼠会? 我们认为,对于部分人来说,科学就像一枚枚难以开启的坚果,虽味美却不易入口。 我们希望自己能够像松鼠一样,打开科学的坚硬外壳,将有营养的果仁剥出来,让人们能够领略到科学的美妙。 我们试图让科学传播并且流行起来。 这里是科学松鼠会的网站的一个镜像,大家的留言我们可能没办法一一回复,如果您有什么问题,欢迎到科学松鼠会的主站提问:http://songshuhui.net/

文章