Let say below is a table describing the time it takes 5 people to finish 5 jobs.
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
If the company has enough money to hire all 5 people, then I can see that the minimum time to complete everything is
Bob do Job1
Joe do Job2
Tom do Job3
May do Job4
Sue do Job5
1 + 1 + 1 + 2 + 1 = 6 units
I found the fastest way to solve this is to use Hungary Algorthm (Referenced find the minimum sum of matrix (n x n) that select only one in each row and column)
Also, if company can only hire 1 person, May will be hired because everyone took 15 units to finish, where May took only 13 units.
However, if company has enough budget to hire 3 people. What's the fastest algorithm to find out which 3 people I should hire?
In the above Example, should be Bob (or Joe) + May + Sue, their total will be
Either Bob do Job 1
Either Bob do Job 2
May do Job 3
May do Job 4
Sue do Job 5
1 + 2 + 1 + 2 + 1 = 7 units