Интеллектуальная система поддержки принятия решений (СППР) для оперативной диспетчеризации пожарно-спасательной техники в условиях стохастических городских заторов и дефицита спецтехники (автолестниц).
Проект разработан в рамках бакалаврской ВКР в МГТУ им. Н.Э. Баумана (Кафедра «Прикладная математика, информатика и ИВТ», 2026 г.).
Классические навигационные алгоритмы (A*, Дейкстра) используют «жадную» эвристику выбора ближайшего депо. При возникновении одновременных вызовов это приводит к «ресурсному голоду» — дефицитные автолестницы (АЛ, ~20% парка) расходуются на простые пожары, оставляя высотные объекты без прикрытия.
Программный комплекс построен на базе двухуровневой распределенной архитектуры с разделением симуляции и вычислительного ядра:
- Исполнительный уровень (AnyLogic / Java): Микроскопическое агентное моделирование на реальном графе OpenStreetMap (OSM), стохастический поток Бернулли (p ∈ [0.2, 0.6]), динамические зоны заторов (
jamZone). - Интеграционный шлюз (Pypeline / TCP Socket): Неблокирующий межпроцессный сокетный протокол с синхронизацией виртуального времени симуляции (
pause()/resume()) на период прямого прохода нейросети. - Ядро интеллекта (Python / PyTorch): Глубокая Q-сеть (DQN) с буфером воспроизведения опыта (Experience Replay) и адаптивным расчетом функции штрафов.
Задача управления гарнизоном формализована как Марковский процесс принятия решений (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).
Для взаимодействия с системой разработаны два специализированных графических интерфейса:
Динамическая ГИС-карта с анимацией движения техники по дорожному графу, оперативный учет резерва сил по гарнизону и рекомендательная панель ИИ с поддержкой ручного перехвата управления (Human-in-the-Loop):
Управление стресс-сценариями (интенсивность потока пожаров, коэффициент загруженности дорог, скорость движения), мониторинг метрик обучения в реальном времени и инструменты сохранения/загрузки весов модели (.pth):
Снижение среднеквадратичной ошибки (MSE Loss), затухание параметра исследования ε-greedy и стабилизация функции вознаграждения (Average Reward) подтверждают устойчивую сходимость алгоритма:
Сравнительный анализ базовой пространственной эвристики и разработанного 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)
-
Клонируйте репозиторий:
git clone [https://github.com/miradimo/fire-dispatch-drl.git](https://github.com/miradimo/fire-dispatch-drl.git) cd fire-dispatch-drl -
Установите Python-зависимости:
pip install -r requirements.txt -
Откройте проект MCHS.alp в среде AnyLogic.
-
Убедитесь, что в свойствах компонента Pypeline указан путь к вашему интерпретатору Python.
-
Запустите симуляцию. Скрипт python/agent.py подключится автоматически.
Нистратов Радимир Алексеевич
Выпускник МГТУ им. Н.Э. Баумана (ИВТ, 2026)
Telegram: [@daamnqt]
Email: [nistratov7@gmail.com]



