博弈複雜度

博弈複雜度（game complexity）可以用許多方法加以衡量。本條目講述其中的5種方法：狀態空間複雜度（state-space complexity）、博弈樹的大小（game tree size）、策略複雜度（decision complexity）、博弈樹複雜度（game-tree complexity）與計算複雜度（computational complexity）。

## 博弈複雜度的衡量

### 狀態空間複雜度

狀態空間複雜度指的是從博弈最開始的狀態可以變化出的符合規則的狀態的數量。

當這太難以計算時，常常通過包含一些不符合規則的狀態或不可能在博弈中出現的狀態, 從而計算出一個上界限。

### 博弈樹的大小

博弈樹的大小指的是博弈可以進行的總次數：從博弈樹最初的根節點開始延伸出的葉子節點的數量.

博弈樹通常比狀態空間要大得多，因為同一個狀態可以由不同的行為順序形成。（例如，在一回合井字棋遊戲中，面板上有兩個X和一個O，這個狀態可能由兩個不同的方式形成，具體的形成過程由第一個X的下子位置所決定）。一個博弈樹的大小的最大值有時可以這麼計算：通過僅增大博弈樹的方式，簡化博弈的過程（例如，允許一些本來不符合規則的行為），直到博弈樹的大小變得易於計算。

不過，對於一些沒有行為上限的博弈（比如說沒棋盤大小的界限，或者有一個可以重複博弈狀態的規則），博弈樹的大小將會是無限的。

### 決策樹

之後的兩種方案用到了決策樹的方法。一個決策樹是博弈樹的子樹。決策樹的狀態會被標記上「玩家A獲勝」、「玩家B獲勝」或者「平手」；如果有那個狀態可以被證明具有一個標記（假設雙方都作出了最好的決策），並且光從其它狀態就可以得出結論.。（終端的狀態可以直接標記；如果現在該A行動：如果下一個狀態標誌著A的勝利，那麼現在的狀態可以被標記為「玩家A獲勝」；如果下一個狀態標誌著B的勝利，那麼現在的狀態可以被標記為「玩家B獲勝」；或者可以被標記為「平手」，如果下一個狀態是平局或者B勝利。相應的對於現在該B行動也是一樣。）

#### 決策複雜度

一個博弈的決策複雜度指的是在構成初始狀態取值的最小的決策樹中，葉子節點的數量。

#### 博弈樹複雜度

一個博弈的「博弈樹複雜度」指的是在構成初始狀態取值的最小「整個」決策樹中，葉子節點的數量。整個決策樹包含樹中所有深度的節點。

這是一個為了嘗試決定初始狀態取值，所做出的對於需要考慮的節點數量的一個極小化極大演算法（Minimax）。

就算是去估量博弈樹複雜度，那也十分困難。不過對於一些博弈，一個合理的下界限可以由底數為博弈的平均分支因子，指數為博弈的平均步數的冪得出，即可以表示為：

$$GTC \geq b^d$$

### 計算複雜度

一個博弈的計算複雜性理論描述對博弈進行漸近分析的難度，隨著它變得過於巨大，用大O符號表示，或者用複雜性類的成員關係表示。這個概念並不應用於特定的博弈，而是用於廣義的博弈，它們會變得非常大，通常在一個n寬n高的面板上玩弄它們。（從計算複雜度的角度來看，一個在有限面板上進行的博弈是一個有限問題，可以通過計算O(1)解決。例如遍歷從方案到最佳的移動方案的所有方案。）

## 例子: 井字棋

以井字棋而言，一個簡單的狀態空間大小的上界限是39 = 19,683。（每一個格子中有3種狀態,，有9個格子）這樣計算包含了許多不合規則的狀態，比如有5個X卻沒有0的狀態，或者兩方玩家都有形成一字的狀態。一個更精細的計算，除去了這些不合規則的狀態之後，留下5,478個狀態。然後，如果把旋轉或翻轉後會得到相同結果的狀態算作同一個的狀態話，那麼就可以得出765個真正本質上不同的狀態。

一個簡單的博弈樹大小的上界限是9! = 362,880。（一開始有9個格子可以下子,，第二回合變為8個，以此類推）這包括了一方玩家獲勝後繼續下子的不符合規則的情況。一個更精細的計算得出的是255,168種博弈過程。如果把旋轉或翻轉後會得到相同結果的狀態當作相同的話，那麼就僅有26,830種博弈過程。

