Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚒 СППР маршрутизации гетерогенного пожарного автопарка на базе Deep Q-Network (DQN)

Интеллектуальная система поддержки принятия решений (СППР) для оперативной диспетчеризации пожарно-спасательной техники в условиях стохастических городских заторов и дефицита спецтехники (автолестниц).

Проект разработан в рамках бакалаврской ВКР в МГТУ им. Н.Э. Баумана (Кафедра «Прикладная математика, информатика и ИВТ», 2026 г.).


📌 Ключевая проблема

Классические навигационные алгоритмы (A*, Дейкстра) используют «жадную» эвристику выбора ближайшего депо. При возникновении одновременных вызовов это приводит к «ресурсному голоду» — дефицитные автолестницы (АЛ, ~20% парка) расходуются на простые пожары, оставляя высотные объекты без прикрытия.


🏗 Архитектура системы

Программный комплекс построен на базе двухуровневой распределенной архитектуры с разделением симуляции и вычислительного ядра:

architecture

  1. Исполнительный уровень (AnyLogic / Java): Микроскопическое агентное моделирование на реальном графе OpenStreetMap (OSM), стохастический поток Бернулли (p ∈ [0.2, 0.6]), динамические зоны заторов (jamZone).
  2. Интеграционный шлюз (Pypeline / TCP Socket): Неблокирующий межпроцессный сокетный протокол с синхронизацией виртуального времени симуляции (pause() / resume()) на период прямого прохода нейросети.
  3. Ядро интеллекта (Python / PyTorch): Глубокая Q-сеть (DQN) с буфером воспроизведения опыта (Experience Replay) и адаптивным расчетом функции штрафов.

🧠 Математическая модель (MDP & DQN)

Задача управления гарнизоном формализована как Марковский процесс принятия решений (MDP):

  • Вектор состояния ($S_t \in \mathbb{R}^{13}$): Ранг инцидента (severity), евклидовы расстояния до всех 4 депо (distances), текущий матричный остаток свободных автоцистерн (АЦ) и автолестниц (АЛ) по каждой базе (station_status).
  • Пространство действий ($A_t \in {0, 1, 2, 3}$): Дискретный выбор целевой пожарной части для высылки расчета.
  • Функция вознаграждения ($R$): $R = -T_{\text{пути}} \times 10$, штрафующая агента за фактическое время нахождения техники в пути и стимулирующая стратегическое резервирование спецтехники.
  • Архитектура сети: Полносвязный перцептрон (MLP) $13 \to 64 \to 64 \to 4$ с функциями активации ReLU, оптимизатором Adam (LR = 0.001) и критерием среднеквадратичной ошибки (MSE Loss).

🖥 Пользовательские интерфейсы (HMI)

Для взаимодействия с системой разработаны два специализированных графических интерфейса:

1. Рабочее место оперативного диспетчера

Динамическая ГИС-карта с анимацией движения техники по дорожному графу, оперативный учет резерва сил по гарнизону и рекомендательная панель ИИ с поддержкой ручного перехвата управления (Human-in-the-Loop):

ui_dispatcher

2. Панель системного администратора

Управление стресс-сценариями (интенсивность потока пожаров, коэффициент загруженности дорог, скорость движения), мониторинг метрик обучения в реальном времени и инструменты сохранения/загрузки весов модели (.pth):

ui_admin


📊 Результаты вычислительных экспериментов

1. Сходимость обучения DQN

Снижение среднеквадратичной ошибки (MSE Loss), затухание параметра исследования ε-greedy и стабилизация функции вознаграждения (Average Reward) подтверждают устойчивую сходимость алгоритма:

benchmark_results

2. Сравнительный бенчмаркинг (N = 6000 измерений)

Сравнительный анализ базовой пространственной эвристики и разработанного DQN-агента при детерминированных условиях симуляции (seed = 1):

Сценарий нагрузки Алгоритм управления Мат. ожидание M[T], мин Медиана Me, мин Дисперсия D[T] Доля нарушений регламента ФЗ №123 (> 10 мин)
Штатный режим
(p = 0.2, k = 4)
Базовый (жадный) 6.27 3.99 22.89 26.26%
СППР (DQN) 3.08 (−50.9%) 2.62 2.36 1.51%
Пиковая нагрузка
(p = 0.6, k = 8)
Базовый (жадный) 12.68 7.25 117.60 40.44%
СППР (DQN) 4.82 (−61.9%) 4.41 11.95 3.70%

💻 Стек технологий

  • Simulation & GIS: AnyLogic, OpenStreetMap (OSM), Java
  • AI / Deep Learning: Python, PyTorch, NumPy
  • Inter-Process Communication: Pypeline (TCP/IP Sockets, JSON)
  • Optimization & Math: Markov Decision Processes (MDP), Deep Q-Networks (DQN)

🚀 Быстрый старт

  1. Клонируйте репозиторий:

    git clone [https://github.com/miradimo/fire-dispatch-drl.git](https://github.com/miradimo/fire-dispatch-drl.git)
    cd fire-dispatch-drl
  2. Установите Python-зависимости:

    pip install -r requirements.txt
    
  3. Откройте проект MCHS.alp в среде AnyLogic.

  4. Убедитесь, что в свойствах компонента Pypeline указан путь к вашему интерпретатору Python.

  5. Запустите симуляцию. Скрипт python/agent.py подключится автоматически.

👤 Автор

Нистратов Радимир Алексеевич

Выпускник МГТУ им. Н.Э. Баумана (ИВТ, 2026)

Telegram: [@daamnqt]

Email: [nistratov7@gmail.com]

About

Deep Q-Network (DQN) & AnyLogic decision support system for emergency vehicle dispatching in urban environments

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages