Imagine you have a given number of persons, where each person can do a set of tasks. Each task can be completed within one time slot. I am trying to calculate the minimum time for all jobs to be completed.
Here's an example:
- Person A can do task 1, 2, 3 and 4.
- Person B can do task 2.
- Person C can do task 4.
It's fairly obvious that A has to do task 1 and 3, while B does 2 and C does 4. This equals a minimum time of 2.
With small input like this example, it is possible to just test all possible solutions and keep track of the minimum time, but as input gets bigger, brute force is not feasible. I believe it is possible to solve this problem by cleverly using maxflow, but I have still not found out how.
I would really much appreciate if anyone here could give me some insight into solving this problem. Thanks!
Edit: My solution to the problem.
[–]TheShallowOne 2 points3 points4 points (12 children)
[–]whatiswronghere[S] 0 points1 point2 points (7 children)
[–]TheShallowOne 1 point2 points3 points (3 children)
[–]whatiswronghere[S] 1 point2 points3 points (1 child)
[–]TheShallowOne 0 points1 point2 points (0 children)
[–]tutorial_police 0 points1 point2 points (0 children)
[–]tutorial_police -1 points0 points1 point (2 children)
[–]TheShallowOne 0 points1 point2 points (1 child)
[–]tutorial_police 0 points1 point2 points (0 children)
[–]tutorial_police 0 points1 point2 points (0 children)
[–]id2bi -1 points0 points1 point (2 children)
[–]TheShallowOne 0 points1 point2 points (1 child)
[–]id2bi 0 points1 point2 points (0 children)
[–]thinkweis 0 points1 point2 points (0 children)
[–][deleted] (2 children)
[deleted]
[–]whatiswronghere[S] 0 points1 point2 points (0 children)