跳至主要内容

圍棋為什麼難?

在 AlphaGo 出現之前,圍棋被認為是人工智慧「最後的堡壘」。數十年來,研究者嘗試了各種方法,卻始終無法讓電腦達到職業棋手的水平。

這不是因為研究者不夠努力,而是因為圍棋本質上就是一個極度困難的計算問題

本文將深入探討:圍棋究竟難在哪裡?為什麼它被稱為「AI 的聖杯」?


狀態空間的爆炸:10^170 的意義

什麼是狀態空間?

在任何棋類遊戲中,狀態空間(State Space)指的是所有可能的棋盤局面總數。這個數字決定了暴力搜索的可行性。

對於圍棋來說,這個數字是:

圍棋狀態空間 ≈ 10^170

這是一個什麼概念?讓我們來做一些比較。

與宇宙原子數的比較

根據物理學家的估計,可觀測宇宙中的原子總數約為:

宇宙原子數 ≈ 10^80

這意味著:

圍棋的可能局面數,是宇宙原子數的 10^90 倍。

如果你把宇宙中的每一個原子都當作一台超級電腦,每台電腦每秒能處理 10 億個局面,從宇宙大爆炸到現在(約 138 億年)都不可能窮舉所有局面。

數字的直觀理解

數字含義
10^9十億,人類的總人口數量級
10^12一兆,全球螞蟻的數量
10^23一莫耳的分子數
10^80宇宙中的原子數
10^120西洋棋的狀態空間
10^170圍棋的狀態空間

為什麼圍棋的狀態空間這麼大?

圍棋狀態空間巨大的原因有幾個:

1. 棋盤尺寸

圍棋使用 19×19 的棋盤,共有 361 個交叉點。相比之下:

  • 西洋棋:8×8 = 64 格
  • 中國象棋:9×10 = 90 個交叉點
  • 五子棋:15×15 = 225 個交叉點

2. 每格三種狀態

每個交叉點可以是:

  • 空(沒有棋子)
  • 黑子
  • 白子

粗略估計,可能的組合數為 3^361 ≈ 10^172。考慮到圍棋規則(如打劫、氣的限制),實際合法局面約為 10^170。

3. 棋子沒有移動

不像西洋棋,圍棋的棋子一旦落下就不會移動(除非被提掉)。這意味著每一步都是新增一個棋子,而非移動現有棋子,導致可能的路徑更多。

程式碼示意:狀態空間估計

import math

# 棋盤尺寸
BOARD_SIZE = 19
TOTAL_POINTS = BOARD_SIZE ** 2 # 361

# 每格三種狀態(空、黑、白)
# 粗略上界
upper_bound = 3 ** TOTAL_POINTS
print(f"粗略上界: 3^{TOTAL_POINTS} ≈ 10^{math.log10(upper_bound):.0f}")
# 輸出: 粗略上界: 3^361 ≈ 10^172

# 考慮規則限制後的實際估計
# Tromp-Taylor 的精確計算給出約 2.08 × 10^170
actual_estimate = 2.08e170
print(f"實際估計: {actual_estimate:.2e}")

# 與宇宙原子數比較
universe_atoms = 1e80
ratio = actual_estimate / universe_atoms
print(f"圍棋局面數 / 宇宙原子數 = 10^{math.log10(ratio):.0f}")
# 輸出: 圍棋局面數 / 宇宙原子數 = 10^90

分支因子的詛咒:平均 250 種選擇

什麼是分支因子?

分支因子(Branching Factor)是指在遊戲的任意一步,平均有多少種合法走法。這個數字決定了搜索樹的寬度

遊戲平均分支因子
井字遊戲~4
西洋棋~35
中國象棋~38
黑白棋~10
圍棋~250

搜索樹的爆炸性增長

假設我們要用樹搜索演算法看 N 步棋。需要考慮的局面數約為:

節點數bN\text{節點數} \approx b^N

其中 b 是分支因子。

讓我們比較西洋棋和圍棋:

看 N 步西洋棋 (b=35)圍棋 (b=250)差距
1 步35250
2 步1,22562,50051×
4 步150 萬39 億2,600×
6 步18 億2.4×10^141.3 億×
10 步2.8×10^159.5×10^233.4 億×

看 10 步棋,圍棋需要考慮的局面是西洋棋的 3 億倍

為什麼深藍的方法在圍棋上失敗

1997 年擊敗卡斯帕洛夫的深藍,使用的核心技術是:

  1. Alpha-Beta 剪枝:減少搜索節點
  2. 硬體加速:每秒評估 2 億個局面
  3. 人工評估函數:專家設計的棋局評估

但即使用同樣的方法:

  • 西洋棋:看 12-14 步需要評估約 10^18 個節點
  • 圍棋:看 12 步需要評估約 10^29 個節點

差距是 10 億億倍。沒有任何硬體能彌補這個差距。

開局的選擇更是天文數字

在圍棋開局階段,分支因子更高:

  • 第 1 手:361 種選擇
  • 第 2 手:360 種選擇
  • 第 3 手:359 種選擇
  • ...

即使只看前 10 手:

361×360×359×...×3525.5×1025361 \times 360 \times 359 \times ... \times 352 \approx 5.5 \times 10^{25}

這就是為什麼「開局定式」如此重要——人類棋手需要記憶大量開局變化,因為無法即時計算。


評估的困難:沒有簡單的棋子價值

西洋棋的材料優勢

在西洋棋中,評估局面相對直觀:

棋子價值(傳統)
1
3
3
5
9

雖然實際評估更複雜(位置、結構等),但「數子」是一個很好的起點。吃掉對方一個后,幾乎肯定是好事。

圍棋:每顆棋子都是平等的

在圍棋中,每顆棋子的內在價值完全相同——都只是一顆石頭。

一顆棋子的價值完全取決於:

  • 它在棋盤上的位置
  • 它與其他棋子的關係
  • 它對整體局面的影響

這使得評估變得極度困難。

厚勢與外勢的抽象性

圍棋中有許多抽象概念:

厚勢(Thickness)

「厚」是指一團棋子堅實、穩固、有影響力。但「厚」很難量化:

  • 一個厚實的形狀值多少目?
  • 什麼時候該利用厚勢進攻?
  • 厚勢何時會變成「愚形」(效率低下的形狀)?

頂尖棋手可能會說:「這塊棋很厚,大概值 15 目左右吧。」但這是基於數十年經驗的直覺,而非精確計算。

外勢(Influence)

圍棋的外勢指的是棋子對周圍空間的潛在控制力。這種控制力是「虛」的——它可能轉化為實地,也可能在攻防中發揮作用,也可能最終什麼都不是。

如何評估「潛在」的價值?這對電腦來說極為困難。

味道(Aji)

「味道」是圍棋中最抽象的概念之一。它指的是棋盤上某個位置的潛在可能性

一塊「死棋」可能有「利用價值」——雖然它本身救不活,但可以在未來的戰鬥中產生干擾。這種「潛在可能性」幾乎無法用數值表示。

為什麼手工評估函數失敗

在深藍之前的電腦西洋棋,使用的是人類專家設計的評估函數:

評估值 = 材料分數 + 位置分數 + 王的安全性 + 兵形結構 + ...

這些項目可以被量化、調整權重,效果不錯。

但圍棋呢?

研究者嘗試過各種特徵:

  • 控制的交叉點數
  • 棋子的「自由度」(氣數)
  • 連接強度
  • 眼形的完整性
  • ...

但這些特徵的組合,從未能達到業餘高段的水平。

核心問題:圍棋的局面評估是一個高度非線性、全局性的問題。

一顆棋子的價值取決於整個棋盤的狀態,而非局部特徵的簡單相加。


長期規劃的需求:一盤棋 150 手

圍棋的三大階段

一盤標準的圍棋對局通常經歷三個階段:

階段手數(約)特性
布局1-50佔地、構建框架、奠定全局方向
中盤50-200戰鬥、攻防、局部與全局的平衡
官子200-300收尾、計算、精確度

