加权图中最短路径的数量

比拉勒27

这是一个问题:给定一个有向图G =(V,E),一个源顶点s $εV,我们知道G中的所有循环都具有正权重(> 0)。此外,我们还得到了在Bellman-Ford上运行后的图形,这意味着对于V中的每个v,我们都知道d [v](从s到v的最短路径)和pi [v](v的前任)

描述一种算法,以查找V中所有v的从s到v的最短路径的数量。该算法必须以O(V + E)运行

*我们无法编辑在算法上运行的Bellman-Ford

这就是我的想法:我们运行了经过修改的DFS,

算法(G,s):

1.DFS-Visit(G,s)
2. return count[v] foreach v in V

DFS访问(G,u):

1.foreach v in Adj[u]
   2.if d[v] == d[u] + w(u,v) && (u,v) is not a backedge
      3.count[v] = count[v] + 1
      4.DFS-visit(G,v)

*似乎算法可能陷入无限循环,也许我可以忽略后端?(因为最短的路径总是很简单的)

*这与“如何在有向图和线性时间中找到两个顶点之间不同的最短路径的数量”不是重复的

在那个问题中,图形在这里是未加权的(已加权)(边),您认为这是正确的吗?谢谢

彼得

if d[v] == d[u] + w(u,v) && (u,v) is not a backedge

条件d[v]==d[u]+w(u,v)在这里是最重要的。如果可以保证这绝不是后盾,而且可以保证您永远不会回到原来的顶点。

确实,假设您回到了曾经去过的顶点。那你有

d[v1]==d[v0]+w(v0,v1)
d[v2]==d[v1]+w(v1,v2)
...
d[v0]==d[vn]+w(vn,v0)

总结一下,我们发现

w(v0,v1)+w(v1,v2)+...+w(vn,v0)==0

那是一个零权重的循环,但是我们被告知没有这样的循环。

因此,该算法永远不会陷入无限循环。此外,如果仅保留满足要求的边d[v]==d[u]+w(u,v)(即使没有,也使图有向),则生成的图将是非循环的。

因此,您可以运行在非循环图中查找多种方式的标准算法。实际上,这就是您已经写的(您的DFS),请注意

count[v] = count[v] + 1

应该

count[v] = count[v] + count[u]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在加权图中找到最短路径

来自分类Dev

在循环加权图中寻找最短路径

来自分类Dev

如何使用NetworkX获得加权图中的最短路径?

来自分类Dev

遗传算法 - 加权图中的最短路径

来自分类Dev

通过加权图的最短路径

来自分类Dev

在有向加权图中找到两个节点之间的最短路径

来自分类Dev

计算无向加权图中一组顶点之间的最短路径

来自分类Dev

在访问某些顶点时在加权图中找到最短路径

来自分类Dev

计算无向加权图中一组顶点之间的最短路径

来自分类Dev

从源列表和目的地列表中查找有向加权图中的最短路径

来自分类Dev

计算加权最短路径的未加权长度

来自分类Dev

有向权重图中具有设定权重数量的最短路径

来自分类Dev

在Networkx图中突出显示最短路径

来自分类Dev

优先级图中的最短路径

来自分类Dev

图中边增加的最短路径

来自分类Dev

在O(V + E)时间内找到无向加权图中从源到目标的最短路径

来自分类Dev

使用堆栈查找加权图的最短路径

来自分类Dev

非加权图如何做最短路径算法?

来自分类Dev

如何计算与加权顶点的图的最短路径?

来自分类Dev

加权有向图最短路径的最佳方法

来自分类Dev

非加权图如何做最短路径算法?

来自分类Dev

网络中最短路径长度的标准偏差x

来自分类Dev

如何在线性时间内在无向图中找到不同的最短路径的数量?

来自分类Dev

具有已知起始节点并访问所有节点而无需返回起始节点的完整加权无向图中的最短路径

来自分类Dev

在图中找到N条最短路径

来自分类Dev

我应该如何使用链表找到图中的最短路径

来自分类Dev

动态最短路径

来自分类Dev

最短路径算法

来自分类Dev

在强制访问某些Edge的图中找到最短路径,而其他非强制访问的最短路径

Related 相关文章

  1. 1

    在加权图中找到最短路径

  2. 2

    在循环加权图中寻找最短路径

  3. 3

    如何使用NetworkX获得加权图中的最短路径?

  4. 4

    遗传算法 - 加权图中的最短路径

  5. 5

    通过加权图的最短路径

  6. 6

    在有向加权图中找到两个节点之间的最短路径

  7. 7

    计算无向加权图中一组顶点之间的最短路径

  8. 8

    在访问某些顶点时在加权图中找到最短路径

  9. 9

    计算无向加权图中一组顶点之间的最短路径

  10. 10

    从源列表和目的地列表中查找有向加权图中的最短路径

  11. 11

    计算加权最短路径的未加权长度

  12. 12

    有向权重图中具有设定权重数量的最短路径

  13. 13

    在Networkx图中突出显示最短路径

  14. 14

    优先级图中的最短路径

  15. 15

    图中边增加的最短路径

  16. 16

    在O(V + E)时间内找到无向加权图中从源到目标的最短路径

  17. 17

    使用堆栈查找加权图的最短路径

  18. 18

    非加权图如何做最短路径算法?

  19. 19

    如何计算与加权顶点的图的最短路径?

  20. 20

    加权有向图最短路径的最佳方法

  21. 21

    非加权图如何做最短路径算法?

  22. 22

    网络中最短路径长度的标准偏差x

  23. 23

    如何在线性时间内在无向图中找到不同的最短路径的数量?

  24. 24

    具有已知起始节点并访问所有节点而无需返回起始节点的完整加权无向图中的最短路径

  25. 25

    在图中找到N条最短路径

  26. 26

    我应该如何使用链表找到图中的最短路径

  27. 27

    动态最短路径

  28. 28

    最短路径算法

  29. 29

    在强制访问某些Edge的图中找到最短路径,而其他非强制访问的最短路径

热门标签

归档