Consider a group of n robots, and m tasks. Tasks can be different and robots are specialized, hence a given robot can only perform certain tasks. For each robot, you are given a list of tasks in a text file that the robot is capable of performing. Assume each task takes one day to perform from start to finish, and once a robot starts working on a task, it completes it before starting on another task. Also, the robots cannot multi-task. Finally, assume that there are no dependencies among tasks and any subset of tasks can be worked on concurrently by qualified robots.
A text file is given with inputs like:
1, 1, 3, 4
2, 2, 5, 8
3, 5, 7, 9
where the numbers on the first line correspond to # of robots(3) and total number of tasks(10) & the numbers on lines 2-4 correspond to robot number followed by what tasks the specified robot can complete.
Based on the constraints above, what would be the best way to optimize the maximum number of tasks that can be completed in one day?
I'm under the impression that the max number of tasks that can be completed equals the number of robots since each robot can complete 1 task per day. But, I am also supposed to output a set of robot-task pairings to achieve the result.
My question is, what is best way to find a robot-task pairing after input file has been parsed for tasks that can be completed by each robot?