平均一盤棋約 250-300 手,其中前 150 手決定了勝負的大局。

布局:30 步之後的規劃

布局階段的每一步棋,都在為幾十手甚至上百手之後做準備。

比如,一個「三連星」布局:

. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . ● . . . . . ● . . . . . ● . . .
. . . . . . . . . . . . . . . . . . .
...

這三顆黑子構成了一個「外勢型」布局,其意圖是:

  1. 不急於圍地
  2. 等白棋進入後進行攻擊
  3. 透過攻擊獲取實地或外勢
  4. 最終在終盤實現優勢

這個「計劃」需要展望 50-100 手棋之後的局面。沒有任何搜索演算法能夠看這麼遠。

中盤:局部與全局的平衡

中盤戰鬥是圍棋最複雜的部分。棋手需要在每一步考慮:

  1. 局部計算:這個戰鬥誰會贏?
  2. 全局判斷:值得在這裡戰鬥嗎?
  3. 次序選擇:先走哪裡最有效率?
  4. 放棄決策:什麼時候該棄子轉向?

一個典型的中盤決策:

「如果我在這裡切斷,對方會反擊,我需要做活一塊棋,這會讓對方先手去佔大場...最終我大概虧 5 目。但如果我先補強再切斷,雖然損失先手,但...」

這種多層次、多維度的思考,需要同時處理局部和全局、短期和長期。

官子:精確計算與逆轉

官子階段看似簡單——只是收尾。但實際上:

  • 每一手的「目數價值」需要精確計算
  • 先後手的差異可能決定勝負
  • 「劫爭」可以完全改變局面

職業棋手在官子階段的計算精度可以達到 0.5 目,而一盤棋的勝負可能就差 1 目。

為什麼看不遠是致命的

讓我們做一個簡化計算:

  • 一盤棋平均 250 手
  • 要完美預測結果,理論上需要看完所有 250 手
  • 即使分支因子降到 100(官子階段),搜索空間也是 100^250 ≈ 10^500

這遠遠超出任何電腦的能力。

這就是為什麼圍棋 AI 必須學會「評估」局面,而不能只靠「計算」。


直覺的重要性:「這步棋感覺對」

人類棋手的思考方式

頂尖圍棋棋手描述他們的思考過程時,經常使用這樣的詞彙:

"這步棋感覺對。"

"這個形狀很舒服。"

"他的那塊棋味道不好。"

"這裡有一種說不出的危險感。"

這不是詩意的描述,而是真實的認知過程。人類棋手使用模式識別直覺判斷來處理圍棋的複雜性。

模式識別:一秒鐘看到重點

實驗顯示,職業棋手看一眼棋盤(不到 1 秒),就能:

  1. 識別出關鍵區域
  2. 發現可能的「好棋」
  3. 感知局面的大致形勢

這種能力來自數萬盤棋的經驗積累,形成了「棋感」。

在 AlphaGo 之前的電腦圍棋,最大的困難就是無法複製這種直覺

直覺的數學描述

從機器學習的角度,人類的圍棋直覺可以被理解為:

P(好棋棋盤局面)P(\text{好棋} | \text{棋盤局面})

一個訓練有素的大腦,能夠根據棋盤局面,立即輸出每個位置是「好棋」的機率分布。

這正是 Policy Network 要學習的東西——而這需要深度神經網路。


為什麼被稱為「AI 的聖杯」

棋類遊戲的里程碑

人工智慧的歷史中,棋類遊戲一直是重要的里程碑:

年份事件意義
1951首個西洋跳棋程式最早的遊戲 AI
1997深藍擊敗卡斯帕洛夫暴力搜索的勝利
2007Checkers 被完全破解完美資訊遊戲的極限
2016AlphaGo 擊敗李世乭深度學習的勝利

為什麼圍棋特別

圍棋被稱為「AI 的聖杯」,因為它集合了所有困難的特性:

特性圍棋西洋棋
狀態空間10^17010^120
分支因子~250~35
平均手數~250~40
評估難度極高中等
直覺依賴非常高

