對於一般的圖,單源最短路徑的Dijkstra演算法可以達到[公式]或者[公式]的複雜度,兩兩最短路徑可以用Johnson演算法達到[公式]的複雜度。如果對於一個滿足三角形不等式的圖,這個複雜度是否能改進?


似乎做不到

考慮把一個滿足你所說要求的圖,每個點用一個環代替,還是滿足這個要求,但是相當於這個條件沒意義了?

簡單地說就是不給任何強聯通分量。

但是可能會影響複雜度上界?

在定點為平面上的點且邊的權重與頂點歐幾里得距離成正比的圖中,對Dijkstra演算法進行小的改動可以大幅提高運行速度。

在加權無環圖中,有演算法可以在線性時間內解決最短路徑問題。


等等,今天數學課上老師告訴我"最短距離"這個東西是度量,滿足三角不等式。

更新:好像可以?

先算單源最少步數,O(E)

然後按照步數分層。

把每個三角形想像成一個低一層的加上兩個高一層的,或三個同一層。

這樣同一層間不存在最短路更新。

隨後從第一層推進到最後一層。O(E)。這時候最後一層的最短路已經確定。隨後從最後一層推回第一層。每多推一層,這一層的最短路都會確定。

回到第一層,所有最短路確定。

O(E)。

更新:這樣不行,末端的最短路的值會傳遞。

不過稍微搞搞可以把最後一層的最短路先定下來再平推回去。

適用範圍:

超大圖,e/v 小於小於v所以log(e)不科學的情況。。。
不是很確定,感覺不行。對於滿足三角形不等式的圖,兩個三角可以拼成一個大三角(中間兩個邊看成一個),例如邊為1,2,100,100,對角為2的四邊形,將2和100合併成一個邊,大三角型為102,1,100不滿足三角不等式,說明這兩類問題似乎是可以轉換的。不知道這麼想是否正確。
我想問的是……為什麼平面圖會有三角不等式?平面圖是指邊集可平面化而兩兩不相交的圖,而不是在平面上散點,再用歐幾里得距離代邊權的圖……所以題主是想問平面圖,還是滿足三角不等式的圖……
推薦閱讀:
相关文章