-1

It is a many-to-one assignment problem with N tasks and M people.

Each person can get multiple tasks, while each task can be assigned to only one person. We can earn a profit Pij if the task i is assigned to person j.

If T1, T2, ... , Tm is a partition of the tasks, and n1, n2, ..., nm are m positive integers. I want the optimum assignment such that the number of people assigned to any task in Ti must be less or equal to ni

btilly
  • 43,296
  • 3
  • 59
  • 88
Oscar
  • 35
  • 4
  • Excuse-me, a correction, change the text "the number of people assigned to task Ti must be less or equal to ni" by "the number of people assigned to any task in Ti must be less or equals to ni" – Oscar Jun 28 '22 at 15:25
  • Can a person be assigned tasks across multiple partitions? – btilly Jun 28 '22 at 17:40
  • Sorry, it's the contrary. A person can be assigned to only a task. Thanks – Oscar Jul 07 '22 at 14:27
  • Sorry, but your clarification confuses me. Do you mean a person can only be assigned tasks from one partition? That is we assign up to `ni` people to partition `Ti`, then assign tasks within that partition freely to the `ni` people to maximize profit? – btilly Jul 07 '22 at 14:33

1 Answers1

0

If I understand your question correctly, this is a special case of the minimum-cost flow problem on a graph with three layers (in addition to a source and a sink layer).

  • From the source, you have a layer with M vertices, one for each person, connected to the source with edges of capacity 1 and no cost.
  • The next layer has the N tasks, and the i'th person is connected to the j'th task with an edge of capacity 1 and cost -P_ij.
  • The third layer contains m vertices, one for each part in your partition, and a task is connected to its part with an edge of capacity 1 and no cost.
  • Finally, the i'th part is connected to the sink with an edge of capacity n_i and no cost.

We haven't specified a demand, but we could simply try all possible demands between 0 and M and still be in P, so showing that it's not NP-hard is equivalent to showing that PNP.

fuglede
  • 17,388
  • 2
  • 54
  • 99