Here's a problem that uses graph to find task assignment among a group of workers. Assume there are N number of tasks to be completed, with dependencies among the tasks. For example, task i depends on task j, which depends on k, etc. A directed graph can be used to model this, G = (V, E), where the Edge (a, b) implies that task b depends on task a.A task should be assigned to one worker, and a worker can be assigned multiple tasks. In the special case where the task dependencies form a cycle, e.g, task i depends on task j, which depends on task k, which depends on task i, the same worker should be assign the cycle of tasks.
Assume the goal is to assign all the tasks to the workers while minimizing the maximum number of task per worker (there is no limit on the number of workers). What is the most efficient way to assign the tasks? What is the max number of assigned tasks per worker?