我正在开发一个自动化的员工调度应用程序,使用带有约束的禁忌搜索。
我已经受到了很多工作限制(员工的最短工作时间、每班所需的员工人数、不得一起工作的员工……)。
自动计划器在每次迭代中尝试不同的移动(添加/删除/交换员工),评估所有生成的解决方案的约束(每次移动 1 个解决方案)并选择惩罚最小的解决方案。
我现在正在尝试实施一个约束,例如“如果员工 A 被安排在轮班,那么员工 B 也必须被安排在同一个班次”。
我的问题是我不知道如何实现这一点。
假设当前的举措是将员工 A 安排在无人值班的轮班 S。如果评估了我试图创建的约束,那么该解决方案将立即受到惩罚,因为员工 A 被安排在没有员工 B 的 S 上。因此,这解决方案可能永远不会被选中,即使它是一个好的解决方案,而且员工 A 或 B 都不会开始工作。
有人知道吗?
谢谢