圍棋的「第二好的一手」——為什麼不存在捷徑?

一個業餘棋手的直覺問題,如何通往計算理論的深處

Chapter 0:棋手的疑問

想像你在玩一個遊戲

你知道有一個「最佳選擇」,但算不出來。退而求其次,你想:第二好的選擇是什麼?

先試試看——依序點擊右邊的 5 個寶箱,排出你的偏好順序。

如果選項有 10170 個呢?

你剛才輕鬆排出了 5 個選項的第二名。但如果有 10170 個選項呢?逐一嘗試要花多久?有沒有捷徑——一個公式——可以直接算出來?

左邊 = 暴力搜尋(逐一嘗試),右邊 = 公式直達。

Chapter 1:什麼是圍棋?

棋盤是什麼

圍棋的棋盤是一個 19×19 的格線(我們用小棋盤 5×5 來示範)。黑白雙方輪流在交叉點上放棋子。

怎麼吃子

每組相連的同色棋子形成一個「群」。群旁邊的空交叉點叫做「氣」——可以理解為呼吸的空間。當一個群的氣全部被堵住(0 氣),它就被「吃掉」,從棋盤上移除。

試試右邊的預設按鈕,然後點擊空位完成吃子。

怎麼算輸贏

怎麼算輸贏——圍地計分。數你圍住的空交叉點(目),減去對方圍的。重點:分數一定是整數(每個空點要麼歸你、要麼歸對方、要麼是中立點)。這個看似平凡的事實,後面會成為關鍵武器。

將滑鼠移到棋子上(或點擊),觀察群和氣的高亮。

Chapter 2:用數學描述問題

局面 = 快照

一個「局面」就是棋盤的一張快照——記錄三件事:(1) 每個交叉點上有黑子、白子、還是空的;(2) 輪到誰下;(3) 哪裡不能立刻下(劫禁點)。就這三樣東西,完整描述了一個圍棋局面。

最好 = Minimax

在一個局面下,你選讓自己分數最大的一手,對手選讓你分數最小的一手。這就是 minimax——最大化自己的最小收益。

$$V(S) = \max_{m}\bigl[-V(\mathrm{apply}(S,m))\bigr]$$

$V(S)$ 是局面 $S$ 對「輪到下的人」的價值。你下了一手 $m$ 之後,換對手面對新局面 $\mathrm{apply}(S,m)$,對手的價值是 $V(\mathrm{apply}(S,m))$——而對你來說是負的。所以你要在所有合法手 $m$ 中,選讓 $-V(\mathrm{apply}(S,m))$ 最大的那一手。

第二好 = 排序第二名

有了每一手棋的價值 Q(S,m),最好的一手就是 Q 值最高的(m₁),第二好就是排除 m₁ 後的最高(m₂)。

$$Q(S,m) = -V(\mathrm{apply}(S,m))$$

$$m_1(S) = \arg\max_{m} Q(S,m)$$

$$m_2(S) = \arg\max_{m \neq m_1} Q(S,m)$$

$Q(S,m)$ 是在局面 $S$ 下走 $m$ 的「行動價值」。$m_1$ 是最佳手,$m_2$ 是次佳手。

公式 = 捷徑

「公式」= 不用暴力搜尋的捷徑,精確定義為 poly(n) 時間。圍棋的計分是整數,所以 Q 值一定是整數。

層級 意思 時間
可計算 圖靈機最終能算完 無上界
poly 時間 $n^k$ 步內完成 $O(n^k)$
解析閉式 有限次 $+, -, \times, \div$ 等 $O(1)$
電路 固定大小的邏輯閘 $O(1)$ 深度

Chapter 3:計算的極限

P 與 EXPTIME

P 是「快速能解的問題」——像是排序一串數字、查電話簿。EXPTIME 是「慢到不行的問題」——可能要花比宇宙年齡還長的時間。

P ⊊ EXPTIME(已證明!)

數學家已經嚴格證明:給電腦更多時間,確實能解更多問題。P 和 EXPTIME 之間有不可跨越的鴻溝。這是時間階層定理——一個已被證明的事實,不是猜想。

圍棋 = EXPTIME-complete

圍棋不只是一個遊戲——數學家發現,你可以把任何超級複雜的計算問題『翻譯』成一盤圍棋。這就像圍棋是一種『通用程式語言』——如果你能秒解圍棋,你等於能秒解世界上所有超難問題。

EXPTIME-complete 定義:一個問題是 EXPTIME-complete,代表它 (1) 屬於 EXPTIME(可以在指數時間內解決),且 (2) EXPTIME 中的任何問題都可以在多項式時間內「歸約」到它。

歸約(Reduction):如果問題 A 可以歸約到問題 B,代表我們可以把 A 的任何實例「翻譯」成 B 的實例,使得解決 B 就等於解決 A。翻譯過程本身必須是快速的(多項式時間)。

Robson 定理(1983):圍棋的勝負判定問題(Q-DECISION)是 EXPTIME-complete。這意味著圍棋至少跟 EXPTIME 中最難的問題一樣難——不可能有多項式時間的演算法。

Chapter 4:為什麼 Q 沒有公式

定理 A:歸謬法

假設你有一台能秒算任何圍棋局面價值的神機——這台機器不只是圍棋作弊器,它等於能解開宇宙間所有超難問題。但數學已經證明:這種萬能機器不可能存在。所以神機不存在,公式也不存在。

$$Q \in \mathrm{FP} \Rightarrow V \in P \Rightarrow \mathrm{EXPTIME} \subseteq P$$

但已知 $P \subsetneq \mathrm{EXPTIME}$(時間層級定理),所以前提「$Q \in \mathrm{FP}$」不成立——多項式時間公式不存在。

近似也不行

