我想知道如何爲最短路徑問題分配最大成本值。在我的問題中,我有與節點相關的風險。所以我想盡量減少風險,但儘管如此,我希望它找到一個節點數量有限的解決方案(例如,找到節點A到節點B的最小風險,同時確保解決方案不超過n個節點)。很多。如何限制最短路徑 - dijkstra算法的最大代價?
1
A
回答
2
Dijkstra算法最好先搜索,即我們應該肯定的是,以最好的節點的距離永遠不會變得更好。它適用於具有非負邊的最小Dijkstra。在一般情況下,您可以使用Ford-Bellman。如果你想使用不超過n個頂點,我可以建議你採用動態規劃DP [頂] [used_vertex_count]與複雜度爲O(| V | * n)的狀態和內存和O(| E | * n)的時間。或者創建圖形的鄰接矩陣,其中主對角線上的零點和缺少邊緣的無窮遠點並計算它的n指數。 a_ {ij}將使用不超過n個頂點從i到j的最小路徑。
0
我認爲一些算法,包括啓發式會得到更好的適合這裏,啓發式是如何「接近」你是在每一步的目標的一個概念,哪個節點將帶你更接近球門。如果沒有這些,我認爲我們需要在最壞的情況下運行一個指數算法(當只使用n
節點無法達到目標時,我們會在所有使用n
節點的路徑之前得出結論該問題無法解決)。
使用非啓發式算法的一個例子是:以常規方式運行Dijkstra's,選擇最小風險的節點。一路上,跟蹤您訪問過的節點數量。如果節點數超過n
,則放棄當前路由並回溯到前一個節點,並使用具有次低風險的節點。當然,你不能僅僅回溯到n
以上的一個等級,因爲如果目標是在下一個等級中的話,它就會被挑選出來。因此,你回到n-2
水平並繼續。這也將是指數性的,因爲沒有檢查所有路徑來確定不存在的真實方式。
這也可能是我想的東西。
-1
你想用Prim算法,因爲它發現在給定的圖全部最小生成樹。然後很容易選擇具有所需約束的mst。
相關問題
- 1. AFP Dijkstra的最短路徑算法
- 2. Dijkstra的算法最短路徑
- 3. Dijkstra的最短路徑算法修改
- 4. 增量Dijkstra或最短路徑算法?
- 5. 的Dijkstra最短路徑算法無限循環
- 6. 最短路徑Dijkstra Java
- 7. Neo4j 2.2.5 - Dijkstra最短路徑
- 8. Dijkstra的算法 - 只有負成本的DAG最短路徑
- 9. Dijkstra std :: priority_queue的最短路徑算法性能vs std :: set
- 10. Dijkstra的算法不會生成最短路徑?
- 11. 最短路徑tsp算法
- 12. 最短路徑算法
- 13. 使用Dijkstra的多條最短路徑
- 14. 做一個C++ 11 Dijkstra算法實現返回最短路徑
- 15. 最佳最短路徑算法
- 16. Dijkstra的最短路徑算法如何與優先級隊列一起工作?
- 17. 我們如何知道Dijkstra算法是最好的單源最短路徑算法?
- 18. 尋找最短路徑數的算法
- 19. Floyd的最短路徑算法C++
- 20. 在android中的最短路徑算法
- 21. 用Dijkstra算法尋找最短路的方法
- 22. 調整到最短路徑算法
- 23. 最短路徑更快 - SPFA算法?
- 24. Floyd-Warshall算法:得到最短路徑
- 25. 最短路徑算法遞歸
- 26. 概率和最短路徑算法
- 27. 最短路徑/僞代碼
- 28. 最短路徑
- 29. Dijkstra的算法找到最權重的路徑
- 30. 圖最短路徑?