Разработка AI-системы управления трафиком и светофорами

Разработка AI-системы управления трафиком и оптимизация светофоров

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

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

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

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

Разработка AI-системы управления трафиком и оптимизация светофоров

Светофоры с фиксированным циклом — причина 30% задержек в городском трафике. Каждый день миллионы водителей теряют часы в пробках, а города несут экономические потери. Мы разрабатываем адаптивные системы на основе многоагентного RL (MARL), которые снижают среднее время ожидания на 15-30%. Например, в Ханчжоу внедрение такой системы сократило заторы на 22%, а в Саудовской Аравии — на 18%. Наш подход использует MARL: каждый перекрёсток — агент с локальным наблюдением, который оптимизирует фазы в реальном времени. Экономия для города с населением 500 тыс. человек может составить до $90k–130k в год за счёт снижения расхода топлива и времени в пути. Получите консультацию по вашему проекту — оценим за 2 дня.

Почему RL и MARL — лучший подход для управления светофорами?

Фиксированные циклы работают хорошо при предсказуемом потоке, но в реальности трафик непредсказуем. Адаптивные системы (SCOOT, SCATS) требуют ручной калибровки и плохо справляются с аномалиями. RL-агент оптимизирует фазы напрямую под текущий трафик без ручного тюнинга и адаптируется к ДТП, дождям, мероприятиям. Обучение идёт в симуляторе, затем переносится на реальные контроллеры. По нашим тестам, MARL на 20-30% эффективнее SCOOT по среднему времени в пути.

Задача: N перекрёстков, у каждого K фаз (направлений). Агент выбирает текущую фазу и длительность → минимизация суммарного времени ожидания.

Среда симуляции и обучения

CityFlow — среда симуляции

import cityflow # конфигурация города из JSON (дороги, перекрёстки, трафик) eng = cityflow.Engine('config.json', thread_num=4) # состояние перекрёстка lane_vehicles = eng.get_lane_vehicle_count() # машин в каждой полосе lane_waiting = eng.get_lane_waiting_vehicle_count() current_phase = eng.get_current_phase(intersection_id) # действие: сменить фазу eng.set_tl_phase(intersection_id, new_phase) eng.next_step() 

Для детальной микросимуляции используем также SUMO — он точнее моделирует поведение отдельных автомобилей.

Gym-совместимая среда

class TrafficEnv(gym.Env): def __init__(self, n_intersections, config_path): self.n = n_intersections self.eng = cityflow.Engine(config_path) # observation per intersection: vehicle counts + waiting + phase obs_dim = 12 + 12 + 8 # 12 подъездных полос, 8 фаз self.observation_space = spaces.Box( low=0, high=100, shape=(n_intersections, obs_dim)) # action: выбор фазы для каждого перекрёстка self.action_space = spaces.MultiDiscrete([8] * n_intersections) def step(self, actions): for i, action in enumerate(actions): self.eng.set_tl_phase(f'intersection_{i}', int(action)) # несколько шагов симуляции на одно решение агента for _ in range(self.control_interval): # 10–30 сек self.eng.next_step() obs = self._get_obs() reward = -self.eng.get_average_travel_time() # минимизируем ATT return obs, reward, False, False, {} 

Построение MARL-системы

Алгоритмы кооперации

Independent DQN (InDQN) — простой baseline: каждый перекрёсток обучается независимо, другие агенты — часть среды. CoLight использует attention для учёта соседних перекрёстков:

class CoLightAttention(nn.Module): def forward(self, own_obs, neighbor_obs): # own_obs: [batch, obs_dim] # neighbor_obs: [batch, n_neighbors, obs_dim] query = self.q_proj(own_obs).unsqueeze(1) keys = self.k_proj(neighbor_obs) values = self.v_proj(neighbor_obs) attention = F.softmax( torch.bmm(query, keys.transpose(1,2)) / math.sqrt(self.d_k), dim=-1 ) context = torch.bmm(attention, values).squeeze(1) return self.output_proj(torch.cat([own_obs, context], dim=-1)) 

MPLight сочетает pressure-based feature engineering (queue pressure) с MARL, показывая лучшие результаты на CityFlow benchmarks.

Выбор награды

Вариант Формула Особенность
Queue length -sum очередей полос Прост, но игнорирует downstream
Pressure -(incoming - outgoing очереди) Учитывает загрузку соседних перекрёстков
Average Travel Time -global ATT Глобальная метрика, медленнее сходится

Pressure-based reward даёт лучшие результаты в многоагентной среде.

Интеграция с реальными контроллерами

Большинство городов используют SCATS (Австралия) или SCOOT (Великобритания). Наше RL-решение формирует сигналы в формате этих систем через NTCIP протокол (национальный стандарт ITS). Для совместимости реализован адаптер SNMP. При отказе RL (сетевой сбой) — автоматический переход на actuated control с детекторами транспорта. NTCIP 1202 v03 — ключевой стандарт для взаимодействия.

Какие данные нужны?

Источники данных: видеодетекторы (очереди в реальном времени), индуктивные петли (точный подсчёт), GPS-флот (travel time feedback), Connected Vehicles (V2X/C-V2X) для проактивной оптимизации. MLOps-пайплайн автоматически обновляет модель по новым данным. Для обучения достаточно 1-3 месяцев записей с детекторов. Если доступны данные V2X, точность повышается на 10-15%.

Какие KPI отслеживаются?

KPI Описание Целевое улучшение
ATT (Average Travel Time) Среднее время в пути -20% против фиксированных фаз
Queue length per lane Длина очереди -30%
Number of stops Количество остановок -25%
Throughput Пропускная способность +15%

Свяжитесь для персонализированной оценки ваших KPI.

Процесс работы

  1. Аналитика: сбор данных о трафике, калибровка симулятора. Составляем digital twin района. Настраиваем предиктивную модель.
  2. Проектирование: выбор топологии агентов (Independent / CoLight / MPLight), дизайн награды.
  3. Реализация: обучение в CityFlow (1000+ эпизодов), тестирование на реальных сценариях.
  4. Тест: A/B тестирование на выделенном перекрёстке, верификация KPI.
  5. Деплой: интеграция с NTCIP-контроллерами, fallback-режимы, мониторинг через MLOps.

Что входит в разработку

  • Модель MARL с поддержкой CoLight/MPLight
  • Симулятор CityFlow с конфигом под ваш район
  • Reward engineering под ваши KPI
  • Адаптер для NTCIP (SCATS/SCOOT)
  • Документация, обучение операторов, поддержка 3 месяца

Сколько времени занимает внедрение?

Один перекрёсток в симуляции — 4 недели. Район (20-50 перекрёстков) с координированными агентами — 12 недель. Полное внедрение с городской инфраструктурой — 20-24 недели.

Готовы оценить ваш проект за 2 дня. Свяжитесь для консультации — наши инженеры имеют опыт реализации в городах с населением 5+ млн человек и гарантируют снижение заторов.