假设有N个人和M个任务,还有一个成本矩阵,告诉我们当将一项任务分配给一个人时,它的成本是多少。
假设我们可以将多个任务分配给同一个人。这意味着如果将所有任务分配给一个人可以使成本最小,则可以这样做。我知道这个问题可以使用各种技术来解决。其中一些如下所示:
- 位掩码 - 匈牙利算法 - 最小成本最大流 - 蛮力法(所有排列M!)
问题:但是如果我们加上一个限制条件,例如只能将连续任务分配给一个人呢?
假设我们可以将多个任务分配给同一个人。这意味着如果将所有任务分配给一个人可以使成本最小,则可以这样做。我知道这个问题可以使用各种技术来解决。其中一些如下所示:
- 位掩码 - 匈牙利算法 - 最小成本最大流 - 蛮力法(所有排列M!)
问题:但是如果我们加上一个限制条件,例如只能将连续任务分配给一个人呢?
T1 T2 T3
P1 2 2 2
P2 3 1 4
答案是6而不是5。
解释:
我们可能会认为,P1->T1,P2->T2,P1->T3 = 2+1+2 = 5 可以是答案,但事实并非如此,因为(T1和T3是连续的,所以不能分配给P1)。
P1->T1, P1->T2, P1-T3 = 2+2+2 = 6
如何解决这个问题?