[網路流專練3][最小路徑覆蓋問題]

來源:互聯網
上載者:User

標籤:存在   集合   容量   上界   lock   長度   演算法   簡潔   選中   

題目描述

«問題描述:

給定有向圖G=(V,E)。設P 是G 的一個簡單路(頂點不相交)的集合。如果V 中每個頂點恰好在P 的一條路上,則稱P是G 的一個路徑覆蓋。P 中路徑可以從V 的任何一個頂點開始,長度也是任意的,特別地,可以為0。G 的最小路徑覆蓋是G 的所含路徑條數最少的路徑覆蓋。設計一個有效演算法求一個有向非循環圖G 的最小路徑覆蓋。提示:設V={1,2,.... ,n},構造網路G1=(V1,E1)如下:

每條邊的容量均為1。求網路G1的( 0 x , 0 y )最大流。

«編程任務:

對於給定的給定有向非循環圖G,編程找出G的一個最小路徑覆蓋。

輸入輸出格式輸入格式:

件第1 行有2個正整數n和m。n是給定有向非循環圖G 的頂點數,m是G 的邊數。接下來的m行,每行有2 個正整數i和j,表示一條有向邊(i,j)。

輸出格式:

從第1 行開始,每行輸出一條路徑。檔案的最後一行是最少路徑數。

輸入輸出範例輸入範例#1:
11 121 21 31 42 53 64 75 86 97 108 119 1110 11
輸出範例#1:
1 4 7 10 112 5 83 6 93
Solution

1.模型:有向非循環圖DAG的最小路徑覆蓋

  • s->Xi,容量為1。
  • Xi->Yj,(i, j)∈E,容量上界為1。
  • Yi->t,容量上界為1。

DAG的最小路徑覆蓋=|V|-對應二分圖的最大匹配。

約束是什嗎?對路徑的定義中,有至關重要的一點:允許長度為0。於是解的存在性得到了保證。因此,只需滿足:對於任意一點,至多有一條與它關聯的入邊和與它關聯的出邊被選中。
二分圖的匹配,可以從頂點對應的角度看待,也可以從邊的角度看待:選出一些邊,使得每個頂點至多與一條邊關聯。和本問題的約束對比,發現有向非循環圖不是二分圖,並且對於頂點而言,邊分為入邊和出邊兩類。考慮把點i拆成Xi、Yi,入邊連到Yi,出邊從Xi出發。這樣,問題的約束便和二分圖匹配相一致。
目標是什嗎?使路徑覆蓋數最小。除了直接數,還能用什麼來刻畫路徑覆蓋數?頭的數量或尾的數量。什麼樣的點是頭?沒有匹配邊與對應的Yi關聯。尾?沒有匹配邊與對應的Xi關聯。所以,DAG的最小路徑覆蓋=|V|-對應二分圖的最大匹配。

hzwer這兒有另一種更簡潔的看待方法:

如果無匹配,顯然要n條路徑才能覆蓋所有點,兩個點匹配意味著將可以把它們用一條路徑覆蓋,路徑數就可以減1

我還有一種另類看待方法:
帶上下界的網路流。
Step 1
- s->Xi,容量上界為1。
- Xi->Yi,容量下界為1,上界inf。
- Yi->Xj,(i, j)∈E,容量上界為1。
- Yi->t,容量上界為1。
求解s-t最小流。

Step 2
看出一個可行流,於是省去通常求解s-t可行流的步驟。
網路變換為:
- Xi->s,容量上界為1。
- Yi->Xj,(i, j)∈E,容量上界為1。
- t->Yi,容量上界為1。
此網路的t-s最大流與原s-t可行流的疊加,即為原s-t最小流。s-t可行流的值為|V|,用|V|去減t-s最大流即可。

這種看待方法和hzwer的在實質上相同,但是是從形式上的變換得到的。

為什麼強調DAG?因為我們只是簡單地拆點、匹配,而沒有在意這兩點是否已經在同一條路徑裡了。比如,一個環,對應二分圖的最大匹配為|V|,實際上,作為一條有始有終的“路徑”,它是不能封口的。

轉載自http://blog.csdn.net/ruoruo_cheng

因此,ans=n-最大匹配

2.演算法

二分圖最大匹配用網路流最大流實現

[網路流專練3][最小路徑覆蓋問題]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.