離散結構:圖論進階

離散結構:圖論進階

一、匹配

1.0 引論

設 G=(V, E) 是簡單圖, M  \subseteq E。 如果 M 中任何兩條邊都不鄰接, 則稱 M 爲 G 中的一個匹配(matching)邊獨立集

設頂點 v \in V, 若存在 e \in M, 使得 v 是 e 的一個端點, 則稱 v 是 M-飽和的(matched or saturated) , 否則稱 v 是 M-非飽和的(unmatched)。

例子如下所示:

{v2, v4, v5, v6}是M-飽和頂點

{v1, v3}是M-非飽和頂點
 

若匹配 M 滿足對任意 e \in E - M, M∪{e} 不再構成匹配,則稱 M 作 G 的一個極大匹配(maximal matching)

如果圖 G 的匹配 M 滿足對於 G 的任何匹配 M’ 都有 |M| \geqslant |M’|, 則稱 M 是 G 的一個最大基數匹配(maximum-cardinality matching ) 或 最大匹配(maximum matching)

最大匹配 M 的元素數稱作圖 G 的匹配數(matching number) , 記作 v (G)

飽和圖 G 中每個頂點的匹配稱作完全匹配(complete matching) 或完美匹配(perfect matching)
例子如下:

 
     

性質:

(a) 極大匹配不是任何其他匹配的子集
(b) 若匹配 M 是 G 的一個極大匹配, 則對於任意e \in E - M, 都存在 e1 \in M, 使得 e 與 e1 相鄰
(c) 一個圖中的極大匹配可能不唯一
(d) 一個圖中的最大匹配可能不唯一
(e) 每個最大匹配都是極大匹配, 但不是每個極大匹配都是最大匹配
(f) 顯然圖 G 的匹配數不超過 G 的階數的一半

 

(a) 在完美匹配中, 每個頂點都關聯匹配中的一條邊
(b) 如果圖 G 存在完美匹配, 則圖 G的匹配數爲 G 的階數的一半, 此時的階數爲偶數
(c) 每個完美匹配都是最大匹配, 但不是每個最大匹配都是完美匹配

  • 完全圖 Kn(n \geqslant 3) 中匹配數爲  \left \lfloor n/ 2 \right \rfloor
  • 完全二部圖 Km, n 的匹配數爲 min(m, n)
  • 圈圖 Cn(n \geqslant 3) 的匹配數爲 \left \lfloor n/ 2 \right \rfloor                          

1.1 伯奇引理 Berge's lemma

該引理用來判斷是否爲最大匹配的伯奇引理。

設 M 是 G 中一個匹配, 若 G 中一條初級道路是由 M 中邊和 EM 中邊交替出現組成的, 則稱其爲交錯道路(alternating path),若一條交錯道路的始點和終點都是M-非飽和頂點, 則稱其爲M-可增廣道路(augmenting path),

易知可增廣道路的長度一定是奇數。
 

定理(伯奇引理)
匹配 M 爲圖 G=(V, E) 的最大匹配當且僅當 G 中不存在 M-可增廣道路。(證明略)
 

1.2  最大匹配構造算法 Algorithm on Constructing Maximum Matching

基於伯奇引理, 可以給出求二部圖中最大匹配的算法, 其基本思想是:

從任何一個初始匹配開始, 不斷尋找可增廣道路從而擴大匹配的基數, 直至不能再擴大爲止。
爲表述該算法, 首先補充一個定義。

設 W 是圖 G 的頂點集的一個子集, 則N_G(W) = { v | 存在u \in W,使得u與v相鄰 } 稱作 W 的鄰接頂點集(neighborhood of W)

算法描述如下

                                        

1.3  霍爾定理  Hall's Theorem

霍爾(Philip Hall) 曾研究二部圖中的匹配, 並於1935年提出了著名的“霍爾婚配定理(Hall's marriage theorem) ” ,或簡稱“霍爾定理(Hall's theorem) ”

