查找两组节点之间的路径

时间:2019-05-08 08:21:10

标签: graph-theory graph-algorithm

我有一张图。我想获得源节点和目标节点之间的所有可能路径。

我正在寻找一种高性能算法,因为我必须对两组节点(源节点和目标节点)执行此操作

让我们举个例子。 my graph

鉴于此图,我想获取之间的所有可能路径:

  • sources = [0, 4, 5]
  • targets = [2, 3]

结果应为:

  • 0-1-2
  • 0-1-2-3
  • 4-3
  • 4-3-2
  • 4-3-2
  • 5-4-3
  • 5-4-3-2

1 个答案:

答案 0 :(得分:1)

可以使用depth-first搜索来解决两个节点之间所有路径的枚举。但是,应考虑几点。

  1. 如果允许输入图包含循环,并且允许路径中的节点重复,则在两个金缕梅结点之间可能存在无限多的路径。

  2. 即使不允许重​​复节点,给定节点对之间的路径数也可能在输入中的节点数上成倍增长;因此,有必要弄清楚什么是“性能”算法,因为通常的多项式有限的运行时复杂度无法满足要求-输出可能会按输入大小呈指数增长。

相关问题