二分圖

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

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

### 匹配

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

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

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

## 應用

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

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

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