Я новичок в Simpy, и у меня возникли проблемы с выяснением того, как смоделировать планировщик процессов со сложными зависимостями.
Общее описание моей проблемы:
- У меня есть склад, который получает коробки с предметами через вход. Ящики помещаются в очередь, где они ждут обработки.
- Каждая коробка имеет номер назначения и должна быть доставлена туда с помощью конвейерной ленты. Ленточный конвейер обслуживает несколько помещений.
- Оператор просматривает коробки в очереди и ставит коробку на соответствующую ленту конвейера только в том случае, если и лента, и помещение назначения свободны. Оператор отправляет ящики по порядку, но пропускает ящики, которые не могут быть обработаны.
- После открытия ящика внутри комнаты требуется определенное время для хранения предмета. В это время в комнату не могут быть доставлены другие ящики.
- После того, как объект хранится, пустая коробка отправляется к выходу со склада с помощью того же конвейера, на который она пришла.
- Оператор всегда знает, какие конвейерные ленты и помещения свободны.
Мой вопрос заключается в том, как смоделировать этот оператор. Я не нашел пока элегантного способа сделать это в Simpy. По сути, я хочу иметь процесс, который просыпается только при выполнении следующих трех условий: а) комната свободна; б) в очереди есть ящик, адресованный для этой комнаты, и в) лента для прохода в комнату свободна.
Любая идея, совет или указатель на существующий пример приветствуются. Благодарю вас!