設 G=(X, Y, E) 爲二部圖, G 中存在飽和 X 中每個結點的匹配 M(即 |M| = |X| )
當且僅當對任何非空集合 S \subseteq X, |N_G(S)| \geqslant |S|

該條件表示任意子集 S 都有足夠多的相鄰頂點

定理
設 G = (X, Y, E) 爲二部圖, G 中存在飽和 X 中每個頂點的匹配 M 當且僅當對任何非空集合S \subseteq X, |N_G(S)| \geqslant |S|

推論1
設 G=(X, Y, E) 爲二部圖, 若存在正整數 k, 使得對任意 x\inX, 有 deg(x) \geqslant k, 對任意 y\inY, 有deg(y) \leqslant k, 則 G 中存在飽和 X 中每個頂點的匹配。

推論2
對任意正整數 k, k-正則二部圖中必定存在飽和 X 中每個頂點的匹配。

1.4  拉丁方 Latin square

例子引入:

稱每行及每列都包含給定的 n 符號恰 1 次的一個 n×n 矩陣爲拉丁方(Latin square)
例:
                                              

  • 著名數學家和物理學家歐拉最早研究了這樣的方陣, 他使用拉丁字母來作爲方陣裏元素的符號, 拉丁方因此而得名
  • 拉丁方不僅影響着統計學實驗設計, 而且出現在離散數學及代數的許多不同領域中
  • 一般來說, 設 S={1, 2,…, n}, 構造 S 上 n 階拉丁方的主體思路就是逐行生成:例子如下

1.5  邊覆蓋集 Edge Cover Set

設 G(V, E) 是沒有孤立頂點的簡單圖, E^*\subseteq E

  • 如果對於任意 v \in V, 都存在 e \in E^*, 使得 v 是 e 的一個端點, 則稱 E^* 爲 G 的一個邊覆蓋集, 簡稱邊覆蓋(edge cover)
  • E^* 是圖 G 的邊覆蓋, 且 E^* 的任何真子集都不再是邊覆蓋, 則稱E 爲一個極小邊覆蓋(minimaledge cover)
  • 如果圖 G 的邊覆蓋 E^* 滿足對於 G 的任何邊覆蓋 E ’ 都有 |E^*\leqslant |E ’|, 則稱 E^* 是 G 的一個最小邊覆蓋(minimum edge cover)
  • 最小邊覆蓋E^* 的元素數稱作圖 G 的邊覆蓋數(edge covering number) , 記作 \rho (G)。例子如下
 

性質

(a) 顯然有孤立頂點的簡單圖不存在邊覆蓋
(b) 極小邊覆蓋 E^* 中任何一條邊的兩個端點不可能都與 E^* 中其他邊相關聯
(c) 明顯有 \rho (G) \geqslant | V | / 2
(d) 一個圖中的極小邊覆蓋可能是不唯一的
(e) 一個圖中的最小邊覆蓋可能是不唯一的
(f) 每個最小邊覆蓋都是極小邊覆蓋, 但不是每個極小邊覆蓋都是最小邊覆蓋

                                                

定理
設 G(V, E) 是沒有孤立頂點的簡單圖,M 爲 G 的一個匹配, N 爲 G 的一個邊覆蓋, 則 |N| \geqslant\rho (G) \geqslant |V|/2 \geqslant v (G) \geqslant |M| ;
且當等號成立時, M 爲 G 的一個完美匹配, N 爲 G 的一個最小邊覆蓋。

定理
設 G(V, E) 是沒有孤立頂點的簡單圖則有:

設 M 爲 G 的一個最大匹配, 對 G 中每一個M-非飽和頂點均取一條與其關聯的邊, 組成集合 N,
則 M∪N 構成 G 的一個最小邊覆蓋。

                                                                        

