【问题标题】:Find best paths within multiple tree (multiple nodes in multiple layer)在多棵树中找到最佳路径(多层中的多个节点)
【发布时间】:2017-06-15 20:18:23
【问题描述】:

问题是在多层次的多个节点中找到最佳路径(最低成本/最高分)。或者换句话说,在共享一些相同节点的多棵树中。

例如看到in the picture; 每个级别都有几个节点。这些通过边缘相互连接(每个边缘也有一个距离值,但可能不会使用)。并且每条路径都有一个来自边缘值的得分值。分数是路径的联合概率。

所以目标是找到这些层节点之间的最佳路径。

数据如下; (一级节点、二级节点、三级节点……):分数

(1, 1, 1) : 3

(1, 2, 1) : 1

(1, 2, 2) : 6

(1, 2, 3) : 2

(2, 2, 1) : 3

(2, 2, 2) : 4

(2, 2, 3) : 3

(2, 3, 2) : 5

(2, 3, 3) : 4

.....

结果应该给出 5 条路径,这些路径应该给出总体最小成本。

应该用什么样的算法来解决这个问题?

【问题讨论】:

  • 你从哪里得到这些分数?边缘是否具有该图像中未显示的权重?
  • 是的,我试图解释问题,但似乎含糊不清。边具有权重(权重是从节点(t)到节点(t+1)的边的概率)。分数是从顶部节点到底部节点的路径中权重(联合概率的种类)的乘积

标签: algorithm path tree path-finding directed-acyclic-graphs


【解决方案1】:

这个问题可以建模为minimum cost flow 网络问题。设m 为每一层的节点数。人工源s放在第一层上面; s 连接到第一层的每个节点,每个 m 边的网络容量受 1 约束,成本为 0。同样,在最后一层下面有一个人工终端tt 连接到最后一层的每个节点,每个 m 边的网络容量受 1 约束,成本为 0。该问题可以通过确定金额为m 的最小成本流来解决,这可以通过network simplex 算法实现。

【讨论】:

  • 这仅在图表未加权时才有效。他的描述提到了每条路径的“分数”,我认为这是该路径的成本?
猜你喜欢
  • 1970-01-01
  • 2013-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多