簡體   English   中英

如何從加權圖中的頂點找到長度為k的最短路徑?

[英]How to find the shortest path of length k from a vertex in a weighted graph?

是否有一種算法可以在一個完整的加權圖中從頂點中找到長度為k的最短路徑?

在我看來,Djikstra算法似乎不適用於此問題,因為我們無法選擇路徑的大小。

它有解決此問題的算法嗎? Djikstra算法的變體可以解決這個問題嗎?

例如,對於以下圖形( Graph example )。 在k = 3的情況下,對於頂點A,我們將使用一條像AEDC這樣的路徑,其權重為324。這是權重最小的路徑。

不,我認為Dijakstra不會做得很好。 您並不是要以最短的距離到達每個節點,而是要以最小的距離到達任何地方 (距原點k跳)。

您可以改用廣度優先或深度優先的圖遍歷,而只需在搜索樹中找到以k邊界的最小距離。 您可以使用分支和綁定來優化樹搜索。

如果圖確實像問題中提到的那樣完整 ,則這是子集和問題的一個實例

https://en.wikipedia.org/wiki/Subset_sum_problem

由於完整的圖使您可以隨時從任何節點跳到任何節點,因此圖的結構並不重要,而僅取決於權重。 盡管問題是NP完全的,所以沒有有效的方法可以做到這一點

如果圖表不完整,則需要Bergi的答案。 昂貴的BFS是您唯一的選擇

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM