围棋与数学

圍棋是世界上最流行的遊戲之一。由於其規則優美而簡單，圍棋一直是數學研究的靈感來源。11 世紀的中國學者沈括在《夢溪筆談》中估計，圍棋所有可能的局面數量為 10172 左右。近年來，約翰・H・康威在對圍棋的研究中發明了超現實數，並促進了組合博弈論的發展（「圍棋微數字」就是它在圍棋中使用的一個具體示例）。

## 計算複雜性

廣義圍棋是在 _n x n_ 的棋盤上進行的，在廣義圍棋的給定位置確定贏家的計算複雜性主要取決於打劫規則。

圍棋的複雜性「幾乎」是在 PSPACE 內的，這是因為在對弈的非打劫階段，每一手都是不可逆的，只有通過吃子才有可能出現重複的棋形，使得複雜性提高。

### 沒有打劫的情況

沒有打劫的話，圍棋是 PSPACE 困難的。 這是通過把 PSPACE 完全的 TQBF（真量化布爾公式）簡化到廣義地理，到平面廣義地理，到最高 3 階的廣義地理，最後簡化到圍棋棋盤位置。

有打劫的圍棋則不在 PSPACE 中。儘管實際的棋局似乎從沒超出過 $n^{2}$ 手，但一般而言，沒有人知道圍棋棋局的手數是否有一個多項式上限。如果有的話，圍棋就會是 PSPACE 完全的。就目前而言，圍棋可能是 PSPACE 完全，EXPTIME 完全，甚至 EXPSPACE 完全的。

### 日本打劫規則

日本規則只規定了基本的劫，即一手棋下了之後，如果會恢復這手棋下之前的那個棋盤狀態，那麼這手棋是不允許下的。如果重複多手之前的棋盤狀態是允許的，這也就意味著一局棋可以永久循環，如三劫循環，即同時有三個劫，經過 12 手就可以循環。

在日本打劫規則下，圍棋是 EXPTIME 完全的。

### 禁止全局同形規則

禁止全局同形規則是說重複出現任何先前棋盤狀態都是不允許的。這是大多數中國和美國規則中使用的打劫規則。

在禁止全局同形規則下圍棋的複雜性類為何，是一個未解決的問題。雖然日本打劫規則下圍棋的複雜性為 EXPTIME 完全已被證明，但 Robson 的這個證明中，無論是上界還是下界的 EXPTIME 完全性的證明，都打破了禁止全局同形規則。

至少現在已知，其複雜性至少是 PSPACE 困難，因為中對圍棋的 PSPACE 困難性的證明是不依賴於打劫規則的，或者說即便是沒有打劫規則，也是 PSPACE 困難的。現在還知道圍棋的複雜性是在 EXPSPACE 內的。

Robson 證明了如果在 EXPTIME 完全的雙人遊戲的基礎上，加上「禁止全局同形」的規則，遊戲複雜性將會變為 EXPSPACE 完全。直觀地說，這是因為對加入新規則的遊戲來說，即便是確定一個局面下符合規則的下法，都需要指數級別的空間，因為從開局下到某一局面的長度是有可能達到指數級別的。

因此，廣義西洋棋和西洋跳棋的禁止全局同形版本都是 EXPSPACE 完全的，因為廣義西洋棋和西洋跳棋都是 EXPTIME 完全的。不過這個結果不適用於圍棋。

### 圍棋特定情形的複雜性

當棋盤被活子把棋盤分割成若干孤立的區域的時候，圍棋就進入了官子階段，這時每個局部區域都會有一個多項式級別的規範博弈樹。用組合博弈論的話來說，當圍棋分解成具有多項式級別規範博弈樹的子博弈之和時，就會進入官子。

在這個定義下，圍棋的收官是 PSPACE 困難的。

這可以通過將 PSPACE 完全的 QBF（Quantified Boolean Formula）問題轉換成小型（多項式級別規範博弈樹）圍棋子遊戲的總和來證明。請注意，論文並未證明圍棋是在 PSPACE 中的，所以就有不是 PSPACE 完全的可能性。