定理
設 G(V, E) 是沒有孤立頂點的簡單圖則有:

  • 設 M 爲 G 的一個最大匹配, 對 G 中每一個M-非飽和頂點均取一條與其關聯的邊,組成集合 N, 則 M∪N 構成 G 的一個最小邊覆蓋。
  • 設 N 爲 G 的一個最小邊覆蓋, 若 N 存在相鄰的邊則移去其中一條, 直至不存在相鄰的邊爲止, 構成的邊集合 M 則爲 G 的一個最大匹配
  •                                                               

定理

設 G(V, E) 是沒有孤立頂點的簡單圖則有

  • 設 M 爲 G 的一個最大匹配, 對 G 中每一個M-非飽和頂點均取一條與其關聯的邊,組成集合 N, 則 M∪N 構成 G 的一個最小邊覆蓋
  • 設 N 爲 G 的一個最小邊覆蓋, 若 N 存在相鄰的邊則移去其中一條, 直至不存在相鄰的邊爲止, 構成的邊集合 M 則爲 G 的一個最大匹配
  • \rho (G) + v (G) = |V |
  •                                                           

1.6  柯尼希-艾蓋爾瓦里定理 Kö nig-Egervá ry Theorem

定理1
假設 K 爲沒有孤立頂點的簡單圖 G 的任意一個點覆蓋集, M 爲 G 的任意一個匹配, 則 |M| \leqslant |K|。特別是 v (G) \leqslant \beta (G)

推論
假設 K 爲沒有孤立頂點的簡單圖 G 的任意一個點覆蓋集, M 爲 G 的任意一個匹配, 若 |M|=|K|,則 M 是一個最大匹配, K 是一個最小覆蓋。

證明:  由 |M| \leqslant v (G) \leqslant\beta (G) \leqslant |K| 即得

定理2(柯尼希-艾蓋爾瓦里定理, KönigEgerváry theorem)
二部圖中最大匹配的邊數等於最小點覆蓋數的頂點數。(證明略)
 

柯尼希-艾蓋爾瓦里定理還可以從另一個角度來描述:

  • 所謂布爾矩陣的覆蓋, 是指選擇了矩陣中某些行與列, 這些行與列包含了矩陣中的所有非零元“1”。 稱能覆蓋全部非零元的最少行、 列數之和爲最小覆蓋數,記爲 S
  • 對於任一個 mxn 布爾矩陣中, 如果蓋住了全部 m 行或全部 n 列, 就會蓋住全部非零元。 因此顯然有 S≤min(m, n)
     
  • 容易看出, 每個布爾矩陣都可以看爲二部圖的矩陣形式, 而每個覆蓋都對應於二部圖中的一個點覆蓋。
  • 定義mxn布爾矩陣的(term rank) 爲矩陣中不在同行同列的1元素的最大個數,易見它的秩小於min(m, n), 而且二部圖的矩陣形式的秩就是最大匹配數
  • 則定理2也可以等價表述爲:布爾矩陣的秩等於其最小覆蓋數
     

由是, 如果將布爾矩陣和二部圖(的矩陣形式) 視爲等同, 則二部圖的最大匹配數、 二部圖的點覆蓋數、 布爾矩陣的秩、 布爾矩陣的最小覆蓋數 4 者相等。
 

1.7  二部圖中的最佳匹配  Optimal Matching of Bipartite Graph

  • 最大匹配、 霍爾定理都是在邊權值爲1(或者說是邊無權值) 的情況下的匹配問題, 但在實際應用問題中——
  • 不同的人從事不同工作時可能具有各不相同的效益或者成本, 於是在人員工作安排時,不僅要求每個人有工作可做, 而且還進一步要求總的工作效益最高或者成本最小
  • 此時人員和工作可以形成一個二部圖, 而效益或者代價可以作爲邊的權值, 之後尋找權值總和最大或最小的最大匹配。

 

二、流網絡

2.1 引言

引例:

