圖論知識記錄

來源:互聯網
上載者:User

標籤:...   依次   一個   node   匈牙利演算法   等價   這不   演算法   匈牙利   

二分圖相關 二分圖,兩個等價定義:沒有奇環的圖 / 可以黑白染色的圖

證明:

充分性證明:如果一張圖沒有奇環,那麼它可以黑白染色

考慮反證,如果它不能黑白染色,那麼存在奇環

一定存在一條邊\((u, v)\),使得\(u, v\)同時為白色

\((u, v)\)一定在環中,如果不在,考慮\(dfs\)構造,那麼\((u, v)\)不可能是同一顏色

如果\((u, v)\)所在環是一個偶環,那麼取反\(u\)後,原圖合法,不符合無法染色的條件

因此,\((u, v)\)所在環一定是一個奇環

必要性證明:如果一張圖可以黑白染色,那麼它沒有奇環

考慮逆否命題,如果它有奇環,那麼它一定不能黑白染色

單獨考慮這個奇環,設其中一點顏色為白,那麼繞著奇環走一圈,會經過奇數條邊回到它自身,此時它必須是黑色才能滿足條件

這不可能,因此必要性成立

匹配:邊形成的子集,這些邊沒有公用頂點匈牙利演算法

匹配中的邊稱為匹配邊,其餘邊稱為非匹配邊

匹配邊相鄰匹配點,否則稱為非匹配點

交錯路:匹配邊和非匹配邊彼此相間的道路 增廣路:兩端都為非匹配點的交錯路

取反交錯路後,匹配數不會變少

取反增廣路後,匹配數會 + 1

增廣路引理:如果從一個未匹配點出發找不到增廣路,那麼存在一個最大匹配,這個最大匹配不包含這個點

(某大佬說它需要一個名字

證明:

考慮構造一個匹配\(M\),這個\(M\)中存在一個未匹配點\(u\),\(u\)沒有增廣路

假設這張圖的一個最大匹配為\(M'\)

那麼,如果\(u\)不在\(M'\)中,那麼得證

如果\(u\)在\(M'\)中是匹配點,那麼設\(u\)的匹配點為\(v\)

考慮\(v\),如果\(v\)的出邊中有一條連向非匹配點,那麼取反這條交錯路,得證

否則,因為\(u\)在\(M\)中沒有增廣路,因此\(v\)在\(M\)中有匹配點\(u'\),且\(u'\)在\(M'\)中也是匹配點

考慮\(u'\),如果\(u'\)的出邊中有非匹配點,那麼存在增廣路,\(M\)不是最大匹配

否則,考慮\(u'\)在\(M'\)中的匹配點\(v'\).....

依次類推

如果沒有在中間找到一條交錯路

由於\(u\)不存在增廣路,因此最終停止的節點一定和\(u\)屬於同一部分,記做\(u_1\)

但是在\(M'\)中,\(u\)到\(u_1\)形成了一條增廣路,這不可能

因此,一定會在中間的過程中找到一條交錯路,使得交錯之後的最大匹配\(M_1\)不含\(u\)

增廣路定理:如果圖上不存在增廣路,若且唯若匹配為最大匹配

證明:

必要性證明:如果原圖為最大匹配,那麼圖上不存在增廣路

如果有增廣路,那麼匹配可以+1,不符合最大匹配

充分性證明:如果圖上不存在增廣路,那麼原圖為最大匹配

對於所有的未匹配點而言,都找不到增廣路,對它們依次使用增廣路引理

最終,剩下的點只含匹配點,且根據增廣路引理,它是最大匹配

演算法

根據增廣路引理,我們知道:

如果從一個點出發找不到增廣路,那麼刪除它仍然有最大匹配

因此,我們可以考慮對每個點依次嘗試尋找增廣路,如果一個點找到了增廣路,那麼最大匹配+1

bool dfs(int o) {    for(int i = cap[o]; i; i = nxt[i]) {        int cur  = node[i];        if(!vis[cur]) {            vis[cur] = 1;            if(!mat[cur] || dfs(mst[cur]))            { mat[cur] = o; return 1; }        }    }    return 0;}int Match() {    int ret = 0;        for(int i = 1; i <= n; i ++)    ret += dfs(i);    return ret;}
獨立集:點形成的子集,這些點沒有公用邊 :點形成的子集,這些點兩兩有連邊 覆蓋:點形成的子集,每條邊至少有一個端點入選 支配集:點形成的子集,每個點至少有一條邊與集合相連或者在集合中

圖論知識記錄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.