二分图

在圖論中，**二部圖**（**bipartite graph**）是一類特殊的圖，又稱為**二分圖**、**偶圖**、**雙分圖**。二部圖的頂點可以分成兩個互斥的獨立集 U 和 V 的圖，使得所有邊都是連結一個 U 中的點和一個 V 中的點。頂點集 U、V 被稱為是圖的兩個部分。等價的，二部圖可以被定義成圖中所有的環都有偶數個頂點。

可以將 $U$ 和 $V$ 當做一個著色： $U$ 中所有頂點為藍色， $V$ 中所有頂點著綠色，每條邊的兩個端點的顏色不同，符合圖著色問題的要求。相反的，非二部圖無法被二著色，例如 $K_{3}$ (3 個頂點的完全圖)，將其中一個頂點著藍色並且另外一個著綠色後，第三個頂點與上述具有兩個顏色的頂點相連，無法再對它著藍色或綠色。

二部圖的一種描述方式為： $G=(U,V,E)$ ，包含了獨立集 $U$ 和 $V$ ，以及邊 $E$ 的資訊。假如 $G$ 不是連通圖，可能有多種將所有頂點分成 $U$ 和 $V$ 的方式；在特定的應用場合中，將頂點的兩部分 $U$ 、 $V$ 寫出來是有必要的。如果 $|U|=|V|$ ，則 $G$ 稱為平衡二部圖。如果二部圖 $U$ 以及 $V$ 的頂點分別有相同的度數，則 $G$ 被稱為是雙正則的。

給定一個二部圖 $G$ ，在 $G$ 的一個子圖 $M$ 中， $M$ 的邊集中的任意兩條邊都沒有共同的端點，則稱 $M$ 是一個匹配。

## 例子

二部圖經常出用來研究兩種不同類型的物件之間的關係。例如，如果要討論足球球員和球隊的關係，可以畫一個二部圖，頂點的兩部分分別是所有球員和所有球隊，如果球員受僱於球隊，則在二者之間連邊。這種二部圖模型叫做附屬網絡，經常用於社會網絡分析。

另一個例子出現在鐵路規畫問題：給定許多班火車及許多車站，每輛火車中途停靠的站不盡相同，問最少個數的車站集合使得每輛火車都停靠至少一個集合中的車站。以圖論的觀點來看，將火車和車站視為頂點，火車有停靠車站則連邊，問題轉化成是二部圖的點覆蓋問題。

第三個例子出現在古幣學，古代的硬幣有正面及反面之分，不同時期和地區的政府會使用不同的正反面組合，因此，將所有可能的組合畫成圖就是一個二部圖的結構。

其他一般性的例子諸如：

* 所有的樹都是二部圖。
* 有偶數頂點個數的環 (圖論) 是二部圖。
* 所有的平面圖滿足各個面的邊界有偶數個邊是二部圖，因此格子點圖和四邊形圖都是二部圖。
* 一個完全二部圖 Km,n 是一個二部圖，滿足兩個頂點集 U、V 分別有 m、n 個頂點，並且任取一個 U 中的點，所有 U 中的頂點都連邊到所有 V 中的頂點。
* 皇冠圖 是將完全二部圖 Kn,n 扣掉一個完美匹配的所有邊所得到的圖，因此也是個二部圖。
* 超方形圖、部分超方形圖、和中間圖都是二部圖，而且它們的頂點可以被看做是位元向量（一串由 0 和 1 組成的字串），使得兩個頂點連邊若且唯若它們只有一個位元是相異的，而它們的二分性的驗證可以藉由考慮兩個獨立集是分別蒐集所有擁有奇數和偶數個 1 的位元向量。此外，所有的樹和四邊形圖都是中間圖，而所有的中間圖都是部分超方形圖。

## 特性

### 等價條件

* 一個圖是二部圖若且唯若它不包含奇環作為子圖。
* 一個圖是二部圖若且唯若它的著色數是 2。
* 一個圖是二部圖若且唯若它的譜是正負對稱的。

### 柯尼希定理

柯尼希定理於 1931 年，由匈牙利數學家德內斯・柯尼希提出：

> 
> 一個圖是二部圖若且唯若它的最小頂點覆蓋的頂點數等於最大匹配的邊數。
> 
> 

該定理有一個等價形式，一個圖是二部圖若且唯若它的最大獨立集的頂點數與最大匹配的邊數之和，等於總頂點個數。再配合一個性質，一個沒有孤立頂點的圖會滿足最小邊覆蓋的邊數加上最大匹配的邊數等於總頂點個數，我們有對任何沒有孤立頂點的二部圖，最小邊覆蓋的邊數等於最大獨立集的頂點數，以及最小邊覆蓋的邊數加上最小頂點覆蓋的頂點數等於總頂點數。

### 完美圖

