查找多个树中的最佳路径(多个层中的多个节点)

时间:2017-06-15 20:18:24

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

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

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

因此,目标是找到这些层节点之间的最佳路径。

数据如下: (第一级节点,2级节点,3级节点......):得分

(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条路径,这些路径应该给出总体最小成本。

这个问题应该采用什么样的算法?

1 个答案:

答案 0 :(得分:0)

此问题可以建模为minimum cost flow网络问题。设m为每层中的节点数。人造源s位于第一层之上; s已连接到第一层的每个节点,并且这些m个边缘中的每一个的网络容量都受1约束,成本为0。同样,最后一层下面有一个人工终端t; t已连接到最后一个图层的每个节点,并且这些m边缘中的每一个的网络容量都受1约束,成本为0。这个问题可以通过确定金额m的最低费用流来解决,这可以通过network simplex算法实现。