[網絡流]最大權閉合圖(轉載)來自: http://hi.baidu.com/%C6%AE%BB%A8%C4%EA%B4%FA/blog/item/45d4bb1765e7044721a4e960.html
以下內容參考 胡伯濤 《最小割模型在信息學競賽中的應用》,感謝他為我們提供這么優秀的論文。
看不懂以上論文的同學,可以試試看一下以下內容,本文無大量的數學符號,方便閱讀理解。
首先我們由一道題來引入,見 [線性規划與網絡流24題 2] 太空飛行計划問題 。
這道題中,實驗依賴於儀器,而實驗和儀器都有權值,且儀器為負,實驗為正。
這里閉合圖的概念就很好引出了。在一個圖中,我們選取一些點構成集合,記為V,且集合中的出邊(即集合中的點的向外連出的弧),所指向的終點(弧頭)也在V中,則我們稱V為閉合圖。最大權閉合圖即在所有閉合圖中,集合中點的權值之和最大的V,我們稱V為最大權閉合圖。
上圖中閉合圖有
{5}、{2,5}、{4,5}
{2,4,5}、{3,4,5}
{1,2,3,4,5}、{1,2,4,5}
最大權閉合圖為{3,4,5}。
針對本題而言,我們將實驗與儀器間連一條有向邊,實驗為起點(弧尾),儀器為終點(弧頭)。則如果我們選擇一個閉合圖,那么這個閉合圖中包含的實驗所需要的儀器也最這個閉合圖里。而最大權閉合圖即為題目的解。
了解了最大權閉合圖的概念,接下來我們就需要知道如何求最大權閉合圖。
首先我們將其轉化為一個網絡(現在不要問為什么,接下來會證明用網絡可以求解)。構造一個源點S,匯點T。我們將S與所有權值為正的點連一條容量為其權值的邊,將所有權值為負的點與T連一條容量為其權值的絕對值的邊,原來的邊將其容量定為正無窮。
上圖即被轉化為如左圖網絡。
首先引入結論,最小割所產生的兩個集合中,其源點S所在集合(除去S)為最大權閉合圖,接下來我們來說明一些結論。
- 證明:最小割為簡單割。
引入一下簡單割的概念:割集的每條邊都與S或T關聯。(請下面閱讀時一定分清最小割與簡單割,容易混淆)
那么為什么最小割是簡單割呢?因為除S和T之外的點間的邊的容量是正無窮,最小割的容量不可能為正無窮。所以,得證。
- 證明網絡中的簡單割與原圖中閉合圖存在一一對應的關系。(即所有閉合圖都是簡單割,簡單割也必定是一個閉合圖)。
證明閉合圖是簡單割:如果閉合圖不是簡單割(反證法)。那么說明有一條邊是容量為正無窮的邊,則說明閉合圖中有一條出邊的終點不在閉合圖中,矛盾。
證明簡單割是閉合圖:因為簡單割不含正無窮的邊,所以不含有連向另一個集合(除T)的點,所以其出邊的終點都在簡單割中,滿足閉合圖定義。得正。
- 證明最小割所產生的兩個集合中,其源點S所在集合(除去S)為最大權閉合圖。
首先我們記一個簡單割的容量為C,且S所在集合為N,T所在集合為M。
則C=M中所有權值為正的點的權值(即S與M中點相連的邊的容量)+N中所有權值為負的點權值的絕對值(即N中點與T中點相連邊的容量)。記(C=x1+y1);(很好理解,不理解畫一個圖或想象一下就明白了)。
我們記N這個閉合圖的權值和為W。
則W=N中權值為正的點的權值-N中權值為負的點的權值的絕對值。記(W=x2-y2);
則W+C=x1+y1+x2-y2。
因為明顯y1=y2,所以W+C=x1+x2;
x1為M中所有權值為正的點的權值,x2為N中權值為正的點的權值。
所以x1+x2=所有權值為正的點的權值之和(記為TOT).
所以我們得到W+C=TOT.整理一下W=TOT-C.
到這里我們就得到了閉合圖的權值與簡單割的容量的關系。
因為TOT為定值,所以我們欲使W最大,即C最小,即此時這個簡單割為最小割,此時閉合圖為其源點S所在集合(除去S)。得正。
至此,我們就將最大權閉合圖問題轉化為了求最小割的問題。求最小割用最小割容量=最大流,即可將問題轉化為求最大流的問題。