【问题标题】:Find paths between two sets of nodes查找两组节点之间的路径
【发布时间】:2019-05-08 08:21:09
【问题描述】:

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

我正在寻找一种高性能算法,因为我必须为两组节点(源和目标)这样做

让我们举个例子。

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

  • 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

【问题讨论】:

    标签: graph-theory graph-algorithm


    【解决方案1】:

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

    1. 如果允许输入图包含循环并且允许路径中的节点重复,则可能在一对 ginven 节点之间存在无限多条路径。

    2. 即使不允许节点重复,给定节点对之间的路径数量也可能在输入中的节点数量呈指数增长;因此,有必要澄清什么是“高性能”算法,因为通常的多项式有界运行时复杂度不符合条件 - 输出可能会随着输入的大小呈指数增长。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多