添加节点的效果未知时查找最便宜路径的算法

时间:2015-05-03 17:32:56

标签: algorithm graph graph-algorithm path-finding

我需要在有向加权循环图上找到节点ab之间最便宜的路径,最便宜的定义为从给定的任意costfunc中引出最小的返回值。通常情况下,Djikstra将是我认为的最佳选择,除了costfunc采用整个路径 - 添加单个节点的效果未知(我想我可以只需运行带有和不带给定节点的costfunc并使用差异......)。

我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

如果没有costfunc的某些限制,那么您可以比尝试每条可能的路径做得更好。假设

costfunc = 1 / (sum of edge weights)

然后你的问题(在循环图上)是NP难Longest Path Problem

costfunc =
   sum of edge weights if path length = N
   infinity otherwise

你知道NP完整Travelling salesman problem