Algorithm 给定2d矩阵,求元素的最小和,以便从每行和每列中选择一个元素?
求n*n 2D矩阵元素的最小和,这样我就必须从每行和每列中选择一个元素,而且只能选择一个元素? 乙二醇 如果我从行Algorithm 给定2d矩阵,求元素的最小和,以便从每行和每列中选择一个元素?,algorithm,graph-algorithm,hungarian-algorithm,Algorithm,Graph Algorithm,Hungarian Algorithm,求n*n 2D矩阵元素的最小和,这样我就必须从每行和每列中选择一个元素,而且只能选择一个元素? 乙二醇 如果我从行1中选择4,我不能从行1中选择12,也不能从列1中选择, 我只能从第2行第2列中选择6 同样地,最小和应该是4+6=10,其中6来自第二行第二列 而不是6+12=18,其中6来自第二行第一列 此外,不允许使用4+12,因为两者都来自同一行 我想到了暴力,一旦我从行和列中选择元素,我就不能再选择另一个,但这种方法是O(n!) .定理:如果一个数字被加到或从中减去 矩阵中任何一行或一列的
1
中选择4
,我不能从行1
中选择12
,也不能从列1
中选择,
我只能从第2行第2列中选择6
同样地,最小和应该是4+6=10
,其中6
来自第二行第二列
而不是6+12=18
,其中6
来自第二行第一列
此外,不允许使用4+12
,因为两者都来自同一行
我想到了暴力,一旦我从行和列中选择元素,我就不能再选择另一个,但这种方法是O(n!)
.定理:如果一个数字被加到或从中减去 矩阵中任何一行或一列的条目, 然后选择元素,以获得结果矩阵所需的最小和 选择相同的元素以获得原始矩阵所需的最小和 (问题的特殊情况)使用此定理选择满足问题中给定约束的元素:
我如果最小覆盖线数为n,则可以进行最佳零分配,我们就完成了。
二,。如果覆盖线的最小数目小于n,则最优 还不可能指定零。在这种情况下,转至步骤5
详细解释了O(n4)(易于快速实现)和O(n3)(更难实现)的实现。看看匈牙利的分配问题算法。
4 12
6 6