井字棋的計算複雜度取決與它如何廣義化。一種自然的廣義化是將其變為m,n,k型博弈：在一個寬"m"高"n"的棋盤上，第一個將"k"個子連成一線的玩家獲勝。很容易就可以發現，這個博弈可以通過查找整個博弈樹，解DSPACE(mn)，得出結果。這將它歸類到了重要的複雜性類PSPACE裡面。稍微再花點功夫，可以將它變換為PSPACE完整。

## 一些知名博弈的複雜度

由於博弈複雜度非常巨大，下面表中一些數據只顯示了以10為底數的指數部分。下面的表中的數值都需要小心對待：在博弈中，一個看起來很微小的規則變換會引起結果的巨大變化（通常依然會被粗略地估計），可能實際情況會比數值估計的結果要大得多。

博弈｜棋盤大小 (格數)｜狀態空間複雜度 (以10為底數的指數部分)｜博弈樹複雜度 (以10為底數的指數部分)｜平均博弈長度 (步數)｜分枝因素｜引用｜對應廣義化博弈的複雜性類

井字棋｜9｜3｜5｜9｜4｜PSPACE-complete

Sim｜15｜3｜8｜14｜3.7｜PSPACE-complete

五格骨牌｜64｜12｜18｜10｜75｜?, but in PSPACE

美國播棋｜14｜13｜18｜Generalization is unclear

屏風式四子棋｜42｜13｜21｜36｜4｜?, but in PSPACE

Domineering (8 × 8)｜64｜15｜27｜30｜8｜?, but in PSPACE; in P for certain dimensions

馬來播棋｜14｜15｜33

英國跳棋｜32｜20 or 18｜31｜70｜2.8｜or ｜EXPTIME-complete

西非播棋｜12｜12｜32｜60｜3.5｜Generalization is unclear

多層式四子棋｜64｜30｜34｜20｜54.2｜PSPACE-complete

迂棋｜45｜21｜46｜44｜11｜?, but in EXPTIME

直棋｜24｜10｜50｜50｜10｜?, but in EXPTIME

西洋跳棋｜50｜30｜54｜90｜4｜EXPTIME-complete

中國跳棋(2人)｜121｜23｜EXPTIME-complete

中國跳棋(6人)｜121｜78｜EXPTIME-complete

集結棋｜64｜23｜64｜44｜29｜?, but in EXPTIME

黑白棋｜64｜28｜58｜58｜10｜PSPACE-complete

OnTop (2人局)｜72｜88｜62｜31｜23.77

六貫棋｜121｜57｜98｜40｜280｜PSPACE-complete

五子棋(15x15, 無禁手)｜225｜105｜70｜30｜210｜PSPACE-complete

圍棋(9x9)｜81｜38｜45｜EXPTIME-complete

西洋棋｜64｜47｜123｜80｜35｜EXPTIME-complete (without 50-move drawing rule)

連六棋｜361｜172｜140｜30｜46000｜PSPACE-complete

雙陸棋｜28｜20｜144｜50-60｜250｜Generalization is unclear

象棋｜90｜40｜150｜95｜38｜?, believed to be EXPTIME-complete

角力棋｜61｜25｜154｜87｜60｜?, but in EXPTIME

三寶棋｜271｜127｜157｜66｜240｜?, but in PSPACE

韓國將棋｜90｜44｜160｜100｜40｜?, believed to be EXPTIME-complete

牆棋｜81｜42｜162｜91｜60｜?, but in PSPACE

卡卡頌(2p base game)｜72｜>40｜195｜71｜55｜Generalization is unclear

亞馬遜棋｜100｜40｜212｜84｜374 or 299｜PSPACE-complete

圍棋(13x13)｜169｜79｜90｜EXPTIME-complete

日本將棋｜81｜71｜226｜115｜92｜EXPTIME-complete

印度鬥獸棋｜64｜43｜402｜92｜17281｜?, but in EXPTIME

圍棋(19x19)｜361｜171｜360｜150｜250｜EXPTIME-complete

西洋陸軍棋｜92｜115｜535｜381｜21.739

Double dummy bridge｜(52)｜<17｜<40｜52｜5.6

## 外部連結

- David Eppstein's Computational Complexity of Games and Puzzles