組合數學(1)——二分圖

0. 前言

又到了上課的時間,組合數學的書是《組合理論及其應用》,這次從二分圖(第六章)開始講起。這本書的二分圖是從幾何的角度進行講述。這裏有個題外話,組合數學的前序課程應該是《離散數學》,主要包括數理邏輯、集合論、代數和圖論四個部分。

1. 相異代表系

1.1 定義

相異代表系是針對幾何來講的,這裏主要抓住“相異”、“代表”、“系”三個部分來進行區分,首先是系表明是一個集合,代表則是集合內每一個元素代表着一個子集(即該元素來源於這個子集),相異表明其元素各不相同。下面給出其形式化定義:
在這裏插入圖片描述
例如:A1={1,4},A2={1,2,3},A3={3,4,5},A4={3,4,5},A_1=\{1,4\},A_2=\{1,2,3\},A_3=\{3,4,5\},A_4=\{3,4,5\},其一個代表系可以是:{1,1,3,3}(有元素相同),而一個相異代表系則可以是:{1,2,3,4}(每個元素都來自不同的子集,都不相同)。

1.2 集族有相異代表系的條件

非空集合構成的集族一定有代表系,但不一定有相異代表系。那麼什麼時候集族有相異代表系呢?1935年的何氏定理告訴了我們的充要條件。
在這裏插入圖片描述
這定義比較拗口,其大致意思就是若有n個子集,從中任意選取k個子集,其並集的元素個數≥k。這裏有一個疑問,這定理有啥用啊,相異代表繫好像僅僅是爲了存在而存在啊?這個疑問我們先放一放,因爲這個問題我們後面解釋。

既然是數學,那麼給出一個定理時,一個必要的操作就是要證明它。這是一個充要條件。必要性是必然的,因爲互不相同的k個元素的並集一定是大於等於k的,下面主要證明充分性。

這裏又有一個題外話:數學的證明方法有哪些?
需要證明和整數n有關,且n爲無窮時,使用數學歸納法;
需要證明和整數n有關,且n是有限的,使用枚舉法(分類討論、分析法)
直接證明、間接證明都不太容易時,使用反證法。
如果要考慮最值、條件時,使用構造法。

這裏使用數學歸納法進行證明:
當m=1時,A11|A_1|\ge1成立。
當m<n時,假設滿足條件。
當m=n時,這裏再使用分類討論方法進行證明。
(1)對任意1kn11\le k\le n-1,任意選擇1i1i2i3...ikn1 \le i_1 \le i_2 \le i_3\le ... \le i_k \le n,滿足條件i=1kAik+1|\bigcup_{i=1}^{k} A_i|\ge k+1(這個條件比定理上的要求更嚴格)此時,取enAne_n \in A_n,使得i=1kAi{en}k|\bigcup_{i=1}^{k} A_i-\{e_n\}|\ge k
e1,e2,...,en1e_1,e_2,...,e_{n-1}就是其(Ai{en}A_i-\{e_n\})相異代表系,從而使得e1,e2,...,en1,ene_1,e_2,...,e_{n-1},e_n是其{A1,A2,...,An}\{A_1,A_2,...,A_n\}的相異代表系。

以上只是比較好證明的一部分,下面證明剩餘的部分:

(2)對存在1pn11\le p\le n-1,存在某種選擇1i1i2i3...ipn1 \le i_1 \le i_2 \le i_3\le ... \le i_p\le n,使得A1A2...Ap=p|A_1\cup A_2\cup ...\cup A_p|=p,符合假設條件,有相異代表系F={e1,e2,...,ep}F=\{e_1,e_2,...,e_p\}(到這裏都是在找一個前提條件)。

現在考慮剩餘的n-p個集合構成的集族{Ap+1F,Ap+2F,...,Ap+nF}\{A_{p+1}-F, A_{p+2}-F,...,A_{p+n}-F\},對於任意1knp1\le k\le n-p
(Aj1F)(Aj2F)...(AjkF)|(A_{j1}-F)\cup(A_{j2}-F)\cup ... \cup(A_{jk}-F)|
=(Aj1Aj2...Ajk)F=|(A_{j1}\cup A_{j2}\cup ... \cup A_{jk})-F|
=(A1A2...ApAj1Aj2...Ajk)F=|(A_{1}\cup A_{2}\cup ... \cup A_{p}\cup A_{j1}\cup A_{j2}\cup ... \cup A_{jk})-F|
(p+k)p=k\ge(p+k)-p=k
滿足定理原始條件,即{Ap+1F,Ap+2F,...,Ap+nF}\{A_{p+1}-F, A_{p+2}-F,...,A_{p+n}-F\}有相異代表系{ep+1,ep+2,...,en}\{e_{p+1},e_{p+2},...,e_{n}\},因此結合前提條件,就可以獲得存在相異代表系{e1,e2,...,en}\{e_1,e_2,...,e_n\}

