Как сценарий превращается в цифры на дашборде
Архитектура проекта устроена так, чтобы каждую цифру можно было проследить назад к сценарию и вперёд к визуализации.
Архитектура проекта устроена так, чтобы каждую цифру можно было проследить назад к сценарию и вперёд к визуализации.
scenarios/*.json
|
v
ScenarioConfig и аналитические формулы
|
+--> агрегированная проверка потоков
|
+--> DES на SimPy
|
v
метрики зон, очереди, завершения в окне
|
+--> площадь, штат, выводы, чувствительность
|
v
HTTP API / JSON -> браузерный дашборд
Входные данные
Файлы в scenarios/ хранят только параметры: поток, длительность, число
сортировщиков и ворот, тару, долю nonsort, параметры Парето, отказ и
случайность. Функция load_scenario_config() загружает их в ScenarioConfig
и проверяет базовые ограничения, например что логическая матрица групп
20 × 20 действительно содержит 400 направлений. Эта матрица не описывает
физические ступени автоматического сортировщика.
Расчётные слои
analytics.pyпереводит параметры в номинальные потоки и мощности.simulation.pyвыбирает расчётный движок.des/engine.pyпроводит КТЯ через события и ресурсы SimPy.des/metrics.pyотделяет завершения в окне от завершений в хвосте.runner.pyзапускает политики и собирает сравнение.
После DES des/area.py оценивает площадь по пикам очередей, insights.py
формирует русскоязычные выводы, а labor.py считает штат по отдельным нормам.
Как дашборд получает данные
src/robozon/web.py поднимает небольшой HTTP-сервер. Браузер запрашивает:
/api/scenarios— список сценариев и допустимые поля изменения;/api/compare— результат одной или нескольких политик;/api/sensitivity— серию прогонов с изменением одного параметра;/api/monte-carlo— серию случайных DES-прогонов.
Файлы web/index.html и web/static/app.js не пересчитывают логистику в
браузере. Они показывают ответ сервера и добавляют форматирование, графики и
подсказки. Поэтому при сомнении в цифре сначала смотрите JSON, затем код
метрики, а не изображение на экране.
Почему это полезно для защиты
У каждой важной карточки на дашборде есть метка источника: DES, DES→ или
«Аналитика». Это позволяет сказать, что именно измерено симуляцией, что
выведено из неё формулой и что является входным допущением.