確定哪一方征子有利是 PSPACE 完全的，無論是日本打劫規則還是禁止全局同形規則。 這一點（PSPACE 完全）可以通過模仿 QBF 證明。

## 合法局面

由於棋盤上每個位置都可以為空、白棋、黑棋三種情況，所以對於邊長為 n 的棋盤總共有 3n2 種可能的局面；但只有一部分是合法的。Tromp 和 Farnebäck 推導了長 m 寬 n 的矩形棋盤的合法局面 $L(m,n)$ 的遞歸公式。 在 2016 年算出了 $L(19,19)$ 的準確數字。他們還發現了一個漸進公式 $L\approx AB^{m+n}C^{mn}$ ，其中 $A\approx 0.8506399258457145$ ， $B\approx 0.96553505933837387$ ， $C\approx 2.975734192043357249381$ 。據估計，可觀測宇宙包含大約 1080 個原子，遠小於常規圍棋棋盤（m=n=19）上所有可能的合法局面的數目。隨著棋盤變大，合法局面的比例也會降低。

## 博弈樹複雜性

電腦科學家 Victor Allis 指出，職業棋士之間對弈一般在 150 手左右，平均每手約 250 種選擇，這就意味著博弈樹複雜性為 10360。 對於_理論上可能_的棋局數量，包括在實際中不可能下出的棋局，Tromp 和 Farnebäck 分別給出 10480 的下限和 101710 的上限。
人們聽到最多的所有可能的棋局數量為 10700， 這個數字是 361 手棋的簡單排列（361! = 10768）得出的。另一個常見的推導是假設每一手棋都有 n 個選擇，總共 L 手棋，那麼棋局總量就是 NL。就比如在某些職業對局中能夠見到的一局棋 400 手，按照這種方法算出來就是 361400（101023）種可能的棋局。

所有可能的對局總數是棋盤大小和手數的函數。雖然大多數棋局都在 400 手以內，甚至 200 手都不到，但棋局是有可能更長的。

所有可能的對局總數可以通過多種方式從棋盤大小估算，有些方式會比另外一些更嚴格。最簡單的，棋盤大小的簡單排列 (N)L，沒有考慮到非法吃子，以及非法的盤面。令 N 為棋盤大小（19×19=361），L 為最長的棋局長度，NL 構成了下界。在 Tromp/Farnebäck 的論文中給出了更精確的限制。

10700 這個數字對於 200 手以內的所有棋局來說是一種高估，但對 361 手以內的所有棋局來說是一種低估。而 4700 萬手的棋，在一秒一手、每天下 16 個小時的情況下，也要下 2¼ 年（一年有 3100 萬秒）。

## 參見

* 遊戲複雜度
* 香農數（西洋棋）

## 注釋

## 參考文獻

* AGA. Top Ten Reasons to Play Go. [2018-04-26]. （原始內容存檔於 2012-05-30）.
* Allis, Victor. Searching for Solutions in Games and Artificial Intelligence (PDF). Ph.D. Thesis, University of Limburg, Maastricht, The Netherlands. 1994 [2018-04-26]. ISBN90-900748-8-0. （原始內容 (PDF) 存檔於 2018-08-20）.
* Hearn, Robert A. Games, Puzzles, and Computation (PDF). 2006 [2018-04-26]. （原始內容存檔 (PDF) 於 2008-05-28）.  [Ph.D. Thesis, MIT.]
* Johnson, George. To Test a Powerful Computer, Play an Ancient Game. New York Times. 1997-07-29.
* Papadimitriou, Christos (1994), _Computational Complexity_, Addison Wesley.
* Tromp, John. Number of 2×2 games with positional superko. 1999 [2018-04-26]. （原始內容存檔於 2012-10-26）.
* Tromp, John. Number of legal Go positions (up to 19×19). 2005 [2018-04-26]. （原始內容存檔於 2016-02-06）.
* Tromp, John; Farnebäck, Gunnar. Combinatorics of Go. 2007 [2018-04-26]. （原始內容存檔於 2017-01-18）.

## 外部連結

* Go and Mathematics
* Number of possible outcomes of a game（頁面存檔備份，存於網際網路檔案館） - article at Sensei's Library