2012-06-20 58 views
2

我喜歡使用升壓轉換器的Dijkstra算法實現來找到一個節點的最短路徑使用Boost Dijkstra算法與指定的最大距離

然而,在我目前的問題,我有一個巨大的圖表,只需要找到最短路徑尋找最短路徑到一定的距離內的節點

我可以實現這一點我自己,但我相信升壓轉換器的實現是比我更有效率,所以我更喜歡使用升壓爲任務

我只是不知道是否有一個告訴boost的dijkstra停止尋找最短路徑,如果節點太遠 - 就像它會在這種情況下顯着加速算法

+0

我現在面臨同樣的問題。從訪問者基本上停止算法應該是可能的。然而,我擔心索引仍然會被構建成適合所有頂點,而只需要少量的索引。 –

+0

這是真的,這是一段時間,我決定自己實現dijkstra算法。我的需求快得多 – HuyNA

+0

如果這樣的功能存在,我也會非常感興趣... – Istopopoki

回答

1

這是Dijkstra算法的一個非常簡單的修改。當你迭代來自頂點v的輸出邊時,忽略每個邊e,其中e.weight + v.dist > max