Есть ли в задаче планирования медсестры ограничение, ограничивающее количество последовательных смен? - PullRequest
0 голосов
/ 20 мая 2019

Следуя примеру планирования медсестры из учебника по инструментам Google OR (https://developers.google.com/optimization/scheduling/employee_scheduling), Я пытаюсь добавить дополнительные ограничения к проблеме.

Например, есть 24 смены, чтобы встретить 24 часа укомплектования персоналом в клинике; (1) медсестры не могут работать более 4 смен подряд без перерыва в 1 смену, и (2) медсестры должны спать в течение 8 смен после каждых 16 смен.

Как можно реализовать эти два ограничения?

Если это невозможно в инструментах OR, есть ли другой способ, где это может быть реализовано?

Я мог только возиться с накопившимся ограничением:

Каждая медсестра работает не более 6 дней в неделю.

for j in range(num_nurses):
    solver.Add(solver.Sum([shifts[(j, i)] > 0
                           for i in range(num_days)]) <= 6)

Цените, если кто-то может подсказать мне, добавив два ограничения! спасибо!

1 Ответ

0 голосов
/ 20 мая 2019

Да, но не в этом примере.Пожалуйста, посмотрите на более полный пример планирования смены в:

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

...