Перейти к содержимому
Robozon: база знаний
Esc
navigateopen⌘Jpreview
На этой странице

Как сценарий превращается в цифры на дашборде

Архитектура проекта устроена так, чтобы каждую цифру можно было проследить назад к сценарию и вперёд к визуализации.

Архитектура проекта устроена так, чтобы каждую цифру можно было проследить назад к сценарию и вперёд к визуализации.

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→ или «Аналитика». Это позволяет сказать, что именно измерено симуляцией, что выведено из неё формулой и что является входным допущением.

Эта страница была полезной?