工作调度算法

时间:2014-03-02 22:36:05

标签: java algorithm knapsack-problem

我需要一个工作计划调度算法。 工人有很多工作时间。 他们还提供有关可用日期(小时)的信息。 可用时间高于每个时段的工作量。 该算法应生成最佳时间表,其中:

  • 每个时段都充满了大量的工人。
  • 每个工人都应该获得最长的连续时间。
Example:
2 days (d1, d2) with 8 hours each.
4 workers (d1,...,d4) with 8 hours workload each are available all days.
Optimal:
d1: from 9 am to 5pm: w1, w2
d2: from 9 am to 5pm: w3, w4
not Optimal:
d1: from 9 am to 1 pm: w1, w2
    from 1 pm to 5 pm: w2, w3
d2: from 9 am to 1 pm: w1, w2
    from 1 pm to 5 pm: w2, w3

这可能是背包问题吗?是否有一个通用的算法来解决它?一个近似的解决方案是可以的。

1 个答案:

答案 0 :(得分:1)

这个问题确实可以作为背包问题的具体情况来解决。请查看Knapsack.java或任何hundreds of other options求解器。