樹寬

圖論中，無向圖的樹寬（treewidth）是描述圖與樹的距離的正整數。樹寬為1的圖就是樹或森林。樹寬不大於2的圖叫做系列並行圖。樹寬恰為k的最大圖稱作k樹，樹寬不大於k的圖稱作部分k樹。很多有充分研究的圖族的樹寬也是有界的。

樹寬可用幾種等價方式正式定義：圖的樹分解中最大頂點集的大小、圖的弦補全中最大團的大小、描述圖上追逃對策的港的最大階數、刺藤（bramble，相互接觸的連通子圖的集合）的最大階數。

樹寬常用作圖演算法的參數複雜性分析中的參數。對一般圖NP困難的許多演算法，將樹寬固定於常數時就變得容易了。

樹寬的概念最初由提出，叫做「維度」（dimension）。後來，根據樹寬和哈德維格數的共同屬性，重新發現了樹寬。又重新發現了樹寬，自此才獲得了學界的關注。

## 定義

圖$G=(V,\ E)$的樹分解是結點為$X_1,\ \dots,\ X_n$的樹T，其中$X_i$都是V的子集，滿足下列性質（為避免與G的頂點混淆，「結點」僅指樹T的頂點）：

- $\bigcup_i X_i=V.$即，圖頂點至少包含在一個樹結點中。
- 若$X_i,\ X_j$共同包含頂點v，則在$X_i$到$X_j$的（唯一）路徑上，T的所有結點$X_k$也都包含v。即，包含頂點v的樹結點構成T的連通子樹。
- 對圖中每條邊$(v,\ w)$，存在同時包含v、w的子集$X_i$。即，只有當相應的子樹有共同結點時，圖頂點才是相鄰的。

樹分解的寬是其最大集$X_i$的大小減一。圖G的樹寬${\rm tw}(G)$等於G的樹分解的最小寬度，按這定義，最大集的大小減一，樹的樹寬才能等於一。

等價地，G的樹寬等於團數最小的含G弦圖中最大團的大小減一。在G中屬於$X_i$的兩頂點間添加一條邊，就可得到團大小相符的弦圖。

樹寬也可用港描述，其是在圖上定義的追逃對策中逃逸策略的函數。若有至多$k+1$階的港——函數$\beta$，將G中最多k個頂點的集合X映射到$G\backslash X$的一個連通分量中，並且具有$X\subseteq Y\Rightarrow \beta(Y)\subseteq\beta(X)$的單調性，就稱圖G的樹寬為k。

使用刺藤（bramble）也可做出類似描述。刺藤是指一族相互接觸的連通子圖（即共享一個頂點，或由一條邊連接）。刺藤的階數是子圖族的最小命中集（hitting set），圖的樹寬等於刺藤最大階數減一。

## 例子

完全圖$K_n$的樹寬為$n-1$。這用樹寬的弦圖定義很容易看出來：完全圖已經是弦圖，添加更多邊不能減小最大團的大小。

若且唯若至少2頂點的連通圖是樹，連通圖的樹寬為1。樹的樹寬為1，與完全圖同理（即它已經是弦圖，且最大團大小為2）。反之，若圖中有循環，則所有弦補全都至少包括一個由循環的3個連續頂點組成的三角形，由此可見其樹寬至少為2。

## 有界樹寬

### 有界樹寬圖族

樹寬不大於常數k的圖稱作部分k樹。其他具有有界樹寬的圖族，有仙人掌圖、偽森林、系列並行圖、外平面圖、哈林圖、阿波羅尼奧斯網路等。在結構化編程的編譯階段出現的控制流圖，樹寬也是有界的，使寄存器配置之類任務可在其上高效執行。

平面圖的樹寬不一定有界，因為$n\times n$格圖是樹寬恰為n的平面圖。於是，若F是樹寬有界的子式閉圖族，則它不可能包含所有平面圖。反之，若某平面圖不能作為F族中圖的子式出現，則存在常數k，使F中所有圖的樹寬不大於k。即，以下3個條件等價：

- F是樹寬有界圖的子式閉圖族。
- 表徵了F的有限多禁子式（forbidden minor）中，有一個是平面的。
- F是不含平面圖的子式閉圖族。

### 禁子式

對每個有限值k，樹寬不大於k的圖都可用禁子式的有限集表示（即，任意樹寬大於k的圖，都包含集合中的一個圖作為子式）。每個這樣的禁子式集都包含平面圖。

- 對於$k=1$，唯一的禁子式是3-頂點循環圖。
- 對於$k=2$，唯一的禁子式是4-頂點完全圖$K_4$。
- 對於$k=3$，有4個禁子式：$K_5$、八面體圖、五稜柱圖、華格納圖。其中兩個多面體圖是平面圖。

