2011-08-10 61 views
1

Dijkstra迪傑斯特拉路徑重量

爲什麼一些路徑具有比其它相等長度的路徑顯著更多/更少的權重?在Dijkstra的長度和路徑重量不等於?

+0

當你說路徑時,你是否有任何機會意味着邊緣? –

+0

@obrok:可能... – woliveirajr

+0

你是如何生成該圖形的? – Peaches491

回答

4

您的意思是的圖形表示與每個路徑的weight不對應?

他們沒有太......視覺表現只是一種表象,沒有別的。它不等於重量。

你可以反正重新繪製圖形你喜歡的,只是確保頂點之間的連接被保留。

編輯:它並不重要,你要處理什麼樣的圖形搭配,無論是Dijkstra算法或任何其他。你甚至可以在方向很重要的地方找出圖表:從A到B的重量可以是10,從B到A的重量可以是30.沒問題。

編輯2:圖像只顯示頂點如何相互連接。圖像不需要與存儲在程序中的圖形成比例。有時你會得到具有許多頂點和邊的圖形,以至於無法以良好的方式表示它。對你的編程問題重要的是頂點,邊緣和重量。圖像只是它的粗略表示。您可以根據需要重新繪製圖像,只需確保爲每條邊放置所有頂點,所有邊和所有權重。

+0

Dijkstra是否可以將邊緣與距離等同起來,還是完全獨立的問題? – daidai

+0

如果我明白你的意思:邊緣是兩個頂點之間的距離(如果你認爲在一個地圖上,像一個國家的城市)。它們也可能意味着「成本」(例如,從狀態「液態」變爲狀態「蒸汽」成本爲100o攝氏度)。他們可以指任何你喜歡的東西。邊緣權重是從頂點A到頂點B的價格。 – woliveirajr

+0

Dijkstra的算法/版本是否只有邊長?在上面的例子中,我還沒有看到如何/爲什麼在兩個相似距離之間旅行「花費」3和16個單位。 – daidai

2

路徑的長度(如在圖中的線的大小)是無關緊要的,它只是使它看起來不錯。線的權重表示在兩個節點之間行進的成本。

這是混亂的,雖然,你可以通過改變圖形的繪製方式使長度=體重。

+0

爲什麼在兩個接近點之間的旅行成本會比另兩個點高3倍?這是我不明白的。 – daidai

+0

@daidai:指定'graph'中的距離(在圖中看到的數字)。該圖不需要與實際距離成比例。您生成的用於表示圖形的圖像可以幫助您表示該圖像。 – woliveirajr

+0

啊看到我猜我試圖做相反的事。示例中的圖表是地點和線條的表示,意思是距離它們很近 - 我使用這種算法通過其他方法找到兩個地方之間的最短路徑。 Dijkstra不適合我的需求嗎? – daidai