找到每个行和列中只选择一个的矩阵(n x n)的最小和

时间:2010-12-19 06:58:26

标签: algorithm graph-theory dynamic-programming graph-algorithm

这是与动态编程有关的另一个算法问题

问题在于:

找到给定矩阵的最小总和,以便在每行和每列中选择一个

例如:

3 4 2

8 9 1

7 9 5

最小值:4 + 1 + 7

我认为解决方案是网络流量(最大流量/最小切割量),但我认为它不应该像它一样难以

我的解决方案:单独列出[column],column1,column2 ... column n

然后开始点(S) - > column1 - > column2 - > ... - >栏n - > (E)终点 并实施最大流量/最小切割

1 个答案:

答案 0 :(得分:16)

这是Assignment Problem,它可以被认为是图中最小权重完美匹配的特例。解决分配问题的经典方法是使用Hungarian Algorithm