Algorithm 将工人分配到工作区的算法

Algorithm 将工人分配到工作区的算法,algorithm,Algorithm,我正在寻找一种算法,将工人分配到混合了不同任务和工作量的工作场所 有几个工作场所(比如工厂:F1、F2) 在该工作场所内,有不同任务类型的等待工作量,每个任务的数量不同(比如在F1中,我们需要生产10件产品X、20件产品Y和30件产品Z;另一家工厂F2有不同的工作量) 每个工人可以执行一个或多个工作负载类型(W1可以制作产品X,W2可以制作产品X和Y,W3可以制作Y和Z),为了简单起见,我们假设所有工人的技能相同,制作产品所需的时间相同 该算法必须适用于任何非零数量的工作场所、任务类型和工人。显

我正在寻找一种算法,将工人分配到混合了不同任务和工作量的工作场所

  • 有几个工作场所(比如工厂:F1、F2)
  • 在该工作场所内,有不同任务类型的等待工作量,每个任务的数量不同(比如在F1中,我们需要生产10件产品X、20件产品Y和30件产品Z;另一家工厂F2有不同的工作量)
  • 每个工人可以执行一个或多个工作负载类型(W1可以制作产品X,W2可以制作产品X和Y,W3可以制作Y和Z),为了简单起见,我们假设所有工人的技能相同,制作产品所需的时间相同
  • 该算法必须适用于任何非零数量的工作场所、任务类型和工人。显然,如果工作场所比工人多,算法就必须迭代运行。当一个工作场所的工作完成时,工人将被重新平衡到另一个工作场所,剩下一些工作
  • 是否有一个有效的算法,可以将工人分配到工作场所,以最小化生产时间?我想把它和匈牙利算法相适应,但我认为这不是同一个问题


    谢谢你的指点。

    我认为使用匈牙利算法的问题在于,完成整个过程可能需要多次迭代。如果您向匈牙利算法提供一个问题的版本,其中每个工人有N个副本,那么您可能会找到N次迭代的最佳时间表

    在这种情况下,您可以尝试N=1,2,4。。。直到找到一个有效的N,然后在这个N和最高的N之间进行二进制切分,尝试不起作用的N(N/2),以找到可以解决问题的N的最小值