Почему правило распределения меняет результат
Поток по 400 направлениям неравномерен: в модели 20% направлений получают 80% товаров. Поэтому недостаточно посчитать общую мощность линий. Важно, как имен
Поток по 400 направлениям неравномерен: в модели 20% направлений получают 80% товаров. Поэтому недостаточно посчитать общую мощность линий. Важно, как именно горячие направления и КТЯ распределяются между линиями и как это влияет на очереди, заполнение выходной тары и площадь.
Три правила в дашборде
| Название в дашборде | Техническое имя | Идея |
|---|---|---|
| Закрепление по направлениям | throughput-first |
Каждое направление закреплено за своей линией. |
| Приоритет ближайшего рейса | departure-priority |
Сначала обслуживается поток, которому раньше нужно уехать. |
| Балансировка нагрузки | balanced-load |
Следующая КТЯ идёт на наименее загруженную линию. |
Что показывает контрольное сравнение
Одинаковые условия: «12 линий · штатный режим с разбросом», seed=42,
CV=0,25, прогрев 4 ч, окно 24 ч.
| Правило | Сквозной выход, товаров/ч | Среднее время, мин | Площадь, м² | Почему |
|---|---|---|---|---|
| Закрепление по направлениям | 40 266 | 461,6 | 43 077 | Горячие направления перегружают свои линии, а свободные линии не могут им помочь. |
| Приоритет ближайшего рейса | 99 399 | 40,0 | 23 434 | Хорошо поддерживает ближайшие рейсы, но допускает небольшую долю частичных КТЯ. |
| Балансировка нагрузки | 99 450 | 40,3 | 23 445 | Равномерно использует линии и закрывает выходные КТЯ полностью в этом прогоне. |
Разница в несколько десятков товаров между двумя последними политиками не является основанием для громких заявлений. Она меньше естественного разброса между случайными прогонами. Выбор балансировки основан на понятном правиле, ровной загрузке и отсутствии частичных выходных КТЯ в контрольном результате.
В чём компромисс
Закрепление направления
+ проще физически объяснить
- горячие направления создают локальную очередь
Приоритет рейса
+ поддерживает ближайшую отправку
- нужен достоверный график рейсов; возможны неполные КТЯ
Балансировка нагрузки
+ выравнивает линии и снижает локальные пики
- требует физического сведения потоков к общему накопителю направления
Как повторить сравнение
.venv/bin/python -m robozon.runner scenarios/production-12-lines.json \
--policies throughput-first departure-priority balanced-load --json
Результат следует проверять серией прогонов, если вопрос касается устойчивости, а не только одного фиксированного примера. Об этом — в разборе Монте-Карло.