3

我有一组Employees,每个员工都有一个关联的开始时间和结束时间。在 Python 中,每个员工都是一个命名元组。

Employee = namedtuple("Employee", ["start_time", "end_time", "name"])

开始时间和结束时间是 datetime.time() 对象。例如,veronica = Employee(datetime.time(9, 30, 0), datetime.time(14, 30, 0), "Veronica")

我正在使用 Google OR 工具进行调度优化,并且我想添加一个约束,只允许在该时间范围内有空的人被安排在指定的班次中。

我该怎么做呢?谢谢。任何帮助深表感谢!

4

1 回答 1

0

您为什么不预先计算每个员工和每个班次,以筛选出哪个员工可以在哪个班次上工作。然后只为兼容的班次添加 1 个布尔变量?

更一般地,对于轮班安排,您可以查看:

https://github.com/google/or-tools/blob/stable/examples/python/shift_scheduling_sat.py

于 2019-03-23T11:16:21.593 回答