将人员分配给需要团队的任务,同时最大限度地减少总时间

Assign people to tasks that require a team while minimising total time

经典 assignment problem deals with assigning N agents to M jobs while minimising the time spent on each job. The problem has a solution in polynomial time, called the Hungarian algorithm,它有一个成本矩阵 C 作为输入,returns 最优分配列表。

就我而言,我遇到了同样的问题,但有一点不同。每个工作都需要分配给它的两个作品。选择代理的数量,使得 N 是偶数,以便这成为可能。

我对分配问题相关的问题还很陌生,所以我不确定如何解决这个问题。

如何解决这个问题?

编辑:注意一个代理最多只能分配一个任务,不能分配多个任务。可以假设 M(jobs) = 2N(agents) 并以其他方式引入虚拟代理或任务。

由于任务数量是工作人员的两倍,因此您需要将任务数量增加一倍。由于每个任务需要两个工作人员,您可以通过复制每个任务来使任务数量加倍(例如,任务 1 变为任务 1a 和任务 1b)。然后您将拥有相同数量的工人和任务,并且在 运行 匈牙利算法之后,您可以通过查看分配给每个任务的每个拆分的人来找到您的工人对。