Google OR Tools:具有可用性约束的员工计划

时间:2017-11-15 16:02:03

标签: python scheduling constraint-programming or-tools

根据here的护士安排示例,我正在尝试为问题添加更多约束。例如:护士A周一不能轮班2和3,护士B只能在所有日子里轮班1和3班。

如何实现这样的约束呢?

如果在OR工具中无法实现,请提供有关如何实现此类内容的建议。

1 个答案:

答案 0 :(得分:2)

对于您的示例,您需要做的就是添加一个约束,以防止将转移分配给该特定护士:

   solver.Add(shifts[(2, 1)] != 3)  # Nurse 2 cannot be assigned shift 3 on day 1

更一般地说:

   solver.Add(shifts[(j, i)] != n)  # Nurse j cannot be assigned shift n on day i

显然,如果可能的话,你会想要在循环中这样做以简化它。