- 玩不夠的數學2:當數學遇上游戲
- (法)讓-保羅·德拉耶
- 1631字
- 2020-08-11 18:11:59
第2章 怎么玩一手完美的撲克
既有隨機成分,玩家又只知道不完整的信息,這就是兩人德州撲克的難題。這個難題已經被解決了:人們提出了一個不可能被打敗的策略。

要用計算機解決雙人游戲有兩種方法:要么編寫一個程序,讓它能打敗所有人類對手,這種做法不一定一勞永逸,因為人類玩家有可能迎頭趕上,這就是“弱解決”;要么編寫一個以最優(yōu)策略運作、從而不能被打敗的程序,這就是“強解決”。
對于國際象棋來說,我們已經完成了弱解決:自從1997年加里·卡斯帕羅夫與計算機深藍(Deep Blue)的著名對局以后,機器就一直比所有人類選手都強大,在今天,人類選手已經絕無可能逆轉局勢。但由于游戲局面的大量組合(據計算,大概有10120種可能的對局),大部分專家認為我們不可能在可預見的將來完成強解決。有些游戲編程的專家,比如說法國的西蒙·維耶諾和朱利安·勒穆瓦納,也就是最優(yōu)秀的萌芽游戲程序的締造者,則認為簡化雙方決策樹的方法,即他們做出貢獻并完善的方法,也許在大約20年后能用于得出國際象棋的最優(yōu)策略,即完成強解決。馬克西姆·瓦西耶–拉格拉夫,自菲利多爾(1726—1795)后最優(yōu)秀的法國棋手,認為最優(yōu)策略會導致平局。
對于英國跳棋來說(跟法國跳棋很相似,但它用的是8×8的棋盤),加拿大阿爾伯塔大學的喬納森·謝弗團隊開發(fā)的Chinook程序從2007年開始就提出了強解決方法。這個程序還由此證明了先手至少也能打成平局:如果Chinook的對手犯錯的話,那么Chinook就能贏;如果對手完美應對的話,那么就會打成平局(見第5章)。對于圍棋來說,2016年AlphaGo已經完成了弱解決。
上面提到的游戲都是所謂的完全信息游戲:玩家沒有隱藏任何信息,游戲中也沒有隨機性。紙牌游戲(勃洛特、撲克之類)的性質就完全不同:一來,在發(fā)牌的時候就有隨機因素,我們拿到的牌可好可壞,攥著一手壞牌基本上就贏不了;二來,有關牌如何分配的信息,每個玩家都只知道一部分,而且不知道對手拿到了什么牌。但我們還是可以討論這類游戲的弱解決和強解決。如果一個程序能在足夠多輪(足以平衡運氣好壞)的游戲中打敗所有人類玩家,那么它就完成了游戲的弱解決。如果一個程序再沒有改進的余地,也就是說對于任意在想象范圍內的玩家,如果它在輪數足夠多的游戲中都能勝利或者打個平手的話,那么它就完成了強解決。2015年1月,加拿大阿爾伯塔大學邁克爾·鮑林領導的研究團隊發(fā)表了一篇論文,講述了如何強解決一種人類玩家眾多的撲克變種:一對一限注德州撲克(Heads up limit Hold'em,以下簡稱HULHE撲克)。這是德州撲克的一個變種,只有兩名玩家,對下注也有限制(見框1)。
1.德州撲克
《007:大戰(zhàn)皇家賭場》讓德州撲克大受歡迎。在電影里,詹姆斯·邦德用一手同花順(黑桃45678)打敗了對手的葫蘆(三條A和一對6)。在德州撲克每一局開始時,每位玩家都會接到兩張只有自己能看到的底牌,然后會有五張牌逐漸被發(fā)到牌桌上。

首先發(fā)三張牌(“翻牌”),然后發(fā)一張牌(“轉牌”),最后發(fā)一張牌(“河牌”)。每位玩家用手里底牌的兩張或一張,或者一張不用,與臺上五張牌中的一部分湊成一手一共五張的牌,而且要組成最強大的牌組(從弱到強是一對、兩對、三條、順子、同花、葫蘆、四條、同花順、同花大順)。游戲開始時的強制下注構成了彩池;然后,在牌桌上的公用牌逐步被翻開時,玩家可以放棄(就此輸掉之前下的注)、跟注或者加注;在加注完畢后,沒有退出的玩家亮出各自的底牌(“斗牌”),誰的組合最強,誰就贏得整個彩池;在平手的情況下,彩池也會被平分。
在加注階段用到的術語如下。
蓋牌(fold):認輸并放棄已下的注。
跟牌(call):追加下注,使得總下注與臺面最大的下注相等,這樣才能留在牌局中。
加注(raise):追加下注,使得總下注超出其他玩家的下注,其他玩家只能蓋牌、跟牌或者加注。
全下(all-in):將手頭所有籌碼用于追加下注;在限注德州撲克中,開局就限定了每位玩家能下注的最大數目。
德州撲克有很大的運氣成分,但有關撲克的電影讓人印象深刻的通常是那些賭桌英雄的推斷能力、控制表情以免泄露天機的能力和夸張演技。在所有電影中,雙方的最后一手都強得不像話。