一個地區的供水管線圖:

  • 邊表示水管, 權重是水管的容量上限
  • 有向邊表示僅允許單向流動
  • 頂點是水管的接合點
  • 只有一個水源——自來水廠(頂點1)
  • 只有一個最終的終點——終極用戶(頂點7)
  • 水流流動時不能超過各條管線的容量限制。
一個地區的各條主幹道
  • 只有一個入口(頂點1)
  • 一個出口(頂點6)
  • 邊表示單行線
  • 每條單行線都有各自的最大吞吐量
  • 希望計算單位時間內從此地區可以通過的最大可能車輛數

上述這一類問題都可以用一個統一的模型來描述:
假設 G = ( V, E ) 是一個連通無重邊且不包含自環的有向圖。 如果 G 中
(1) 只有一個入度爲0的頂點, 記之作 s, 稱作(sourse)
(2) 只有一個出度爲0的頂點, 記之作 t, 稱作(sink)
(3) 每條有向邊 e = ( u, v ) 都存在一個非負的權值 cuv,稱作邊的容量(capacity)

則稱 G 是一個網絡(network) 或流網絡(flow network) , 也記作 G = ( V, E, s, t, c )

有向邊也稱作(arcs) , 邊 e=(u,v) 通常也記作 uv

  • 事實上如果有重邊的話, 將所有重邊的容量求和作爲其中一條邊的總容量並刪除其他重邊, 可以得到等價的網絡圖
  • 自環的存在與否不影響問題的分析和求解, 爲簡潔起見要求圖不存在自環。
  • 在實際應用中, 有時需要考慮點的權重(例如中轉站的容量上限) , 假設該頂點的容量爲w, 可以通過如圖方式修改

                                                 

當網絡中出現多個源和匯的時候:

有時網絡 N 中可能有多個源和多個匯, 可以通過下述方式將網絡 N 擴大爲 N’, 將問題轉化爲單個源和單個匯的網絡 N’ 中的最大流問題:

  • 增加兩個新的頂點 s 和 t
  • 添加 s 到每個源的有向邊
  • 添加每個匯到 t 的有向邊
  • 並且將足夠大的容量 c0 賦予這些新加的有向邊(通常取 c0 大於每個源發出邊容量之和即可)
  • 分別稱 s 和 t 爲超源(super-source)和 超匯(super-sink)

下面來看一個例子

從城市A到城市C可以直達也可以途徑城市B。在下午18時到19時晚高峯期間平均行駛時間是: A到B需要15分鐘、 B到C需要
30分鐘、 A到C需要30分鐘。而路的最大容量是: A到B的容量是1000 輛、 B到C容量是1500輛、 A到C容量是 2000 輛。
 

根據上述描述,並且同時如果在 t1 時刻離開城市 X 並在 t2 時刻到達城市 Y, 則在“X, t1”向“Y, t2”引一條邊,邊的權值是路的容量。其建立的流網絡模型如下所示:

引入一個超源和一個超匯

下面我們定義前驅後繼

假設網絡 G = ( V, E, s, t, c )  對於頂點 v \in V, 定義 v 的前驅(predecessor)爲 pred(v) = { u | (u, v) \in E }, 定義 v 的後繼
(successor) 爲 succ(v) = { u | (v, u) \in E }

                                                  

接下來,我們將各個水管中流動的水量抽象爲一個函數 f 。

若實值函數 f : E → R 滿足:
(1) 容 量 限 制 (capacity constraint ) : 對 所 有 e = (u, v) \in E, 有 f_{uv} = f (e) \leqslant c_{uv}


(2) 流量守恆(flow conservation) :對所有頂點 v \in V - { s, t },  \sum_{u\in pred(v)}f_{uv} = \sum _{u \in succ(v)}f_{vu}

  • 則稱它是網絡的一個容許流分佈, 或簡稱爲一個(flow)
  • f_{uv} 稱作邊 (u, v) 上的流量
  • 如果邊 e = (u, v) 滿足 f_{uv} = c_{uv}, 則稱 e 爲飽和邊