所有的二部圖和二部圖的線圖，以及它們的補圖都是完美圖。很明顯的，二部圖是完美圖，因為他的著色數和最大點團數皆為 2，但另一方面，二部圖的補圖的完美性是相對難以證明的，該性質等價於前面小節的倒數第二個敘述。類似的，二部圖的線圖的補圖的完美性等價於柯尼希定理的敘述，這也是會如此定義完美圖的動機之一。而最後剩下的，是二部圖的線圖的完美性，而這個等價於柯尼希於早些年證明出的定理：二部圖的邊著色數等於最大度數。

強完美圖定理給出完美圖的等價條件：一個圖是完美圖若且唯若所有奇環和奇環的補圖都不是它的導出子圖。這個刻畫可與二部圖沒有奇環作為子圖類比，實際上，在強完美圖定理的證明中，二部圖、二部圖的線圖，以及它們的補圖佔了 5 個基本類型中的 4 個。

### 度數

一個頂點 v 的度數定義為以它為端點的邊數，記做 $\deg(v)$ ，很明顯的，對於二部圖 $G=(U,V,E)$ ，有以下的度數和公式

　
: $\sum _{v\in V}\deg(v)=\sum _{u\in U}\deg(u)=|E|$

一個二部圖的度數序列是兩個序列，分別列出 U 和 V 中各頂點的個數。例如完全二部圖 K3,5 的度數序列是 (3,3,3,3,3) 和 (5,5,5)。同構的二部圖會有相同的度數序列，但一般而言，擁有相同度數序列的圖卻不一定是同構的。可二部圖化問題是給定兩個正整數序列，要尋找出一個二部圖使得它的度數序列是那兩個正整數序列。本問題中的序列中的 0 可以被忽略，因為那只是在為二部圖增加孤立頂點而已。

### 與超圖及有向圖的關係

一個兩部分分別有 m 和 n 個頂點二部圖的雙相鄰矩陣是一個 $m\times n$ (0,1) 矩陣，滿足如果兩個頂點相鄰，矩陣中的該行該列對應到的元素是 1，反之如果兩點不相鄰則對應到 0。雙相鄰矩陣可以用來描述二部圖、超圖和有向圖的等價關係。

超圖的定義如同簡單圖，由頂點和邊組成，但是一個邊可以有超過兩個段點，因為一個邊被重新定義做頂點集合的一個子集合。可以用二部圖 (U,V,E) 來描述超圖，其中 U 是超圖的頂點集合，V 是超圖的邊集合，U、V 中的兩元素 u, v 有連邊若且唯若在超圖中，u 是 v 的一個段點。在這個對應之下，二部圖的雙相鄰矩陣等於它所對應到的超圖的關聯矩陣。特別的多重圖 (可能會有不同邊有相同的兩個端點) 可以被視為是超圖的特例，只是每個點都恰有兩個邊而已，根據上述，多重圖對應到的二部圖滿足 V 中的頂點度數皆為 2。

類似的，所有有向圖 (允許兩端點相同的自環) 可以一對一對應到所有平衡二部圖，方法是將有向圖的 n 個頂點複製兩份，得到集合 U、V，U 中的頂點 u 有連邊到 V 中的頂點 v 若且為唯若在原本有向圖中，有一條邊從 u 出發指向 v。此時，有向圖的相鄰矩陣可以是任意 $n\times n$ 階 (0,1) 矩陣，而且會一對一對應到平衡二部圖的雙相鄰矩陣。

### 霍爾定理

霍爾定理（Hall's Theorem) 表明了一個二部圖 _G_，_X_ 與 _Y_ 分別是兩個獨立集。X 能被 Y 匹配若且唯若 $|N(S)|\geq |S|$ ，其中 _S_ 是 _X_ 的任意子集。

霍爾定理給出了一種證明完美匹配是否存在的方式，該定理也常常被用於求解 SDR 問題（system of distinct representatives，不同代表問題）。

在 SDR 問題中，你擁有 _n_ 個不同的集合，你需要為每個集合找到一個獨特的代表元素。一個集合集擁有 SDR 若且唯若任意 _t_ 個集合的並包含 _t_ 個不同的元素。

霍爾定理有時也被稱作霍爾婚姻定理（Hall's Marriage Theorem），用以解決男女的婚姻匹配問題。

## 演算法

### 二分性測試

給定一個圖，使用深度優先搜尋法，可以在線性時間內判斷它是否為二部圖，並輸出一個二著色 (若答案為是)，或是一個奇環 (若答案為否)。方法是先用深度優先搜尋法找出圖的一個深度優先搜尋森林 (各連通部分取一個深度優先搜尋樹)，這是圖的一個生成森林。接著運用樹的搜尋將森林二著色，也就是依序各頂點著和它的父節點相異的顏色。現在檢查原圖中深度優先搜尋森林以外的其他邊，如果所有邊的兩端點都不同顏色，則這也是原圖的一個二著色，並且輸出它；如果有一個邊 e 的兩端點相同顏色，則此兩端點在同一個連通部分，也就是在森林的同一棵樹上，找出在森林中，連接兩端點的路徑 P，因為 P 上的頂點的顏色是交錯出現的，因此 P 有偶數個頂點，加上 e 就形成一個奇環，並且輸出它。

事實上，在上述的演算法中，深度優先搜尋森林只是作為一個生成森林，讓我們來著色。因此，用不同的方式獲得的別的生成森林仍然可以使演算法可以運作，例如，可以用廣度優先搜尋取出廣度優先搜尋森林。

如果原圖是線段，或其他二維空間的物件，的交集圖，並且有 n 個頂點，則可以在 $O(n\log n)$ 時間內輸出一個二著色或奇環，縱使它的邊樹可能會高達 $O(n^{2})$ 。

### 奇環代表系

奇環代表系問題是一個 NP 完全問題，問給一個圖 G (V,E) 和一個正整數 k，是否可以刪掉 k 個頂點使得 G 變成一個二部圖。這個問題是可定變數決定的 (FTP)，更精確地說，存在一個演算法所花費時間不超過一個 k 的函數乘上一個 n 的多項式，其中 n 是 G 的頂點數。奇環代表系這個名字是來自二部圖的一個等價特性：不存在奇環作為子圖。因此，要刪掉點使得 G 變成二部圖其實是在破壞所有的奇環，或者說找出所有奇環的代表系。在右圖的中，所有的奇環都包含一個藍色的頂點 (最下面那排的)，因此刪掉那兩個藍色頂點會把圖變成二部圖。

刪邊二分性問題則是問給定一個圖，至少要刪除幾個邊才能讓該圖變成二部圖，這和奇環代表系問題都是重要的圖修改演算法問題，而且也都是可定變數決定的。事實上，刪邊二分性問題可以在 $O(2^{k}m^{2})$ 被解決，其中 m 是原圖中的邊數。

### 匹配

一個圖的匹配是這個圖中一些邊所形成的集合，滿足任意集合中的兩條邊都沒有公共的頂點。許多關於匹配的問題都有可以被多項式時間的演算法解決，例如最大匹配問題 (尋找一個匹配包含最多的邊)，極大加權匹配問題，和穩定婚姻問題。在大部分的情況，如果已知原圖是二部圖，匹配問題會變得單純很多，而且許多演算法只能處理二部圖上的情況，例如專門用來計算最大匹配的邊數的霍普克洛夫特－卡普演算法。

舉個簡單的例子，假設有一些人想要找尋工作，他們形成集合 P，此外還有一些職缺，它們形成集合 J，並不是所有人都適合所有的工作，但一個人只能做一份工作。這個案例可以被建模成一個二部圖 $(P,J,E)$ ，如果一個人可以做某項工作則將二者連邊。一個完美匹配是一個工作的指派使得所有人都有工作做而且每個職缺都有人做。霍爾婚配定理給出一個二部圖有完美匹配的刻畫。

杜爾馬基 - 孟德爾索分解將圖依據其結構分解成多塊，經常用於找尋圖的最大匹配。

## 應用

二部圖廣泛應用於編碼理論中，尤其常應用在收到從通道傳來的訊息之後解碼過程中。常見的例子有坦納圖和因子圖。坦納圖是一個二部圖，其中一個獨立集蒐集所有的一個碼字裡可以放數碼的位置，另一個獨立集則包含一些可以放數碼的位置的組合，其中每個組合代表一個碼字所該符合的限制──那些位置的數碼加起來總和是 0，而連邊就代表了屬於。因子圖則與低密度奇偶檢查碼及渦輪碼的機率解碼中所用到的貝氏網路密切相關。

在電腦科學中，佩特里網是一個數學工具用來分析及模擬並行計算，它將系統模擬成一個有向二部圖，其中一部分的頂點被稱為「位置」節點，包含一些資源，另一部分的頂點被稱為「事件」節點，消耗或生產資源，節點和邊之間的關係還有一些限制，這些限制來自系統本身的限制。佩特里網藉由有向二部圖的性質讓系統的行為可以用數學來證明，並且讓系統的模擬容易被執行。

在射影幾何中，列維圖是一個二部圖，描述幾何構形中點跟邊的關係。頂點的兩部分分別對應到構形的點跟邊，圖中兩頂點之間連邊若且唯若構形中的邊通過點，因為兩條邊頂多交於一點，或者說，兩點決定唯一一條邊，所以列維圖中不存在長度為 4 的環作為子圖，換言之，列維圖的圍長大於等於 6。

## 參考資料

## 參見

* 完全二部圖
* 因子圖
* Tanner 圖
* Petri 網