为什么AI无法在桥牌战胜人类?
最近读到两篇谈人工智能(AI)的文章。一篇有关桥牌,一篇有关数学定理的推导。正好自己这两方面均有涉猎,就写两篇谈谈自己的感想。
在国际象棋,IBM的深蓝于1997年战胜了(蝉联)23届世界冠军,苏联的卡斯帕罗夫,六局的比分为2.5 : 3.5。2016年,Google的AlphaGo以4 : 1战胜了18次围棋世界冠军,韩国的李世石。经过这么多年,AI又有了长足的进步,如果现在“两人”再比,很有可能是0 : 6 了和0 : 5了。人脑再厉害,也算不过当今的计算机。
相比之下,桥牌方面,至今尚未有百战百胜的AI面世。美国桥牌协会最近的一篇文章点出了关键,在桥牌中,信息是不完整的。除了无所事事的明手,其余三人都只能看到两手牌。有经验的牌手,就能通过合法渠道,尽可能抓捕这些缺失的信息。
比如在敌方叫成满贯后,防守方脸上露出一丝不易察觉的微笑。再比如防守方看到明手后,不易察觉地皱了一下眉头。这些信息,一般牌手可能会忽略,高手就像嗅到了猎物。另一方面,有经验的牌手城府极深,你很难从他们脸上抓捕到有用的信息。而这些皱眉微笑之类的信息,对AI就要求太高了。
曾经有一副实战牌例,南家开叫(东西不叫)1S-2C-3C-3S,最后问A以后叫到6S。首攻的西家持有 S JT32 和 C K2。超级专家西家首攻C2。即使CK飞不中,庄家也有“12”墩赢张。为了防止可能的C 将吃,庄家打明手的CA。当他稍后发现将牌1-4分布,为时已晚。面对这样的西家,经过常规训练的南家AI怎么可能赢。在这儿,很显然,缺失的信息主要就是将牌1-4。
下面的例子更为诡异,根本无法对AI加以训练。著名已故桥牌作家 Alfred Sheinwold 曾经给过这样的例子。MP,南北主打3NT。明手(北家)建立了一个长套,但已经没有方便的进手,唯一可能的进手在一旁套(假定C)。北家有KJ9,东家QT4,西家A32,南家8765。南家出5,西家放3没有任何痛苦,北家放9,东家赢T。
以后南家进手,再打6。如果西家城府极深,面不改色心不跳,很自然地放2。庄家大概率会认为东家有A而放J,于是明手彻底死掉,有若干超墩的3NT就这样打宕了。然而,即使是很有经验的西家,第二张C放2也难免会犹豫一下。即使是一刹那的犹豫,也明白无误的告诉庄家他有A。于是北家赢CK,又多超一墩。
Sheinwold的结论是,在庄家打第二墩C时,最佳打法是很自然地(Smooth)放2,次佳打法是赢A,最差劲的牌手是犹豫(哪怕是一刹那)之后打2。对于这副牌的内在逻辑,训练团队该如何训练。
桥牌的一个分支,是近乎娱乐的双明手,庄家看了四家的牌,如何将定约完成。这儿没有缺失的信息,电脑就可以大显身手了。朋友给了我一份“习题集”,共500多副牌。按难度分为1-8级。题目中有几处是空缺,我一下子明白了,这是电脑设计的牌局。桥牌和电脑高手合作,用程序从各个可能的方向进行搜索,然后进行评级。一般来说,一级需要思考两步,N级需要N+1步。低于一级的舍去。有些方向找不出题目,就出现了如上所说的空缺。我在下面选取两副,让读者开开眼界。
#76 (三级),南主打5NT,西家首攻S4。在我看来,这副定为三级,实在是低估了。如果桥牌专业的教授将这三级题作为送分题,哪还有学生们的活路。
北:S J, H A32, D A32, C QT9874
东:S QT9, H QT9, D QT9, C KJ32
南:S AK732, H KJ84, D KJ4, C A
西:S 8654, H 765, D 8765, C 65
#93 (六级),南主打3NT,西家首攻C7。这个六级实在是当之无愧,我断断续续思考了至少半年,总算在某次晨练时想出线索,变化极为繁复。
北:S A932, H T4, D K8543, C J4
东:S Q84, H Q875, D JT9, C Q32
南:S K75, H AKJ62, D A6, C K96
西:S JT6, H 93, D Q72, C AT875
我曾将一些题目(不是这两题)请教著名的顾江先生,他几乎瞬间就给出答案。但我想,如果真要人机对决,顾先生还是会输。