Я пишу код для автоматического создания смен для моих работников.
Я уже смог создать несколько ограничений:
- Каждая смена за день назначается одному работнику
- Каждый работник не может работать более 8 часов в день
- Каждый работник должен работать [ # minShifts , # maxShifts ] часов в неделю
- Каждый работник не может работать в разных комнатах одновременно
- Каждый работник не может работать более чем в 2 разных комнатах в день
Пока все хорошо; теперь я сталкиваюсь с другим ограничением, я не могу придумать, как кодировать: каждый работник не может работать более чем на 2 разных диапазонах в день .
Я имею в виду, что я не хочу, чтобы человек работал (например,) 08.30-10.30, 12.30-13.30 и 16.30-18.30, но ограничиваю назначенные диапазоны двумя.
Учитывая, что у меня есть shifts[numWorkers, numDays, numShifts]
, как мне установить это ограничение?