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 місяців підтримки

Отримайте консультацію: ми проаналізуємо дані, оберемо стек та запропонуємо рішення під ключ. Зв'яжіться з нами для оцінки вашого проекту.