有没有人知道找到k最短路径的算法,我在互联网上搜索并找到了Yen's但是它太复杂了?
非常感谢。
答案 0 :(得分:3)
无法有效地完成(多项式) 1 - 问题是NP-Hard
以这种方式思考 - 你是否可以通过对[1,n!]
范围k
进行二元搜索来找到即使是最短路径的长度(在此默认简单路径),你可以查找图表中是否有hamiltonian path(通过查找长度为n
的路径)。
由于hamiltonian path problem是NP-Hard,这个问题也是如此,并且没有已知的多项式解决方案。
(1)可能,除非P=NP,但大多数CS研究人员认为它不太可能
答案 1 :(得分:1)
All Together Now ... Google for Dijkstra's Algorithm。有一个实现here。
答案 2 :(得分:0)
这是通过联合集解决的。谷歌它,但简而言之,你有2个向量。父母一个用-1初始化。另一个用零初始化的等级。 现在从源节点开始。你可以从那里找到每个可能的节点。通过使其父[i] =当前节点将它们添加到您的集合中。根据持有数字<[p]的等级[i]决定哪一个将成为谁的父母