Prob_Solve 板


LINE

感謝大家對這個問題所提供的寶貴意見,我將目前的討論串先做個整理。 (順便賺點P幣...XD) Problem A: 給一個無向圖 G = (V, E), 請試著在圖上找兩條 edge-disjoint minimum weight shortest paths。 一條由給定的起點 S1 到終點 T1;另一條由起點 S2 到終點 T2。 case 1: 若 S1=S2 且 T1=T2 這其實就是ACM Problem 10806的問題, yalight 在第100篇推文中,有清楚的介紹解法喔。 case 2: 若 S1=S2 或 T1=T2 這個case則可以利用 windows2k 在第96篇所提到的作法來解。 case 3: yoco315 在第98篇推文中提到, 首先在 T1 與 S2 之間加一條 directed edge e , 而 e 的 weight 為 -∞,假設所得的新圖為 G’。 若 G’不存在 negative weight cycle, 則利用 Bellman-Ford algorithm 找出由 S1 到 T2 的shortest path, 即為所求。 另外,yoco315 也將原先的 Problem A,轉成下面的 Problem B。 Problem B: 在一個有向圖 G 中,找一條由起點 S 到終點 T, 且經過某條特定的 directed edge e 的最短路徑。 只要可以解出 Problem B 的話,相信 Problem A 也可以迎刃而解。 (有人對 Problem B 有什麼建議嗎???) 此外,版主大人 march20 也為我們找到一些目前關於此 Problem A 相關文獻。 首先在 Yossi 的 paper 中,討論了以下這個問題 Problem C: 給定一個無向圖 G = (V, E),請問 G 是否存在兩條 vertex-disjoint paths, 一條由起點 S1 到 T1,另一條由 S2 到 T2。 在 Problem C 中,我們考慮vertex-disjoint paths (也就是這兩條paths不經過相同的vertices), 且不去管每條edge的weight,只考慮paths的存在性。 則根據 Yossi 的論文, Problem C 可以在 O(|V|*|E|)的時間複雜度解決。 可是,Problem C 討論的是 vertex-disjoint, 而我問的 Problem A 則是 edge-disjoint。 所以,自然而然就有了下面的 Problem D。 Problem D: 給定一個無向圖 G = (V, E),請問 G 是否存在兩條 edge-disjoint paths, 一條由起點 S1 到 T1,另一條由 S2 到 T2。 事實上,Problem D 也有 polynomial-time solution 如下: 首先,我們先利用 Yossi 解 Problem C 的方法, 檢查 G 有沒有 vertex-disjoint paths,一條由 S1~>T1,另一條由 S2~>T2。 CASE 1: 如果 G 有 vertex-disjoint paths, 則代表 G 有 edge-disjoint paths。 (因為若這兩條paths沒用到相同的vertex,一定不會用到相同的edge) CASE 2: 如果 G 沒有 vertex-disjoint paths, 在這個case下,G 會有 edge-disjoint paths,只有一種可能性。 那就是這兩條 edge-disjoint paths,中間有通過相同的點 u。 在這個CASE下,我們新增一個點 w, 再多加四條edges,分別連接 w與S1, w與S2, w與T1, w與T2。 我把這個新的圖叫 G'。 如此一來, w 與 u 之間,必存在四條 edge-disjoint paths。 (w-S1~>u, w-S2~>u, w-T1~>u, w-T2~>u)。 因此,我們只要利用 max-flow algorithm, 對每一個 G 上的點 v, 檢查 w 與 v 之間是不是有四條 edge-disjoint paths, 就可以知道 G 有沒有一條 S1~>T1, 另一條 S2~>T2 的 edge-disjoint paths 了。 換言之,我頂多執行 max_flow algorithm O(|V|)次, 即可知道 G 有沒有 edge-disjoint paths。 因此,Problem D has a polynomial-time solution。 PS1: Problem D 的解法參考自 Y. Perl and Y. Shiloach, "Finding Two Disjoint Paths Between Two Pairs of Vertices in a Graph," Journal of ACM, vol. 25, no. 1, pp. 1-9, Jan. 1978. PS2: 經過這一串的討論,讓我對解出原先的 Problem A 又多了幾分信心。 謝謝大家~ ^_______^ PS3: 不知道有沒有哪裡我疏忽沒整理到的地方,或是哪邊我誤解了原PO的想法。 有錯的話,也請不吝指教。 ------------------------------ 原來我一直在想這麼難的問題啊~ 我還以為我腦殘咧... XD --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.82.205
1F:推 PsMonkey:好用功阿.... [推] 06/29 17:19
2F:推 bafu:好文推一下(好帖我頂!?) XD 06/29 17:34
3F:推 march20:可喜可賀 :> 06/30 01:52
4F:推 march20:收到了 :P 07/04 15:16







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP