Разработка AI-системы оптимизации маршрутов общественного транспорта

Каждое утро тысячи пассажиров ждут автобус, не зная точного времени прибытия. Пробки, ДТП, поломки — фиксированное расписание превращается в фикцию. Мы построили AI-систему, которая предсказывает пассажиропоток с точностью до 15 минут и динамически корректирует интервалы движения. Результат: время о

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    714
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1006

Каждое утро тысячи пассажиров ждут автобус, не зная точного времени прибытия. Пробки, ДТП, поломки — фиксированное расписание превращается в фикцию. Мы построили AI-систему, которая предсказывает пассажиропоток с точностью до 15 минут и динамически корректирует интервалы движения. Результат: время ожидания снижается на 20%, операционные затраты — на 15%.

Стек: LightGBM, генетические алгоритмы, MILP-оптимизация. Все модели работают в реальном времени на потоковых данных. Наш опыт — более 8 лет в ML-продакшене, 15+ транспортных проектов. В этой статье расскажем, как мы строим прогнозные модели, настраиваем динамическое расписание и управляем парком электробусов.

Почему традиционные методы не справляются?

Фиксированное расписание не учитывает реальные колебания спроса. В час пик автобусы переполнены, а ночью ходят полупустыми. Диспетчеры реагируют постфактум, когда сбой уже произошел. AI же анализирует данные AFC, GPS, камер и приложений, строит прогноз и перестраивает расписание каждые 1-2 часа. Это снижает время ожидания на 20% и повышает заполняемость на 15%.

Как AI анализирует пассажиропотоки?

Собираем данные из нескольких источников:

  • Турникеты (AFC): точное время входа/выхода, тип билета
  • GPS-трекеры: реальное местоположение, отклонение от расписания
  • Камеры в салоне: YOLOv8 + трекинг подсчитывает пассажиров
  • Мобильное приложение: геопозиция с согласия пользователей

Для прогноза используем LightGBM с лаговыми признаками за 1, 7 и 14 дней, скользящим средним, а также данными о погоде и праздниках:

import pandas as pd import numpy as np from lightgbm import LGBMRegressor class PassengerFlowPredictor: """Прогноз пассажиропотока на остановке по 15-минутным интервалам""" def build_features(self, df): df = df.copy() df['hour'] = df['timestamp'].dt.hour df['minute_bin'] = df['timestamp'].dt.minute // 15 df['dayofweek'] = df['timestamp'].dt.dayofweek df['is_weekend'] = df['dayofweek'].isin([5, 6]).astype(int) df['month'] = df['timestamp'].dt.month # Лаги: те же интервалы в предыдущие периоды for lag_days in [1, 7, 14]: df[f'lag_{lag_days}d'] = df['passengers'].shift(lag_days * 96) # 96 интервалов/день # Скользящее среднее df['ma_7d'] = df['passengers'].rolling(7 * 96).mean() return df def train_and_predict(self, historical_df, forecast_horizon=96): df = self.build_features(historical_df) feature_cols = ['hour', 'minute_bin', 'dayofweek', 'is_weekend', 'month', 'lag_1d', 'lag_7d', 'lag_14d', 'ma_7d', 'is_holiday', 'weather_temp', 'weather_rain'] train = df.dropna(subset=feature_cols + ['passengers']) model = LGBMRegressor(n_estimators=300, learning_rate=0.05, num_leaves=64) model.fit(train[feature_cols], train['passengers']) # Прогноз на следующие 24 часа future = df.tail(forecast_horizon)[feature_cols] return model.predict(future).clip(min=0) 

Модель обучается на исторических данных и каждые 15 минут выдает прогноз на ближайшие 24 часа. Точность: MAE 3-5 пассажиров на остановку.

Почему динамическое расписание лучше фиксированного?

Фиксированное расписание не адаптируется к колебаниям спроса: в час пик автобусы переполнены, ночью — полупустые. Динамическое расписание корректирует интервалы (headway) каждые 1–2 часа на основе прогноза. Оптимальный headway рассчитывается по формуле:

Формула оптимального headway `headway* = sqrt(2 × вместимость × стоимость_рейса / (спрос × стоимость_ожидания))` Вывод основан на работе Mohring (1972), адаптирован под ML.
Параметр Фиксированное расписание Динамическое расписание
Время ожидания пассажиров Высокое в непик Снижение на 20%
Заполняемость мест Ниже 50% в непик Выше 85% в пик, 60% в непик
Реакция на сбои Только в следующем цикле Мгновенная перестройка

При выходе транспорта из строя AI перераспределяет интервалы между остающимися машинами — пассажиры не замечают сбоя.

Сравнение методов оптимизации интервалов

Метод Сложность Точность Адаптивность
Фиксированный headway Низкая Низкая Отсутствует
Динамический headway (ML) Средняя Высокая Высокая
Demand Responsive (DRT) Высокая Очень высокая Полная

Как мы оптимизируем маршрутную сеть?

Используем генетический алгоритм (GA) для поиска оптимальной конфигурации маршрутов. Критерии:

  • Покрытие: 90% жителей в шаговой доступности (500 м) от остановки
  • Среднее число пересадок ≤ 2
  • Минимизация дублирования параллельных маршрутов

GA перебирает тысячи вариантов за час, что недоступно ручному планированию. Для малонаселённых зон внедряем Demand Responsive Transport (DRT): пассажир запрашивает поездку в приложении, алгоритм объединяет попутные запросы и строит маршрут мини-буса в реальном времени (VRP-solver). Дополнительно проводим транспортное моделирование на цифровом двойнике города, чтобы оценить нагрузку на сеть.

Управление парком и зарядка электробусов

Оптимизируем не только маршруты, но и количество машин на линии. MILP-модель минимизирует пустые пробеги из депо, учитывая техническое состояние. Для электробусов (ЛиАЗ 6274, Yutong E12) прогнозируем расход энергии на маршруте с учётом рельефа и нагрузки. Строим график зарядки: до 70% ночью по дешёвому тарифу, остальное — на конечных остановках. Гарантируем достаточный заряд к началу рейса.

Как внедрить систему?

  1. Аудит текущей сети и сбор данных (AFC, GPS, GTFS). 2-3 недели.
  2. Разработка ML-моделей (прогноз пассажиропотока, оптимизация headway). 6-8 недель.
  3. Интеграция с городскими системами (АСУДД, диспетчерские). 4-6 недель.
  4. Тестирование на исторических данных и пилотный запуск на 1-2 маршрутах. 4 недели.
  5. Развёртывание на всю сеть, обучение диспетчеров, мониторинг. 4-6 недель.

Итого: базовая платформа — 4-5 месяцев, с DRT и электробусами — до 7 месяцев. Стоимость рассчитывается индивидуально.

Что входит в нашу работу

  • Бизнес-аналитика и аудит маршрутной сети
  • ML-модели: прогноз, оптимизация, DRT
  • Интеграция с GTFS, АСУДД, мобильными приложениями
  • Развёртывание on-prem или cloud
  • Документация, обучение, 6 месяцев поддержки

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