綜上(1)(2)證畢。

1.3 集族的子集存在相異代表系

如果集合E沒有相異代表系,則最多可以有多少r元子集有相異代表系?下面這個定理告訴我們:
在這裏插入圖片描述
還是需要證明:
1knr1 \le k \le n-r時,等式右邊是負數,不等式自動滿足。

這裏證明分爲兩步走,首先令F={f1,f2,...,fnr}F=\{ f_1,f_2,...,f_{n-r}\},且F(A1A2...An)=F\cap (A_1 \cup A_2\cup ... \cup A_n)=\varnothing
先證明(1):{A_1,A_2,…,A_n}的r 元子集有相異代表系,當且僅當{A1FA2F,...,AnF}\{A_1 \cup F,A_2\cup F, ... ,A_n \cup F \}有相異代表系。

先證明充分性。假設集族有r元子集相異代表係爲e1,e2,...,er{e_1,e_2,...,e_r},顯然e1,e2,...,er,f1,f2,...,fnr{e_1,e_2,...,e_r,f_1,f_2,...,f_{n-r}}就是{A1FA2F,...,AnF}\{A_1 \cup F,A_2\cup F, ... ,A_n \cup F \}的相異代表系。

再證明必要性。假設{A1FA2F,...,AnF}\{A_1 \cup F,A_2\cup F, ... ,A_n \cup F \}有相異代表系x1,x2,...,xnx_1,x_2,...,x_n,因爲F中只有n-r個元素,所以x1,x2,...,xnx_1,x_2,...,x_n中至少有r個元素不在F中,因此x1,x2,...,xrx_1,x_2,...,x_r{A1A2,...,An}\{A_1,A_2, ... ,A_n \}的一個相異代表系。

然後證明(2):定理6.1.2。

