0

我是谷歌或工具的新手,目前我正在解决员工调度问题。该问题有一个约束条件,即根据轮班的客流量,将员工分配到轮班。每个员工从 1 到 n 进行排名,并被分配到班次,这样排名更高的员工就会被分配到更高的班次。我有轮班优先级和员工等级的数据,但我无法继续处理要提供给求解器的约束。请帮忙。

4

2 回答 2

2

我对模型的了解还不够,无法给出权威的答案。但我们走了。我会考虑将这部分作为目标而不是硬约束。假设我们使用二进制变量对员工的班次分配进行建模:

x[i,k] = 1 if employee i is assigned to shift k
         0 otherwise

然后在目标中添加一个术语

sum( (i,k), x[i,k] * rank[i] * footfall[k])

使得这个术语最大化。

于 2018-06-25T10:00:22.017 回答
0

You can have a look at this starting example:

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

于 2019-03-23T11:07:36.307 回答