Re: [問題] longest path

看板Prob_Solve作者 (小安)時間13年前 (2010/11/01 01:02), 編輯推噓6(602)
留言8則, 6人參與, 最新討論串3/5 (看更多)
※ 引述《CMturtle (傑尼龜)》之銘言: : 是說~~~一般最短路的演算法為什麼不能處理最長路阿?? 因為最短路徑演算法是使用 Dynamic Programming, 而 DP 能解的問題必須具備 optimal substructure 特性。 以最短路徑來說,一條最短路徑隨意拆成兩段, 這兩段也會是最短路徑 (否則我們大可把原來路徑對應的一段替換為現在更短的這條) 但是最長路徑並沒有這種特性,以 A 到 B 來說, 即使我們能找到 A 到 C 的最長路徑以及 C 到 B 的最長路徑, 把這兩段合起來,卻不見得能得到 A 到 B 的最長路徑, 因為很可能有重復的 vertex。 (違反 simple path 定義) : 我的想法是 : 在無相圖中會出現正環的關係 : 但是如果再「有向無環圖」(DAG)中 : 是不是就可以套用最短路的算法來寫最長路? 單就這問題,我想你看了上面的說明應該可以自己回答,所以我就不給答案了。 不過,在 DAG 中要求最短路徑或最長路徑,有更簡單的 DP 作法能達成。 : 而bellman-ford & SPFA應該也可以再有向圖中來判斷正環囉?? 如果你把 edge 的 weight 全部正負交換,然後偵測 negtive cycle, 或著修改 relax 改成紀錄較長的路徑,我想大概也能判斷的出來。 不過,簡單的 DFS/BFS 就能找出 positive cycle 了, 所以應該是沒什麼必要用 bellman-ford。 -- T$,修好它吧。 ⊙─ ─⊙▂⊙ 碰到問題,用SoftICE就對了! █◤ Lee T$ Chen MYTHBUGTERS by dajidali -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.78.231

11/01 01:09, , 1F
謝謝你們>"< 清大的學長耶~~
11/01 01:09, 1F

11/01 06:20, , 2F
113 發文, 112 跟 114 回答, 太溫馨了 QQ
11/01 06:20, 2F

11/01 09:25, , 3F
那如果是將A-C,C-B的longest path以union方式銜接,可以解嗎?
11/01 09:25, 3F

11/01 09:52, , 4F
A-D-C, C-D-B 是 longest path, 要怎麼 union ?
11/01 09:52, 4F

11/01 10:04, , 5F
這你不用管.
11/01 10:04, 5F
※ 編輯: tkcn 來自: 140.114.78.231 (11/01 13:59)

11/01 17:16, , 6F
或許A-B的longest path其實是A-E-B 而E卻不在A-C C-B當中
11/01 17:16, 6F

11/02 10:03, , 7F
喔喔, y 版友真是偉大 m(_ _)m
11/02 10:03, 7F

11/02 15:56, , 8F
y大師說的是 受教了
11/02 15:56, 8F
文章代碼(AID): #1CpQ4Vd1 (Prob_Solve)
討論串 (同標題文章)
文章代碼(AID): #1CpQ4Vd1 (Prob_Solve)