如果 AI 能解決圍棋,意味著:

  1. 可以處理極大的搜索空間
  2. 可以學會抽象的評估
  3. 可以進行長期規劃
  4. 可以形成「直覺」

這些能力遠遠超出「下棋」的範疇,是通用智能的核心特徵。

學術界的預測

2016 年之前,學術界對「AI 何時能擊敗人類圍棋冠軍」的預測普遍是:

"至少還要 10-20 年。"

— 多數 AI 研究者(2015 年)

這個預測基於當時技術進展的速度。圍棋程式每年進步約 1-2 段,而人類職業九段有 18 段的實力差距。按這個速度,確實需要 10-20 年。

沒人預料到深度學習會帶來跳躍式的突破


動畫對應

本文涉及的核心概念與動畫編號:

編號概念物理/數學對應
🎬 B2狀態空間爆炸組合數學、指數增長
🎬 B8組合爆炸階乘增長、搜索樹
🎬 A3分支因子比較圖論、樹結構
🎬 B5評估函數困境非線性映射

關鍵要點整理

圍棋之所以被稱為「AI 的聖杯」,是因為它結合了三大難題:

1. 空間的詛咒

  • 10^170 種可能局面,遠超宇宙原子數
  • 分支因子 ~250,搜索樹爆炸性增長
  • 暴力搜索在物理上不可能

2. 評估的困難

  • 每顆棋子價值相等,沒有材料優勢
  • 「厚勢」「外勢」「味道」等抽象概念難以量化
  • 局面評估是高度非線性、全局性問題

3. 時間的挑戰

  • 一盤棋 ~250 手,需要長期規劃
  • 布局決策影響 50-100 手之後的局面
  • 局部戰鬥與全局平衡需要同時考慮

正是這些難題的組合,使得傳統 AI 方法(暴力搜索 + 手工評估)在圍棋上徹底失敗。

而 AlphaGo 的突破,正是因為它用深度神經網路解決了評估問題,用蒙地卡羅樹搜索解決了規劃問題,用強化學習解決了超越人類的問題。


延伸閱讀


參考資料

  1. Tromp, J. (2016). "Number of legal Go positions." — 圍棋狀態空間的精確計算
  2. Allis, L.V. (1994). "Searching for Solutions in Games and Artificial Intelligence." PhD thesis, University of Limburg. — 遊戲複雜度的理論分析
  3. Müller, M. (2002). "Computer Go." Artificial Intelligence, 134(1-2), 145-179. — 電腦圍棋的早期研究綜述
  4. Silver, D., et al. (2016). "Mastering the game of Go with deep neural networks and tree search." Nature, 529, 484-489. — AlphaGo 原始論文

📌 重點摘要

本文重點:

  • 圍棋的狀態空間達 10^170,是宇宙原子數(10^80)的 10^90 倍,暴力搜索在物理上不可能
  • 圍棋每步平均有 250 種選擇(分支因子),遠高於西洋棋的 35,導致搜索樹爆炸性增長
  • 圍棋沒有簡單的棋子價值,「厚勢」「外勢」等抽象概念難以量化,傳統評估函數無法處理

常見問題

為什麼圍棋的狀態空間比西洋棋大這麼多?

圍棋棋盤有 361 個點(19x19),每個點可以是空、黑或白三種狀態。而且圍棋棋子落下後不會移動(除非被提),導致可能的局面組合遠超西洋棋(64 格,棋子會移動)。

為什麼深藍的暴力搜索方法在圍棋上失敗?

深藍靠每秒評估 2 億個局面來下西洋棋。但圍棋的分支因子(250)遠高於西洋棋(35),同樣深度的搜索需要評估的節點數相差數億倍,沒有任何硬體能彌補這個差距。

為什麼圍棋被稱為「AI 的聖杯」?

圍棋結合了所有困難特性:極大的狀態空間、高分支因子、難以量化的評估、需要長期規劃。能解決圍棋意味著 AI 具備處理極複雜問題、學會抽象評估、形成「直覺」的能力,這些是通用智能的核心特徵。