對更大的k，禁子式的增長速度不小於k的平方根指數。但已知的禁子式的大小與數量的上界遠高於這個下界。

## 演算法

### 計算樹寬

判斷給定圖G的樹寬是否不大於給定值k的問題，是NP完全的。而當k為任意固定常數時，可在線性時間內識別出樹寬為k的圖，並為之構造出樹寬為k的樹分解。這演算法的耗時對k是指數級的。

由於樹寬在眾多領域中的作用，人們開發了計算樹寬的各種演算法。根據具體的應用，我們可以選擇更好的近似率，或運行時間與輸入或樹寬大小更相關的演算法。

下表概述了一些樹寬演算法。其中，k是樹寬，n是輸入圖G的頂點數。每種演算法都能在$f(k)\cdot g(n)$的時間內輸出寬度等於「近似」欄中的分解圖。例如，的演算法在$2^{O(k^3)}\cdot n$時間內，要麼為輸入圖G構建樹寬不大於k的樹分解，要麼報告G的樹寬大於k。相似地，的演算法在$2^{O(k)}\cdot n$時間內，要麼為輸入圖G構建樹寬不大於$5k+4$的樹分解，要麼報告G的樹寬大於k。在同樣運行時間內，將其改進到$2k+1$。

近似｜$f(k)$｜$g(n)$｜參考文獻

精確｜$O(1)$｜$O(n^{k+2})$

$4k+3$｜$O(3^{3k})$｜$O(n^2)$

$8k+7$｜$2^{O(k\log k)}$｜$n\log^2n$

$5k+4\text{或}7k+6$｜$2^{O(k\log k)}$｜$n\log n$

精確｜$2^{O(k^3)}$｜$O(n)$

$O \left( k \cdot \sqrt{\log k} \right)$｜$O(1)$｜$n^{O(1)}$

$4.5k+4$｜$2^{3k}$｜$n^2$

$\frac{11}{3}k+4$｜$2^{3.6982k}$｜$n^3\log^4n$

精確｜$O(1)$｜$O(1.7347^n)$

$3k+2$｜$2^{O(k)}$｜$O(n\log n)$

$5k+4$｜$2^{O(k)}$｜$O(n)$

$k^2$｜$O(k^7)$｜$O(n\log n)$

$5k+4$｜$2^{8.765k}$｜$O(n\log n)$

$2^{O(k)}$｜$2^{O(k)}$｜$O(n)$

$5k+4$｜$2^{6.755k}$｜$O(n\log n)$

精確｜$2^{O(k^2)}$｜$n^4$

$(1+\varepsilon)k$｜$k^{O(k/\varepsilon)}$｜$n^4$

目前還不知道確定平面圖樹寬的問題是不是NP完全的，也不知道其樹寬能否在多項式時間內計算出來。

實踐中，的演算法可以確定頂點數最多為100、樹寬最多為11的圖的樹寬，並以最優樹寬找到這些圖的弦補全。

對更大的圖，可以用基於搜索的技術，如分支定界搜索（BnB）與最佳優先搜索，以計算樹寬。它們是任意時間演算法，提前停止時會輸出樹寬的上界。

第一個計算樹寬的BnB演算法叫做QuickBB演算法，是Gogate與Dechter提出的。BnB演算法的質量在很大程度上取決於所用下限的質量，Gogate與Dechter還提出了一種計算樹寬下界的新演算法，稱作minor-min-width。圖的樹寬絕不大於最小度數或其圖子式，minor-min-width算法利用這一事實，在高層次上得出了樹寬的下界。minor-min-width演算法通過收縮最小度頂點與鄰頂點間的邊，反覆構造圖子式，直到僅剩一個頂點。所構造子式中，最小度的最大值是圖樹寬的下界。

Dow、Korf使用最佳優先搜索改進了QuickBB演算法，在某些圖上快了一個數量級。

### 解小樹寬圖上的其他問題

20世紀70年代初，人們發現，只要圖的「維度」有界，就可通過非序列動態規劃，高效解決一大類定義在圖上的組合優化問題。研究表明，「維度」等同於樹寬。後來，多名學者在80年代末獨立觀察到，很多對任意圖來說NP完全的問題，對樹寬有界的圖來說，可用動態規劃，利用樹分解高效解決。

舉例來說，k樹寬圖的著色問題可通過對樹分解使用動態規劃演算法解決。將$X_i$（樹分解的所有集合）的頂點劃分為顏色類，算法會結合儲存在結點的相似類資訊確定著色是否有效、擴展到樹分解中所有的子結點。由此產生的演算法能在$O(k^{k+O(1)}n)$時間內找到n頂點圖的最優著色，這個時間約能束使問題固定參數可解。

