请告诉我哪种算法适用于以下问题:
我们在给定的3个月内(通常<50)有一定数量的项目。每个项目都有几个小时。
我们在同一个3个月内拥有有限数量的资源(通常<100)。
每个资源每月可以消耗一个独特的小时数(假期,个人休假等) - 每个资源的每小时数已经预先计算好并且可用。
可以将一个资源分配给多个项目。
如果我们将项目视为垃圾箱,将资源视为对象,将小时视为对象体积,那么这就像垃圾箱打包问题一样。至少有两件事情使它偏离正式的装箱问题:
我觉得我可能会用垃圾箱包装角来追逐鹅。是否有更合适的算法?
答案 0 :(得分:1)
如果世界真的像你描绘的那样简单,那么似乎一个简单的队列就能满足你的约束:当项目到达时,将它们放在队列中。随着开发人员的出现,他们从队列中脱颖而出。只有当你的项目足够大而不能以这种方式完成时,你才需要为他们分配多个开发人员,你可以检测到这一点,并回溯并分配两个开发人员。
但所有这些都忽略了开发人员之间的协调,交接,依赖关系(在其他事情发生之前需要先做什么),有能力的开发人员拥有不同技能和经验的事实,甚至是经验丰富的开发人员,而不是无能或者超级巨星,速度差异可达10倍。