圍棋的分數一定是整數。只要近似誤差小於 0.5,四捨五入就能完美恢復精確答案。所以 0.49 的近似就已經等同精確。

拖動右側的滑桿試試看。

Chapter 5:空間壓縮的巧妙

為什麼走不完?

任何 EXPTIME-complete 的博弈,其對弈長度必然是超多項式的。這代表「沿著最佳對弈走到底」的策略,在時間上注定走不完。這不是圍棋的特殊問題,而是所有「超級難」博弈的共同宿命。

若博弈 $G$ 為 EXPTIME-complete 且對弈長度 $\ell(n) \le n^c$,則決定勝負可在 $n^{O(c)}$ 時間內完成(逐步模擬),意味 $\mathrm{EXPTIME} \subseteq P$,與時間層級定理矛盾。故 $\ell(n)$ 必為超多項式。

遊忘模擬

空間壓縮的洞察:不需要走完全程,只需要記得「現在在哪」。模擬最優對弈的空間 = 一個局面的大小 = poly(n)。雖然時間是指數級的,但記憶體只需要多項式!

$$\textbf{Algorithm B}(S):$$

$$\quad s \leftarrow S$$

$$\quad \textbf{while } s \text{ 非終局}:$$

$$\qquad m^* \leftarrow \arg\max_m V(s \circ m) \quad \text{// 窮舉所有合法手}$$

$$\qquad s \leftarrow s \circ m^*$$

$$\quad \textbf{return } \text{score}(s)$$

空間只存一個 $s$,大小 $O(n^2)$。

龜兔賽跑

Floyd 循環偵測算法——用龜(每步走 1 格)和兔(每步走 2 格)在軌道上跑。如果軌道有循環,兔子一定會從後面追上烏龜。用這招可以偵測棋局是否進入無限循環。

設循環長度為 $\lambda$,進入循環前的距離為 $\mu$。在第 $t$ 步,龜在位置 $t$,兔在位置 $2t$。兩者相遇當 $t \equiv 2t \pmod{\lambda}$,即 $t \equiv 0 \pmod{\lambda}$。因此至多 $\mu + \lambda$ 步後必定相遇。額外空間:僅需存兩個指標,$O(n^2)$。

Chapter 6:次佳手也不行

定理 C:二元分支歸約

想像只有兩間教室 A 和 B,你知道數學課在其中一間。如果有人告訴你體育課(次佳手)在 B 教室,你立刻就知道數學課(最佳手)在 A 教室。所以知道第二名就等於知道第一名。

$$\text{二元化 ATM 中 } |C(S)|=2,\; m_1 = C(S)\setminus\{m_2\}$$

$$m_2 \in \mathrm{FP} \Rightarrow m_1 \in \mathrm{FP} \Rightarrow \mathrm{EXPTIME} = \mathrm{PSPACE}$$

瓶頸構造直覺

想像三個房間 D、A、B。D 裡有一顆巨大的炸彈(n⁴ 子的群),你一定要先去拆彈(m₁=d)。拆完彈之後,第二重要的事(m₂)在 A 還是 B——取決於 ATM 是否接受。

接受方向

如果 ATM 接受 → A 區有好手可走 → m₂ 落在 A 區

拒絕方向

如果 ATM 拒絕 → A 區全是壞手 → m₂ 只能落在 B 區

$$Q(S^*,d) - Q(S^*,m) \geq 2n^4$$

$$m_2(S^*) \in A \iff \text{ATM 接受 } x$$

Chapter 7:更廣的視野

查表也不行(定理 E)

有人可能想:我不用通用公式,我直接把每個局面的答案背下來呢?這就是「電路複雜度」的範疇——結論是,除非我們對數學的基本信念有誤,連這種超級大的查表也行不通。

Buhrman-Fortnow-Thierauf (1998) 證明:若 EXPTIME 有多項式大小的電路(即 $\mathrm{EXPTIME} \subseteq \mathrm{P/poly}$),則 $\mathrm{EXPTIME} = \Sigma_2^P$,這與已知的層級定理矛盾。換言之,即便允許「查表」(非均勻計算),EXPTIME-complete 問題仍無法用多項式大小的電路解決。

19×19 怎樣?(定理 F)

壞消息是查表公式理論上存在(因為 19×19 局面數有限),好消息是⋯⋯其實也是壞消息:我們根本無法判定是否存在一個「短小精悍」的版本。這個問題碰到了數學的三重鐵壁。

相對化(Baker-Gill-Solovay, 1975):任何僅透過「黑盒查詢」的證明方法,無法分離 P 與 NP,因為存在使 P=NP 和 P≠NP 都成立的 oracle。

自然證明(Razborov-Rudich, 1997):若單向函數存在,則無法用「自然的」組合論證來證明超多項式電路下界。

代數化(Aaronson-Wigderson, 2009):即便允許證明使用代數延拓(低次多項式),仍無法分離 P 與 NP。

Chapter 8:全景總覽

定理地圖

六個定理(A-F)構成了完整的論證。它們之間有邏輯依賴關係,條件強度也不同——有些是已證的無條件結論,有些依賴廣泛相信但尚未證明的猜想。

常見問題

近似不等於精確。KataGo 提供的是啟發式估計(勝率、目差近似),會犯錯,且無精確度保證。本文的「公式」要求對所有局面精確輸出 m₂,不允許任何錯誤。

量子電腦能力(BQP)仍在 PSPACE 以內,遠不及 EXPTIME。量子加速不足以攻破圍棋的計算複雜度壁壘。

CGT 收官公式適用於可分解的局部終盤(獨立區域之間無交互作用),與本文的全局不存在性結論不矛盾。本文證明的是:對所有合法局面(包括中盤、劫爭糾纏等不可分解的情況)不存在通用公式。