问题是在多级别的多个节点内找到最佳路径(最低成本/高分)。或者换句话说,在共享一些相同节点的多个树中。
例如,见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条路径,这些路径应该给出总体最小成本。
这个问题应该采用什么样的算法?
答案 0 :(得分:0)
此问题可以建模为minimum cost flow网络问题。设m
为每层中的节点数。人造源s
位于第一层之上; s
已连接到第一层的每个节点,并且这些m
个边缘中的每一个的网络容量都受1
约束,成本为0
。同样,最后一层下面有一个人工终端t
; t
已连接到最后一个图层的每个节点,并且这些m
边缘中的每一个的网络容量都受1
约束,成本为0
。这个问题可以通过确定金额m
的最低费用流来解决,这可以通过network simplex算法实现。