Math 查找MxN矩阵的K行的最小和,其中每列中需要有1项

Math 查找MxN矩阵的K行的最小和,其中每列中需要有1项,math,matrix,Math,Matrix,假设下面的表格描述了5个人完成5项工作所需的时间 Job1 Job2 Job3 Job4 Job5 Bob 1 2 3 4 5 Joe 2 1 3 4 5 Tom 2 3 1 4 5 May 2 3 1 2 5 Sue 2 3

假设下面的表格描述了5个人完成5项工作所需的时间

      Job1    Job2    Job3    Job4    Job5
Bob    1       2       3       4       5
Joe    2       1       3       4       5
Tom    2       3       1       4       5
May    2       3       1       2       5
Sue    2       3       4       5       1
如果公司有足够的资金雇佣所有5个人,那么我可以看到完成所有工作的最短时间是 鲍勃做工作1 乔做工作2 汤姆做作业3 我可以做这项工作 苏做工作

1+1+1+2+1=6个单位

我发现解决这个问题的最快方法是使用 参考

另外,若公司只能雇佣1人,那个么可能会被雇佣,因为每个人都花了15个单元完成,而梅只花了13个单元

然而,若公司有足够的预算雇佣3人。找出我应该雇佣哪三个人的最快算法是什么

在上面的例子中,应该是Bob或Joe+May+Sue,他们的总数将是 要么鲍勃做第一件事 要么鲍勃做第二项工作 我可以做工作3 我可以做工作4 苏做工作5


1+2+1+2+1=7个单位

事实上,鲍勃或乔、梅、苏将拿7个单位。你的例子很简单,只有5比3=10的可能性,很容易检查。您可能会限制每个员工可以完成多少个工作单元。如果一个员工不能真正完成他或她擅长的所有工作,那就没有什么好处。这会让事情变得有趣。Thx gnasher729。在问题中更正。现在我能想到的最快的方法是5C3,并在所有组合上运行匈牙利算法。但正如我所说,它可以是NxM Choose K.即1000x5000选择500行。数学可能很复杂。只是想知道它是否可以优化。