圖中的最長路徑問題怎麼算?

時間 2021-05-30 04:06:50

1樓:靈劍

把距離取負值就是個最短路徑問題,有負權值的最短路徑不適用dijkstra演算法,但基於鬆弛技術的bellmanford和floyd演算法都是適用的,計算多點之間最短路徑使用floyd演算法,具體來說是進行n-2輪鬆弛,即對任意兩點窮舉第三點,並嘗試將距離替換成經由第三點的距離。完成後額外進行一輪鬆弛,如果距離繼續變小,說明存在負權有向環,最短路徑不存在(可以不斷沿著環繞),否則當前路徑就是最短路徑。

不過看題主的意思,這個圖有乙個特殊特性,它的有向邊只能從編號小的通往編號大的,這就更簡單一些了,以某個點結束的路徑只能由編號比它小的頂點及這些頂點之間的邊決定,這是個動態規劃問題。可以如下表述:

其中D[k]為以頂點k結尾的最長路徑的長度,d(j,k)表示j和k之間有向邊的距離。如果用特殊的鄰接表(反向的鄰接表,邊按照終點組織)來表示圖,這是個O(E)複雜度的演算法,最後要求的答案就是D[k]的最大值。

在具有負權迴路的圖中,兩點間的最短路徑這個概念是否還有意義?

已登出 dijkstra不能有負邊,d j d i w i,j 如果有負數邊,d j 會比d i 小,那麼之前已經算好的部分最小距離集合就不對,因為從i到j再到k可能更小。bellman就很暴力,不到最後一刻,壓根不決定出最終的最小距離,所以可以有負邊,n個點最多n 1次算出最終距離,每次都會讓所有...

圖中的論斷怎麼定量證明呢?

可以參考模擬我的乙個回答,微元法求解過程,這是關於均勻帶電球體與一點電荷相作用的求解過程。為什麼均勻帶電球體與點電荷之間的作用力可以用庫倫定律?我還是再畫一下圖,再寫一下吧,記得三連哦 這裡我們假定球體半徑為 質量密度為 質點距離質量球球心距離為 在球座標系下,點處的質量微元可為 該微元對置於 軸 ...

關於利率的問題,這種還款方式怎麼算利率?

筋斗雲 這相當於借給你朋友6000元,7周之內還7000元,每週還1000元。可用等額本息法公式來算周利率。周供款的計算公式如下 周供款 貸款本金 周利率 1 周利率 貸款期限 1 周利率 貸款期限 1 已經知道貸款本金為6000元,貸款期限為7期,周供款為1000.00 元,但周利率末知,先設為i...