/Skill-Up

Матричное моделирование пассажиропотоков для оптимизации планировки здания.

Primary LanguagePython

Привет с Васильевского острова! 👋🏻

В этом репозитории вы можете просмотреть исходный код нашего программного обеспечения и дополнительные материалы к проекту.

Содержание:

Взаимодействие с программой

Порядок действий пользователя, user-experience:

  • Запуск исполняемого файла
  • Создание нового проекта
    • Задание имени нового проекта
  • Добавление модели (PNG/SVG чертежа) в программу
  • Запуск окошка симуляции
  • Ввод необходмых параметров
  • Запуск симуляции
  • Конец симуляции
  • Открытие проекта
  • Выбор *.json файла с симуляцией
  • Запуск визуализатора
  • Анализ проблемных зон

Результаты работы

Изначально мы смоделировали поведение агентов в текущей планировке Восточного вокзала. Результаты представлены ниже:

Построение карт - неоптимизированная планировка

После того как программа построила цветовые карты загруженности, мы можем оптимизировать планировку вручную, ориентируясь на данные о проблемных зонах. На цветовой карте можно явно выделить места, где проход слишком узкий, помещения, в которых не хватает выходов/входов и основные траектории перемещения людей.

image

image

Проведя анализ - меняем планировку и запускаем симуляцию ещё раз.

image

Очереди практически перестали появляться, пассажиропотоки перемещаются равномерно, не застревая в каких-либо местах.

Алгоритмизация

Построение траекторий, алгоритм A* (A-star)

A-star — в информатике и математике, алгоритм поиска по первому наилучшему совпадению на графе, который находит маршрут с наименьшей стоимостью от одной вершины к другой. Этот алгоритм был впервые описан в 1968 году Питером Хартом, Нильсом Нильсоном и Бертрамом Рафаэлем.

Alt Text

Поведение агентов

За время конкурса наша команда создала модель поведения агента, которая позволяет обобщённо симулировать передвижение реального человека.

image

Основные файлы

visualize.py - Главный скрипт визуализатора. С помощью передачи аргументов через командную строку вы можете запустить исключительно визуализацию проекта.

Аргументы

  • -pn, --PROJECT_NAME - Имя проекта, визуализацию из которого вы хотите запустить
  • -sn, --SIM_NAME - Название самого *.json файла, симуляцию из котрого вы хотите запустить.

simulator.py

Аргументы

  • -pn, --PROJECT_NAME - Project name
  • -sn, --SIM_NAME - Simulation name
  • -ss, --SCREEN_SIZE - Visualizer window dimensions
  • -gs, --GRID_SIZE - Grid dimensions
  • -gcs, --GRID_CELL_SIZE - Grid cell size in pixels
  • -svgs, --SVG_SCALE - Image scale
  • -svgd, --SVG_DELTA - Image delta
  • -mf, --MODEL_FILENAME - Image filename
  • -fn, --FONT_NAME - Font name
  • -aa, --AGENTS_AMOUNT - Maximum simulation agents amount
  • -psr, --PASSENGERS_SPAWN_RECTS - Rectangle, where agents ar
  • -g, --goal - Target for all agents