2017-07-02 50 views
0

我正在开发一个自动化员工调度应用程序,使用带约束条件的禁忌搜索。禁忌搜索:如何实施“员工成对工作”约束条件

我已经得到了很大的制约工作(最低小时的员工,每班次所需员工数量,员工谁不能一起工作,...)。

的自动规划器尝试不同的动作每次迭代(添加/删除/交换雇员),评估针对所有产生的解的约束(每移动1种溶液),并选取具有最小惩罚的溶液。

我现在想实现的约束,如“如果雇员被安排上移,那么员工B也必须安排在同一个转变”。

我的问题是,我不知道如何实现这一点。

假设当前的举措是将员工A安排在无人职位的班次S上。如果我试图创建的约束被评估,那么该解决方案将立即受到惩罚,因为员工A在S上没有员工B因此,即使这个解决方案是一个好的解决方案,也不可能选择这个解决方案,并且员工A或B都不能工作。

有没有人有什么想法?

感谢

回答

1

几点建议:

为无人值守转变的处罚应比罚款不成对的朋友大。

您可以让模拟退火 - 所以,在点球瞬间将增加有时接受。

你可以有一个不同的举动 - ,增加/删除更多的人,并喜欢“朋友”一起移动的举动。

+0

谢谢,我已经虽然选项1和3,但我真的想避免修改规划师的核心,如果我能帮助它。我会先尝试其他1和2,但它不起作用,我将不得不添加新的动作。 – David