如何使用Dijkstra或Bellman-Ford算法在一个图中查找最短路径,其中一些边受到特定顶点影响。这样,受影响的边的长度将大于或小于原始长度。
如何使用Dijkstra或Bellman-Ford算法在一个图中查找最短路径,其中一些边受到特定顶点影响。这样,受影响的边的长度将大于或小于原始长度。
如果我理解正确,您想根据当前路径中访问的节点更改图中边缘的成本。评论中的一个示例是:
"边AB的长度为3,但如果您还访问节点C,则AB的长度将为5"
现在,似乎没有办法使用像Djikstra算法这样的东西,因为该算法中有一个贪婪步骤,在每个阶段选择“最佳”节点。在后面的时间点上,“最佳”节点可能会发生变化(由于上述规则等),这违反了贪婪方法的概念,该方法假定我们有效地按照从最好到最差成本的顺序访问节点。我不确定这是否像建议的那样是NP难的,但它肯定不能从一开始就使用Dijikstra类型的方法。对于这个问题加1。