二分图的边权重

时间:2013-09-19 16:07:06

标签: algorithm graph

我很难理解某些逻辑。我有一个双分图如下。

enter image description here

我希望找到左侧所有顶点的最佳匹配(Viz,A1,A2,A3,A4)。我得到了朋友的建议,边缘重量的总和可以用来解决这个问题。但是,我不确定,在这种情况下边缘重量的总和将如何帮助。例如,对于A1,我可以说AL2是最佳匹配,依此类推。但是,我的朋友建议边缘权重是解决这个问题的最佳解决方案。我无法理解它如何成为最佳解决方案。他的想法是,所有(A1,A2,A3,A4)将连接到所有(AL1,AL2,..,AL6),并且对于每个边缘,我们将计算边缘权重的总和。有人可以帮我理解他的实际含义吗?

编辑:我认为这可能不是二分图中完美匹配的情况,因为左侧的节点应该等于右侧的节点。

1 个答案:

答案 0 :(得分:1)

使用max-flow算法可以在多项式时间内有效地计算maximum weighted bipartite matching,这是线性程序的特例。二分匹配,最大流和线性程序之间存在多种关系,但Hopkroft-Karp algorithm是解决此特定问题的算法的最简洁表达。

Maximum matchings for non-bipartite graphs也可以有效计算。

(以上所有算法都有加权版本。)

编辑:您的评论中不清楚您的问题是否略有不同。如果从左到右可以存在一对多映射,但是右节点只能映射到一个左节点,则有效地存在最大流问题,其中左节点具有无限容量流入而右节点具有流出量一个。有关不同的解决方法,请咨询max-flow algorithms