棋盘上的数学里程碑
導讀: 一個棋盤,幾個棋子就能擁有萬千變化,而變化之中又有奇妙的規律等待著數學家與解謎者的探尋。游戲是人類的天性,幾千年來,人們發明游戲、在游戲中取勝、挖掘著游戲背后的秘密。正是在游戲與對真理的追尋中,棋盤上樹起了一個個數學里程碑。
約公元前1300年:圈叉游戲
圈叉游戲是由兩位分別代表O方和X方的玩家在―個3×3的方格上輪流填上己方符號,最先讓己方符號以水平、垂直或對角線方式連成一線的玩家即為勝方;而在3×3的方格上多半是以平手的局面結束。
圈叉游戲是人類史上解古老最廣為人知的一項游戲。雖然產生現代化圈叉游戲操則的確切日期,可能沒那么歷史悠久,可是,考古學家卻可以把這種“三個連成一列”的游戲,追溯到大約公元前1300年的古埃及,類似的游戲類型可以追溯到人類社會的最初階段。
在古埃及法老王統治時期,棋弈游戲在日常生活中,就扮演著相當重要的角色,類似圈叉游戲之類的賽局,就是從那時候開始發揚光大,如里把圈叉游戲視為“原子”的話,經過幾世紀的演變,我們現在已經進展到更高階、相當于“分子”的各種游戲。只要稍微改變規則和棋盤大小簡單的圈叉游戲就會變成需要花大量時間鉆研的華麗挑戰。
數學家和解謎狂已經把圈叉游戲擴展到更大更高維度的橫盤,比如輪胎面、類似甜甜的環面或克萊恩瓶(單邊、無法區別內外的表面)上的長方形或正方形。
回過頭來談談圈叉游戲的一些特性。代表O方X方的兩位玩家總共可以在棋盤上排出9!=362880種不同的棋形組合,而圈叉游戲分別在第五、六、七、八、九步棋結束的所有可能組合總數為25516。
在20世紀80年代初期,希利斯(Danny Hillis)、席維文(Brain Silverman)和他們的―群計算機天才朋友們共同開發一套由上萬組Tinkertoy積木零件所組成、直接命名為Tinkertoy的圈叉游戲機。1998年,多倫多大學的研究人員和在校學生一起打造出能與人類在4×4×4三度空間對弈圈叉游戲的機器人。
公元前548年:圍棋
圍棋大約是公元前2000年源自于中國的雙人棋弈,最早提到有關于圍棋的歷史記載是一本叫做《左傳》的中國敘事古藉,當中提到公元前548年有個人下圍棋的故事。圍棋之后傳到了日本,并在13世紀成為廣受歡迎的游戲。圍棋是由兩位分別持黑子跟白子的玩家,在一個19x19的橫盤上對弈,當某一方的棋子完全被另一方的棋子包圍時,就要從棋盤上把被圍住的棋子通通移除,游戲目的是盡可能比對手掌握更大的棋盤范圍。
有很多因素可以說明圍棋的復雜程度,像大范圍的其盤、層出不窮的策略運用,以及大量又變化多端的對弈過程。所以,單單設法在棋盤上擺上比對手更多的棋子并不能保證獲勝。如果把對稱性納入考慮的話,圍棋總共有32940種不同的棋路,其中的992種被視為較常見的搶手棋;而變幻莫測的棋局據估算更有高達10172種不同的最終結果及10768種不同的走法。兩位圍穆高手對弈時,通常會在150手之內決勝負,其間的每―手棋大約有5種不同的選擇棋藝高超的西洋棋軟件有時可能擊敗最頂尖的西洋棋高手。不過,最厲害的圍棋軟件卻往往會輸給一位受過圍棋訓練的小朋友。
下圍棋的計算機很難做到“先多想幾步后”再作出判斷。相較于西洋棋,圍棋每下一子所需要考慮各種可能的合理變化更多,也由于在不同空位落子會對于整體布局造成不同的影響,因此,也不容易判斷該在哪邊落子比較有利。
匈牙利研究人員在2006年宣稱可以通過一種名為UCT的演算法(Upper Confidence bounds applied to Trees,樹狀結構高階信度分析)幫助計算機判斷出最有可能獲勝的棋路與職業圍棋高手對弈,不過,這套算法目前只適用在9X9的棋盤上。
2007年:破解西洋棋
2007年,計算機科學家沙費爾和他的同事終于用計算機證明如果西洋跳棋玩家不犯錯的話,最終一定會以平手局面作收。這代表西洋跳棋跟圈叉游戲一樣,只要兩位玩家都不犯錯;游戲的結果―定是平手,沒有勝方。
沙費爾的證明方式通過數以百計的計算機運算超過十八年的時間,使得西洋跳棋成為人類到目前為止破解過最復雜的游戲,這也表示理論上有可能設計出一臺專門跟人類下西洋跳棋,而且永遠不會落居下風的機器。
西洋跳棋的棋盤是8*8的方格,在16世紀時的歐洲相當流行,早期變形的版本則在現今伊拉克境內、古代吾珥城(City of UR,約公元前3000年)的廢墟中出土。西洋跳棋的棋子通常是黑紅兩色的圓盤,棋子只能走斜線;兩位玩家輪流下棋,只要跳過對手的棋子就能吃掉它。顯而易見,由于西洋跳棋總共有5×1020種可能走法,要證明西洋跳棋保證和局的困難度遠遠超過證明圈叉游戲沒有贏家這一回事。
西洋跳棋的研究團隊總共考慮了39兆種棋盤上只剩+顆或更少棋子的布局,借以判定黑紅兩色中哪一位會是最終贏家。;究團隊也使用一種特殊的搜尋算法,研究棋局如何從原始狀態“演變成”只剩下10顆棋子的決戰階段。順利破解西洋跳棋的問題,代表人工智能這門經常與計算機復雜的問題解決策略有關的領域,總算跨越了一項非常重要的里程碑。
沙費爾在1994年用這套名為契努克(Chinook)的計算機程序挑戰世界西洋跳棋的棋王汀斯雷(Marion Tinsley),結果計算機與人腦間的對抗不斷以平手作收,八個月后江斯雷因有些人將他的死因歸咎于沙費爾,因為來自契努克的挑戰導致汀斯雷承受過大壓力,也因此加速了他的死亡。
原文發布時間為:2015-12-19
本文來自云棲社區合作伙伴“大數據文摘”,了解相關信息可以關注“BigDataDigest”微信公眾號
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: Swift3字符串转换为其他数据类型
- 下一篇: 《Flume日志收集与MapReduce