按照google OR工具教程(https://developers.google.com/optimization/scheduling/employee_scheduling)中的护士调度示例,我正在尝试为问题添加更多约束。
例如,有24个班次来满足诊所24小时的人员配备; (1)护士不能连续工作超过4个班次而没有至少1个班次休息时间;(2)护士需要每16个班次睡8个班次。
如何实现这两个约束?
如果在OR工具中无法实现,还有另一种方法可以实现吗?
我只能修补累积的约束:
for j in range(num_nurses):
solver.Add(solver.Sum([shifts[(j, i)] > 0
for i in range(num_days)]) <= 6)
感谢有人可以指导我添加两个约束!谢谢!
答案 0 :(得分:0)
是,但在此示例中不是。 请查看以下更完整的轮班计划示例:
https://github.com/google/or-tools/blob/stable/examples/python/shift_scheduling_sat.py