0

请让我知道哪种算法适合以下问题:

在给定的 3 个月期间,我们有有限数量的项目(通常 < 50 个)。每个项目都有几个小时。

在同一个 3 个月期间,我们有有限数量的资源(通常 < 100)。

每个资源每月可以消耗唯一数量的小时数(考虑假期、个人假期等 - 每月这个小时数已经为每个资源预先计算并且可用)。

可以将一种资源分配给多个项目。


我认为,如果我们将项目视为垃圾箱,将资源视为对象,将小时视为对象体积,这就像一个装箱问题。至少有两件事使它偏离了正式的装箱问题:

  1. 资源是流动的物体,可以在一个容器中滴几个小时,在另一个容器中滴几个小时。
  2. 最佳解决方案不是尽量减少使用的箱(项目)的数量,而是尽量减少资源在项目之间拆分的次数,并确保所有项目都被使用。

我觉得我可能正在用垃圾箱包装角度追逐鹅。有没有更适合这个的算法?

4

1 回答 1

1

如果世界真的像您描绘的那样简单,那么简单的队列似乎可以满足您的限制:当项目到达时,将它们放入队列中。当开发人员可用时,他们会排在队列的首位。只有当您的项目大到无法以这种方式完成时,您才需要为他们分配多个开发人员,并且您可以检测到这一点,并回溯并分配两名开发人员。

但是所有这些都忽略了开发人员之间的协调、交接、依赖关系(在其他事情之前需要首先完成的事情),有能力的开发人员具有不同的技能和经验,甚至有类似经验的开发人员,而不是无能或超级明星,都可以速度差异高达 10 倍。

于 2012-04-12T20:01:41.200 回答