使用哪种移位覆盖算法

时间:2014-11-02 14:15:36

标签: algorithm scheduling

我只想弄清楚我应该使用哪种算法(员工安排)

说我有班次,班次安排了n名员工。默认情况下,它们会根据其可用性安排到班次。例如,我可以在下午1点到晚上11点之间轮班,2名员工从下午1点到晚上9点工作。在这种情况下,晚上9点到晚上11点之间没有报道

我想让员工四处移动,以便尽量扩大班次的覆盖范围;例如在上一个例子中,我将从下午1点到晚上9点有1名员工,另一名员工从下午3点到晚上11点。

为了进入我已经将员工分配到轮班的阶段,我使用了禁忌搜索算法,但在这种情况下,我假设有更适合使用的东西?

谢谢!

1 个答案:

答案 0 :(得分:1)

我会建议你自己创作的蛮力算法。适合处理所有组合,然后拒绝不可能或不需要的组合。原因是您可能会在特定的Shift系统上有自定义警告。那么你可以插入你自己的因素(轮班之间的休息,提前开始/延迟结束,午夜或重叠的班次,一些班次更高的工作人员支付,减少员工成本等)......有点像旅行推销员算法没有什么比蛮力更好,尽管有些算法比其他算法更快或更优雅,因为它们在过程中更快地消除了组合。当你最终得到一个或多个可行的组合时,那么选择可能是任意的 - 但显然会影响未来的变化。