首页 > 解决方案 > 使用 Google OR 工具在类变量上添加约束

问题描述

我有一组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 工具进行调度优化,并且我想添加一个约束,只允许在该时间范围内有空的人被安排在指定的班次中。

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

标签: pythonor-tools

解决方案


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

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

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


推荐阅读