如下是兩個流。

  • 對所有頂點 v \in V - {s},定義  f(\bullet ,v) = \sum _{u \in pred(v)} f_{uv}  稱作頂點v的總流入量
  • 對所有頂點 v \in V - {t},定義  f(u, \bullet) = \sum _{u \in succ(u)} f_{uv}  稱作頂點u的總流出量
  • 流量守恆表明流在除了源和匯的各個頂點, 總流入量等於總流出量, 即既不產生也不消

下面我們定義流量,和最大流

  • 設 f 是網絡圖 G 的一個流,f(s, \bullet ) 稱作流 f 的流量或者值(value) , 即源 s 的總流出量, 記作 | f | 。
  • 若 G 任意一個流 f ’ 都滿足 | f | \geqslant | f ’|,則稱 f 是 G 的一個最大流(maximumflow)。
  • 一般而言,網絡的最大流是不唯一的。

                                               

2.2  剩餘圖和可增廣道路 Residual Graph and Augment Path

假設網絡 G=(V, E, s, t, c) 中有流 f , 則可如下定義 G 關於 f 的剩餘圖(residual graph) 爲
G_f = (V, E_f , s, t, c’):

(1) G_f 的頂點集與 G 的頂點集相同;
(2) G_f 的邊集合 E_f 有兩類:
         { (u, v) | f_{uv} < c_{uv}} 稱之爲前向邊(forward edge)
         { (u, v) | f_{vu} > 0 }稱之爲後向邊(backward edge)
E_f = { (u, v) | f_{uv} < c_{uv}f_{vu} > 0 };
(3) 容量 c_{uv}' = \begin{Bmatrix} c_{uv} - f_{uv} & ,if \; f_{uv} < c_{uv} \\ f_{vu} &,if \; f_{vu} > 0 \end{Bmatrix}

注:不同的流 f 對應不同的剩餘圖
 

例子如下

假設網絡 G = (V, E, s, t, c) 中有流 f,G 關於 f 的剩餘圖中的簡單 s-t 道路 P 稱作可增廣道路(augment path) ,
定義 bottleneck ( P, f ) 爲 P 所經過各邊的最小容量。
                                              

 可以由增廣道路 P 構造 G 的一個新的流 :

                                        

  • 可以驗證 f ’ 滿足容量條件和守恆條件
  • | f ’| = | f | + bottleneck ( P, f ) > | f |, 流的流量得以提升

2.3  最大流最小割定理  Max-flow Min-cut Theorem

首先,我們來定義割,

在網絡 G=(V, E, s, t, c) 中, 任何一個滿足 s \in S, t \in T=V - S 的頂點 V 的劃分 {S, T} 稱作一個 s-t 割(s-t cut) , 簡稱(cut)
 

一個 s-t 割的容量(capacity) 定義爲  \sum _{u \in S, v\in T, (u,v) \in E } c_{uv} ,記爲 cap(S, T)

如果圖 G 的 s-t 割 (S, T ) 使得任意一個 G 的 s-t 割 (S’, T ’) 都有 cap( S, T ) \leqslant cap(S’, T ’),則稱 ( S, T ) 是圖 G 的一個最小s-t割, 簡稱最小割(minimum cut)

一般而言, 網絡的最小 s-t 割不唯一。

                                               

下面建立流與割之間的關係, 首先引入一些符號的定義。在網絡 G=(V, E, s, t, c) 中, 假設 A, B 都是 V 的非空子集, 定義
                                               

定理 1
假設 G=(V, E, s, t, c) 是一個網絡, 令 f 是一個流, (S, T) 是一個 s-t 割,則通過該割的流量等於由源 s 發出的流量。 即 f(S, T) - f(T, S) = | f | 。 特別地有 f (\bullet, t)=| f | 。(證明略)