### 古賽爾定理

對於一大類問題，如果提供具有有界常值樹寬的樹分解，就可用線性時間演算法求解。具體來說，古賽爾定理指出，若圖問題可用一元二階邏輯表為圖的邏輯，就可在樹寬有界圖上用線性時間求解。一元二階邏輯是一種描述圖屬性的語言，有下列結構：

- 邏輯運算，如$\wedge ,\vee ,\neg ,\Rightarrow$
- 成員檢驗，如$e\in E,\ v\in V$
- 對頂點、邊、頂點集和/或邊集的量詞，如$\forall v\in V,\ \exists e\in E,\ \exists I\subseteq V,\ \forall F\subseteq E$
- 鄰接檢驗（如u是e的端點），及一些允許優化的擴展。

例如，考慮3著色問題。對圖$G=(V,\ E)$，此問題是說，有沒有可能為每個頂點$v\in V$分配3種顏色中的一種，使得相鄰頂點總被分配不同顏色。

這個問題用一元二階邏輯表為：

$$\exists W_1 \subseteq V : \exists W_2 \subseteq V : \exists W_3 \subseteq V : \forall v \in V : (v \in W_1 \vee v \in W_2 \vee v \in W_3) \wedge$$

$\forall v \in V : \forall w \in V : (v,w) \in E \Rightarrow (\neg (v \in W_1 \wedge w \in W_1) \wedge \neg (v \in W_2 \wedge w \in W_2) \wedge \neg (v \in W_3 \wedge w \in W_3))$,

其中$W_1,\ W_2,\ W_3$分別代表3種顏色的頂點子集。於是，根據古賽爾定理，對具有有界常值樹寬的樹分解的給定圖，3著色問題可在線性時間內求解。

## 相關參數

### 徑寬

圖的徑寬也是經過樹分解定義的，不過其底樹是徑圖，也可通過區間圖定義，類似於由弦圖定義樹寬。因此，圖的徑寬總不小於樹寬，但只能比樹寬大一個對數因子。另一個參數是帶寬，其定義與緊合區間圖類似，徑寬是其下界。其他相關參數還有樹深，若且唯若子式閉圖族中包含路徑時有界；以及退化度，這是衡量圖稀疏程度的指標，最多等於樹寬。

### 格子式大小

由於$n\times n$格圖的樹寬為n，圖G的樹寬總大於等於G的最大方格子式的大小。在另一個方向上，Robertson與Seymour的格子式定理表明，存在無界函數f使得最大方格子式的大小至少為$f(r)$，其中r是樹寬。f的已知最佳區間：對某常數$d>0$，下界為$\Omega(r^d)$，上界為

$$O \left( \sqrt{ r / \log r} \right).$$

關於下界中的Ω記號，見大O符號。對有約束的圖族，區間也更嚴。雙維理論為這些圖族上的很多圖優化問題提供了高效演算法。

哈林格定理提供了無限圖的樹寬與格子式大小關係的類比。

### 直徑與局部樹寬

若圖族F在取子圖下封閉，其中圖的樹寬有以直徑為函數的上界，則稱它們具有有界局部樹寬或直徑樹寬性。若假設該族在取圖子式下也封閉，則若且唯若F的一個禁子式是頂點圖（apex graph），F才有有界的局部樹寬。這一結果的最初證明顯示，無頂點子式圖族的樹寬作為直徑的函數，最多呈2倍指數增長；後來降為單倍指數增長，最後抵達線性的界。有界局部樹寬與雙維理論密切相關，一階邏輯中可定義的圖屬性都可用略微超線性的時間來決定一個無頂點子式圖族。

對取子式不封閉的圖族，也有可能具有有界的局部樹寬。特別是對一族有界度圖來說，這是一定成立的，因為有界直徑子圖的大小有界。另一個例子是1-平面圖，即可在平面上繪製的、每條邊有1交叉的圖，以及更廣義地說，可在虧格有界的曲面上繪製的、每條邊有一定交叉點的圖。與局部樹寬有界的子式閉圖族一樣，這一特徵為圖的高效近似算法指明了方向。

### 哈德維格數與S函數

定義了一類叫做「S-函數」的圖參數，其中包括樹寬。這些函數從圖映射到整數，無邊圖映射到0，具有子式單調性（若對函數f、G的子式H，總有$f(H)\le f(G)$，則稱f是「子式單調」的），在與所有現有頂點相鄰的位置添加新頂點時，函數值加1，並從團分隔兩側的兩子圖中取較大值。所有此種函數的集合在逐元素最小、最大化運算下，形成了完全格，當中的頂元素是樹寬，底元素是哈德維格數，即給定圖中最大完全子式的大小。