不同长度轮班的护士排班

2024-04-28 19:33:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试调整this code中的班次安排问题,以使用不同长度的班次,但我的任何尝试都没有成功。包含此功能的最佳方法是什么?你知道吗

在代码中,我们在以下部分(第194行)中输入shitfs的类型:

    shifts = ['OFF', 'MORNING', 'AFTERNOON', 'NIGHT']

通知需求的代码如下:

    weekly_cover_demands = [
        (2, 3, 1),  # Monday
        (2, 3, 1),  # Tuesday
        (2, 2, 2),  # Wednesday
        (2, 3, 1),  # Thursday
        (2, 2, 2),  # Friday
        (1, 2, 3),  # Saturday
        (1, 3, 1),  # Sunday
    ]

只有在需要某个轮班的员工时,才会收到此片段,但在我的问题中,我需要不同长度的轮班(例如7小时和8小时)。你知道吗

我尝试了两种方法(直到现在都没有成功):

  1. 为每种长度创建单独的需求:
    weekly_cover_demands = [
        (2, 3, 1, 7),  # Monday
        (1, 0, 1, 8),  # Monday
        (2, 3, 1, 7),  # Tuesday
        (2, 0, 1, 8),  # Tuesday
        (2, 2, 2, 7),  # Wednesday
        (1, 1, 1, 8),  # Wednesday
        (3, 3, 3, 7),  # Thursday
        (2, 3, 1, 8),  # Thursday
    ]
  1. 在元组中使用列表。你知道吗
    weekly_cover_demands = [
        ([2, 1], [3, 0], [1, 1]),  # Monday
        ([2, 2], [3, 0], [1, 1]),  # Tuesday
        ([2, 1], [2, 1], [2, 1]),  # Wednesday
        ([3, 2], [3, 3], [3, 1]),  # Thursday
    ]

但没有一个工作得很好。你知道吗

如何利用or-tools的优势包含此特性?你知道吗


Tags: 方法代码功能codecoverthis小时轮班
1条回答
网友
1楼 · 发布于 2024-04-28 19:33:47

我相信你误解了(2,3,1)的语义。 这意味着两个早班,三个下午,一个晚上。你知道吗

在后面加一个数字也没用。你知道吗

相关问题 更多 >