定理 2
設 G 是一個網絡, 令 f 是 G 的一個流,( S, T ) 是 G 的一個 s-t 割, 則| f | \leqslant cap( S, T )

推論
設 G 是一個網絡, f 是一個流, ( S, T ) 是一個 s-t 割,則若 | f | = cap( S, T ), 則 f 是一個最大流且 ( S, T ) 是一個最小 s-t 割

福特和福爾克森(Ford-Fulkerson) 1956年得到了可增廣道路定理最大流最小割定理(max-flow min-cut theorem)

定理3
假設 f 是網絡 G=(V, E, s, t, c) 的一個流,
則以下陳述等價:
(a) f 是一個最大流
(b) 當前 f 的剩餘圖中不存在可增廣道路
(c) 存在 G 的一個 s-t 割 (S, T) 使得 | f | = cap( S, T )

由(a)和(b)的等價性可以給出最大流的構造算法——福特-福爾克森最大流算法(Ford-Fulkerson, 1956),算法實例如下:
 

最小割

如果各邊的容量都是整數, 則每次 “f\leftarrow f'” 的更新都使得流的值至少增加1, 因此算法至多在 \sum _{v\in succ(s)}c_{sv} 次後結束
 

2.4 網絡最大流的應用 Applications of Maximum Flow

可以將二部圖的匹配問題化爲網絡流圖

1. 將原圖的所有無向邊改爲有向邊, 由 X 中頂點指向 Y 中頂點;
2. 添加一個超源頂點 s 和一個超匯頂點 t ;
3. 添加 s 到 X 中每個頂點的有向邊, 添加 Y 中每個頂點到 t 的有向邊;
4. 所有有向邊的容量都設置爲1。所得的圖稱作匹配網絡(matching nerwork)

定理
(a) 可以由匹配網絡的一個流給出 G 的一個匹配, 其中頂點 x \in X 和 y \in Y 相匹配當且僅當邊 (x, y) 上的流量是 1
(b) 一個最大流對應於一個最大匹配
(c) 一個值爲 | X | 的流對應於一個飽和 X中每個結點的匹配

舞伴問題(dancing problem, k-正則二部圖的完美匹配) :

一次舞會有 n 個男孩和 n 個女孩, 每名男孩恰好認識 k 名女孩, 每名女孩也恰好認識 k 名男孩(1  k  n) , 是否可以安排得當, 使得每人的舞伴都是自己認識的? 也即是否存在k-正則二部圖的完美匹配?
 

 



可以證明它是一個值爲 n 的最大流——這就證明
了完美匹配的存在性
 

設 G=(V, E) 是一個有向連通圖, s 和 t 是圖中兩個給定的不同頂點。 在圖中從頂點 s 到頂點 t 的沒有公共邊的初級道路稱爲邊不相交的道路(edge-disjoint paths)
                                                        

由於要求找到從 s 到 t 的初級道路, 因此可以忽略指向 s 的有向邊和由 t 發出的有向邊、 忽略不是 s 或 t 但入度爲0或出度爲0的頂點,故而可以假定圖中只有一個入度爲0的頂點 s、 只有一個出度爲0的頂點 t, 並給每條有向邊都賦以權值1, 於是形成一個網絡。其中最大流的值就是 s 到 t 的邊不相交道路的最大數目

如果 E’ \subseteq E, 且滿足每條從 s 到 t 的初級道路都必然包含 E’ 中的邊, 則稱 E’ 是 G 的 st-分離集 (st-disconnectigng set)
                                                        

其中最大流的值就是 s 到 t 的邊不相交道路的最大數目, 而最小割的容量,則是st-分離集的最少有向邊數
由最大流最小割定理即得到門格定理(Menger, 1927) :

定理
有向圖 D 中的從頂點 s 到頂點 t 的邊不相交有向道路的最大數目等於st-分離集的最少有向邊數
                                                      

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章