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