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

标签 algorithm graph graph-algorithm path-finding

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

我该怎么做?

最佳答案

没有对 costfunc 的一些限制,你不能比尝试每条可能的路径做得更好。假设

costfunc = 1 / (sum of edge weights)

那么你的问题(在循环图上)是 NP hard Longest Path Problem .

为了

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

你有众所周知的 NP 完整 Travelling salesman problem

关于添加节点的效果未知时寻找最便宜路径的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30017082/

相关文章:

language-agnostic - 在游戏中放置防御结构

algorithm - 允许A-star算法绕过x个障碍物

R:枚举可能的序列以打破排名中的平局

c# - Excel 工作簿和图表

r - 网格线与轴上的刻度一致

algorithm - 找到在每一行和每一列中只选择一个的矩阵 (n x n) 的最小总和

javascript - 找出每个子数组中任意一个元素可以形成的最大乘积

matlab - 如何在Matlab中使用邻接矩阵绘制两棵合并树

algorithm - 如何用树中的所有子节点替换节点

algorithm - 为什么找到最大切割 NP-hard?