根據定理6.1.1,{A1FA2F,...,AnF}\{A_1 \cup F,A_2\cup F, ... ,A_n \cup F \}有相異代表系,且
(A1F)(A2F)...(AkF)k|(A_1 \cup F) \cup (A_2 \cup F) \cup ... \cup(A_k \cup F)|\ge k
從而
(A1F)(A2F)...(AkF)|(A_1 \cup F) \cup (A_2 \cup F) \cup ... \cup(A_k \cup F)|
=A1A2...AkF=|A_1 \cup A_2 \cup ... \cup A_k \cup F |
=A1A2...Ak+F=|A_1 \cup A_2 \cup ... \cup A_k|+ | F |
從而
=A1A2...Akk(nr)=|A_1 \cup A_2 \cup ... \cup A_k|\ge k-(n-r)
也就是
=A1A2...Ak+(nkr=|A_1 \cup A_2 \cup ... \cup A_k|+(n-k)\ge r

因此,可以有以下推論:
在這裏插入圖片描述
這個意思就是說,要使得選取的集合數最多,而其並集的個數最小。

2. 二分圖

2.1 二分圖的定義

如果一個圖的節點的集合V可以分爲2個部分,分別是X和Y,且V=XY,XY=V=X \cup Y, X \cap Y=\empty,且其邊均爲[x,y]其中xX,yYx \in X, y \in Y,則該圖爲二分圖。也就是說該圖的節點兩個部分,所有的邊都在這兩個部分之間,各部分之內沒有邊,如圖所示:
在這裏插入圖片描述
這是一個非常特殊的圖結構,具有很多特性。等等,既然二分圖的定義這麼簡單,那爲啥第一章還要介紹相異代表系呢?

2.2 二分圖的匹配

上圖的一個用處就是描述“婚姻匹配”問題,(左邊都是女生,右邊都是男生,畢竟女生比男生少嘛),那這樣就是否存在一個匹配,使得女生都有歸宿。如果存在這樣一個匹配,就可以使用相異代表系表示。例如上圖可以表示爲集族:A1={y1,y2},A2={y1,y3},A3={y2,y3,y4},A4={y4,y5}A_1=\{y_1, y_2 \},A_2=\{y_1, y_3 \},A_3=\{y_2, y_3, y_4 \},A_4=\{y_4, y_5 \},則{[1,y1],[2,y3],[3,y4],[4,y5]}\{[1,y_1],[2,y_3],[3,y_4],[4,y_5]\}沒有公共節點,因此是該圖的一個匹配。(也是其集族的相異代表系)。

因此這個二分圖和相異代表系的關係如下:
在這裏插入圖片描述

2.3 二分圖的覆蓋

剛纔是從邊出發,給定結點的約束條件,從而形成匹配的概念。與之相反的,二分圖的覆蓋則從點出發,給定邊的約束條件:
如果結點集合SXY\subseteq X \cup Y,使得邊集合\triangle每條邊至少有一個結點在其中,則稱S爲\triangle的一個覆蓋。
例如,上圖中{1,23,4}{3,4y1y2y3}\{1,2,3,4\},\{3,4,y_1,y_2,y_3\}都是\triangle的覆蓋

2.4 匹配與覆蓋的關係

就像上面的兩個定義一樣,一個是從邊給出約束條件(匹配),一個是從結點給出約束條件(覆蓋),但是都是對於一張二分圖的描述,那麼這兩個之間存在什麼關係呢?

我們拍腦袋想嘛,應該是匹配的邊的數量一般會小於覆蓋的節點數(因爲這是簡單圖,一個邊只能有2個節點,但是節點可以有多個邊),而且,匹配的邊一般是二分圖的邊的子集,而覆蓋的結點多半會有重複的,也就是存在冗餘。

因此,如果以匹配的最大邊數爲匹配數,以覆蓋的最小節點數爲覆蓋數,則其兩者相等。
在這裏插入圖片描述
數學就是,來一個定理,就要給出證明。這是個兩個數相等的證明,一般證明使用“夾逼”方法。

1)αβ首先證明匹配數\alpha \le覆蓋數\beta
設M是二分圖的最大匹配,S爲二分圖的最小覆蓋。由於M中沒有兩邊存在公共節點,並且M中的α\alpha條邊每邊至少有一個結點在S中,所以αβ\alpha \le \beta。後半句容易理解,因爲每條邊至少會有一個節點在S中,否則S就不是覆蓋了。而前半句旨在說明α\alpha是不重不漏計數的,因此後半句才能夠成立。

2)αβ接着證明匹配數\alpha \ge覆蓋數\beta
由第一節中相異代表系最大子集數推論(6.1.1)可知,一定存在整數k,選擇i1,i2,...,iki_1,i_2,...,i_k使得Ai1Ai2...Aik+(nk)=α|A_{i1}\cup A_{i2}\cup ...\cup A_{ik}|+(n-k)=\alpha

然後,考慮證明T=(Ai1Ai2...Aik)(X{i1,i2,...,ik})T=(A_{i1}\cup A_{i2}\cup ...\cup A_{ik}) \cup (X-\{i_1,i_2,...,i_k\})爲覆蓋即可。可從兩個方面考慮,任取一條邊[x,y].
一、當x{i1,i2,...,ik}x \in \{i_1,i_2,...,i_k\}時,存在一個點x=ilx=i_l,使得yAily\in A_{il},從而yTy\in T.
二、當xX{i1,i2,...,ik}x \in X-\{i_1,i_2,...,i_k\}時,則xTx\in T

這樣[x,y]都在T中,又因爲
T=Ai1Ai2...Aik+X{i1,i2,...,ik}|T|=|A_{i1}\cup A_{i2}\cup ...\cup A_{ik}|+|X-\{i_1,i_2,...,i_k\}|
=Ai1Ai2...Aik+(nk)=α=|A_{i1}\cup A_{i2}\cup ...\cup A_{ik}|+(n-k)=\alpha
因此T是具有α\alpha個節點的覆蓋,而β\beta是最小覆蓋,因此αβ\alpha \ge \beta

綜上所述α=β\alpha=\beta

3. 二分圖的匹配算法

蓋飯算法是來判斷一個二分圖的匹配M是否是最大匹配。如果不是,如何修改M得到更多的匹配,依此循環從而獲得最大匹配。

3.1交錯鏈

由於交錯鏈有一個特性即在關於M的交錯鏈中,不在M中的邊數比在M中的邊數多1,因此當我們反轉其邊時,就可以獲得更多的邊了。

