我有一棵樹,每個邊都被分配了一個權重(一個實數可以是正數或負數)。我需要一種算法來找到最大總重量的簡單路徑(即路徑中邊的權重總和最大的簡單路徑)。路徑開始或結束的節點沒有限制。查找無向加權樹中最長的路徑
我有一個可能的算法,但我不知道它的工作原理,我正在尋找一個證明。那就是:
- 選擇任意一個節點ü和運行DFS(û)發現,開始於ü的最大重量簡單的路徑。讓(u,v)成爲這條路徑。
- 運行DFS(v)查找最大重量簡單路徑,從v開始。讓這條道路成爲(v,z)。
然後(v,Ž)是最大權重的簡單路徑。該算法在圖的大小上是線性的。任何人都可以告訴我它是否有效,如果有,請給出證據?
說明:Longest Path Problem對於具有循環的一般圖是NP-Hard。但是,我只在這裏考慮樹木。
我想[數學SE](http://math.stackexchange。com /)是一個更好的地方來討論算法和證明 – Veger
@Veger:我不確定它會更適合。我在這裏看到了有關算法和證明的很好答案,而不僅僅是Math.SE。無論如何,我只是在[math.SE](http://math.stackexchange.com/q/279265/10063)上發佈了這個問題的一個副本。 – becko