1

我有一个大小为 [3][x] 的二维矩阵,里面填充了数字。我想根据条件从这个矩阵中选择 x 个数字

  1. 每列中只有一个数字。
  2. 每行最多有 'm' 个数字(所有 3 行的总数应该是 x 个数字和 3m > x)

我想找到这些选定的 x 数字的最小总和。

我能够根据从矩阵中的上述条件找到“x”小数字的迭代方法来选择数字。但我的答案不是最优的。例如:

5 9 . . . . 
6 15 . . . .
7 19 . . . .

假设最初选择了 5(所以现在不能选择 6 和 7)。稍后我们尝试选择 9,但如果行 (0) 的 m 个元素结束,我们将不得不选择 15。现在我们的解决方案将是 5+15 = 20,但我们可以使用 6+9 = 15 作为最佳解决方案。

我正在尝试优化我的解决方案并寻找更好的算法。有人可以为我提供一些最佳解决方案的好主意吗?

4

1 回答 1

0

这个问题让我想起了这个:http ://projecteuler.net/problem=345

匈牙利算法可能有效:http ://en.wikipedia.org/wiki/Hungarian_algorithm

于 2012-07-25T23:46:42.350 回答