首先給出基本鏈的定義:
在這裏插入圖片描述
基本鏈有一些性質:
若n爲偶數,則基本鏈的邊數爲偶數,此時頭結點u0u_0和尾結點unu_n同屬於X或同屬於Y
若n爲奇數,則基本鏈的邊數爲奇數,此時頭結點u0u_0和尾結點unu_n分別屬於X和Y。

正是有這樣的特殊性質,纔有了交錯鏈的存在:
在這裏插入圖片描述
例如:在這裏插入圖片描述
經過這一次變換,就增加了一條邊在M中,現在有4條邊了。但是有5個節點,因此接下來,還可以再試一把。
在這裏插入圖片描述
有了交錯鏈就可以找到最大匹配了。
在這裏插入圖片描述
有了定理,本來是該高興的事,但是有定理就要證明。

首先證明必要性,即若M是具有最大邊數的匹配,則不存在關於M的交錯鏈(==>)。
在這裏插入圖片描述
如圖所示,假設存在r是M的一個交錯鏈,則N0=M0+1|N_0|=|M_0|+1,令M=(MM0)N0M'=(M-M_0)\cup N_0,由於N0N_0(MM0)(M-M_0)都是而二分圖的一個匹配,如果MM0M-M_0N0N_0沒有公共節點,那麼MM'就是比MM多1條邊的匹配。

下面證明MM0M-M_0N0N_0沒有公共節點,設[x,y]N0[x,y] \in N_0

1)若[x,y][x,y]是首邊(或尾邊),如圖所示,x不在MM中,y在M中,因此y不在MM0M-M_0中,因此[x,y][x,y]不在MM0M-M_0中。
在這裏插入圖片描述
2)若[x,y]是中邊,則x,y都在M0M_0,顯然不在MM0M-M_0中。
在這裏插入圖片描述
綜上所述,MM0M-M_0N0N_0沒有公共節點,因此MM'就是比MM多1條邊的匹配,與原條件不符,反證結束。

然後證明充分性,如圖所示,在交錯鏈中,紅色的比藍色的多一條邊。在這裏插入圖片描述
在這裏插入圖片描述

3.2 尋找最大匹配算法

有了上面這條定理,我們就可以實現以下尋找最大匹配的算法了。
在這裏插入圖片描述
這裏我們先給出例子,然後再給出第一步結束的證明。

在這裏插入圖片描述
通過第一步,就可以找到這條紅藍相間的交錯鏈,此時是到第二步停止。我們使用紅色代替藍色,將紅色置爲粗體(在M中),藍色變回正常(不在M中),從而得到新的匹配。
在這裏插入圖片描述
再在M中再執行一次算法,可以得到紅藍邊數相等,此時已經無法繼續增加匹配中邊的數量了,因此此時算法結束,MM'爲最大匹配。
在這裏插入圖片描述
雖然我們從直觀上可以發現並不能繼續增加更多的邊了,但是數學上,要講究證明,即證明定理6.3.2。
在這裏插入圖片描述
該定理就是要證明,若S是覆蓋,且S=M|S|=|M|,則M是最大匹配。
在這裏插入圖片描述
這裏面說的比較拗口,因爲是完全從具體說法上的解釋。在證明第一個時,其反證法主要證明若e=[x,y]e=[x,y]不在S中,以兩種情況考慮即eMe \in MeMe \notin M;證明第二個則以x和y兩個角度考慮。其核心是在算法的過程中體現出來的。

3.3 判斷一個圖是否爲二分圖

這裏增加一個題目,就是如何判斷一個圖是二分圖?

當然無腦想法就是暴力解決,按照循環去遍歷不同的劃分使得該圖可以成爲兩部分,再判斷兩部分內部是否有無相連的邊。

但是這樣時間複雜度上至少是On3O(n^3)。如果能先進行一次劃分,再去判斷多好?根據二分圖的性質,在圖中,任意選取一點,將其與其連接的點按照邊數長度奇偶劃分成兩部分,再判斷這兩部分是否內部有相連即可,此時可以減少至O(n2)O(n^2)。當然,也可以使用廣度優先算法[代碼]進行黑白着色,從而判斷一個圖是否是二分圖(時間複雜度也是On2O(n^2))。

當然也可以從,若一個圖不存在奇數環,則該圖是二分圖入手,證明一個圖不存在奇數環即可,這個等價定理還需要證明才能夠實現。

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