Algorithm 使用哪种移位覆盖算法

Algorithm 使用哪种移位覆盖算法,algorithm,scheduling,Algorithm,Scheduling,我只是想弄清楚在我的案例中应该使用哪种算法(员工计划) 假设我有一个班次,有n名员工在轮班。默认情况下,根据其可用性将其安排在班次上。例如,我可以在下午1点到11点之间轮班,两名员工在下午1点到9点之间工作。在这种情况下,晚上9点到11点之间没有覆盖范围 我想调动员工,使轮班的覆盖面最大化;e、 g.在上一个示例中,我将有一名员工从下午1点到9点,另一名员工从下午3点到11点 为了达到我已经安排了员工轮班的阶段,我使用了禁忌搜索算法,但是在这个场景中,我假设会有更适合使用的东西 谢谢 我建议您自

我只是想弄清楚在我的案例中应该使用哪种算法(员工计划)

假设我有一个班次,有n名员工在轮班。默认情况下,根据其可用性将其安排在班次上。例如,我可以在下午1点到11点之间轮班,两名员工在下午1点到9点之间工作。在这种情况下,晚上9点到11点之间没有覆盖范围

我想调动员工,使轮班的覆盖面最大化;e、 g.在上一个示例中,我将有一名员工从下午1点到9点,另一名员工从下午3点到11点

为了达到我已经安排了员工轮班的阶段,我使用了禁忌搜索算法,但是在这个场景中,我假设会有更适合使用的东西


谢谢

我建议您自己创建一个蛮力算法。处理所有组合,然后拒绝不可能或不希望的组合。这样做的原因是,您可能会对特定的轮班制度有自定义的注意事项。然后,您可以插入自己的因素(轮班休息、早班开始/晚班结束、午夜轮班或重叠轮班、某些轮班的员工薪酬较高、员工成本降低等)。。。这有点像旅行商算法,没有什么比暴力更好的了,尽管有些算法比其他算法更快或更优雅,因为它们在过程中更快地消除了组合。当您最终得到一个或多个可行的组合时,选择可能是任意的,但显然会影响未来的班次。

员工的特征是什么?他们每天都有自己的可用性定义(例如,从上午8点到下午5点可用),他们可能会在换班之前或之后做一些其他的工作,我正试图优化覆盖范围。他们也有每周工作的最小/最大小时数(但我现在可以忽略这一点)。除此之外,没有什么会影响在不同的时间段,在同一个班次上分配一个工人。你能把一个当班的工人换成一个不当班的工人吗?我不愿意。为了达到我希望优化所有班次覆盖率的目的,已经进行了一个调度阶段,使用禁忌搜索算法,根据各种约束(员工可用性/偏好、所需员工数量等)将员工分配到调度班次。现在,对于每个班次,我只想围绕分配给该班次的员工进行调整,以优化覆盖率(我知道,在第一个计划阶段之后这样做,每个班次可能没有足够的员工来实现100%覆盖率),并且工人在该班次中的工作时间不得超过8小时?并且该时间必须在一个连续的时间段内(不是例如1:00-5:00,6:00-10:00)?没有其他限制?是的,这是我的第一个想法,但我想找到一个快速而优雅的解决方案。。。如果我真的找不到任何适合我需要的算法,那就是我最终要做的