轉自:http://blog.sina.com.cn/s/blog_51cea4040100h152.html
***********************************************************************************************
證明一:
首先,我們要抓住二分圖最大匹配后圖的特點,此時,不存在增廣路。如下圖所示,該圖為不完整的最大匹配后的二分圖:
紅點為匹配點,藍點為未匹配點。
對於一個點而言,他所連接的點有這三種情況:
1、只連接了紅點;
2、只連接了藍點;
3、連接了紅點和藍點。
在上面的圖中,x與y是所連接的邊是匹配邊。x連接了紅點和藍點,這個時候,y所連接的點一定沒有藍點,如果有,就是一條新的增廣路,那么該圖就不是最大匹配圖了。
另一天更明顯,就是在最大匹配圖中 不會出現一條邊同時連接着兩個藍點。
那么,對於一條邊而言,只有兩種情況:
1、兩端的點是紅點;
2、兩端的點一點是紅色,一點是藍色。
可知,一條邊上,一定有紅點,那么,我們就選擇紅點作為覆蓋點。
對於上面的匹配邊xy,我們無論是選擇x還是y都可以覆蓋xy這條邊,但是對於圖中的藍點而言,只能選擇x作為覆蓋點去覆蓋那條邊,這樣,我們就選擇x作為覆蓋點,它所覆蓋的邊中,既包括了與他相連的那些藍點的邊,也包括了xy這條匹配邊。因為y點沒有藍色連接點,所以,y不是必須選擇的覆蓋點,它與那些紅點相連的邊都可以選擇那些紅點來覆蓋邊。所以,對於一條匹配邊而言,我們只需要選擇其中一個點就可以覆蓋完整個二分圖里的邊了。
所以最小覆蓋點數等於最大匹配。
**************************************************************************************************
證明二:
這是Matrix67的證明,ccy用自己的語言寫一下,O(∩_∩)O~~~~~~~~~~~~
Matrix67證明的鏈接:http://www.matrix67.com/blog/?s=%E6%9C%80%E5%B0%8F%E8%A6%86%E7%9B%96%E7%82%B9
對於一個已經匹配好的二分圖,我們進行如下操作,就可以找出一些點,使之覆蓋所有的邊。
規則如下:對於Y部所有未被匹配的點,我們就從它出發,找“交錯軌”,這里的“交錯軌”和匹配時的交錯軌很相似,他們一樣的地方都是從一個未被匹配的點出發,按着顏色交替搜下去,他們不同的是,匹配的交錯軌最終要在另一個部里找到一個未匹配的點,這里的“交錯軌”,沒有辦法找到未被匹配的點,我們就一直搜下去,知道搜不動,既搜到以前又搜過的。把搜這條“交錯軌”所經過的點我們都做上標記。最后,覆蓋點就是X部被標記了的點和Y部沒有標記的點。
如圖所示:
從Y部的未被匹配的點出發,順着藍色線所標記的路,經過的點都做上標記,最后,選取X部做了標記的點和Y部沒有做標記的點,既圖中的藍點。
從圖中,直接看出,通過這種方法可以選取最大匹配數量的點覆蓋完了所有的邊。
首先我們要明白按這種方法標記的特點:
1、出發的第一條邊是灰色,結束的邊是黑色;
2、X的被標記的點是從Y到X走灰邊;
3、Y被標記的點是未匹配的點或者從X到Y是黑色的邊的點。
我們看X部,它的點,有3種情況:
1、只有一條黑邊;
2、只有灰邊;
3、黑邊灰邊都有。
情況1只有一條黑邊的點不可能被標記,由標記特點2可知。
情況2只有灰邊的點不可能被標記到。如果被標記,那么這條邊就是結束邊,而“交錯軌”的結束邊是黑色,由特點1知。
情況3黑邊灰邊都有,這樣的X點可能被標記,因為它有進有出。
如果我們把X部標記了的點去掉后,只可能有下面三種情況:
第一種:
這個時候,只剩情況1、2的X部點,他們所連接的Y部點都是沒有被標記的,最后,我們選擇Y部點作為覆蓋點時,整個圖的邊就覆蓋完了。
第二種:
雖然上圖有X點同時連接着灰邊和黑邊,但是,選擇上圖的兩個藍點后,就可以把所有的邊覆蓋完。
第三種:
第一種和第二種的綜合版
這個,純屬搞笑,O(∩_∩)O~。
好了,這樣我們證明了通過這種方法選擇的點一定可以覆蓋完所有邊。
下面,還需要證明,這樣的覆蓋點等於最大匹配數。
對於每條匹配邊而言,它都有X部和Y部的匹配點。我們通過標記后,對於走過的匹配邊而言,我們選擇的是X部的點,對於走過的匹配邊而言,我們選擇的是Y部的點,所以加起來就是匹配數。
那么,這就一定是最小覆蓋點數嗎?
答案是顯而易見的,因為,每條匹配邊之間都是獨立的,沒有重合的X部點或者Y部點,所以,只對於匹配邊而言,每條匹配邊都需要一個覆蓋點,才能覆蓋這條邊。
所以,最小覆蓋點數等於最大匹配數。