0 / 9
О курсе с чего начать

Как из светофоров выжать пропускную способность дорог

Светофор — это кран, который дозирует поток на каждом перекрёстке города. Настроен плохо — и сеть встаёт в пробку при том же числе машин. Этот курс — про принципы, по которым светофоры настраивают, измеряют и улучшают. Без воды, с интерактивами и формулами там, где без них никак.

⚡ Главная мысль курса

Перекрёсток — это распределение одного дефицитного ресурса (времени зелёного) между потоками, которые не могут ехать одновременно. Вся «оптимизация светофоров» — это два решения: в каком порядке давать зелёный и на сколько. Всё остальное — как принять эти два решения умнее: по расписанию, по датчикам или по модели.

Зачем это вообще нужно

Заторы — это не неудобство, а деньги. Несколько порядков величины, чтобы откалибровать интуицию:

  • Издержки заторов оценивают в 1–2% ВВП — в ЕС считали ~1%, отдельные оценки по крупным городам доходят до 2%.
  • США, 2014: пробки стоили >$160 млрд потерянного времени и >11 млрд литров сожжённого впустую топлива.
  • В заторе скорость на крупной дороге падает ниже 10 км/ч — медленнее велосипеда.

При этом светофор — самый дешёвый рычаг. Перенастройка таймингов не требует ни метра нового асфальта, а типичный проект «ретайминга» окупается в разы. И есть встроенная причина, почему этим нужно заниматься постоянно:

📈 Факт, который задаёт всю профессию

Любой план светофора деградирует примерно на 3% в год: город растёт, потоки смещаются, настройка, идеальная три года назад, сегодня создаёт пробку. Поэтому оптимизация — это не разовая задача, а цикл.

Что значит «оптимизировать»

Ловушка новичка — думать, что есть одна кнопка «сделать хорошо». На деле у управления светофором есть конкурирующие цели, и улучшая одну, вы почти всегда ухудшаете другую:

  • Задержка — сколько в среднем ждёт машина. Прямо переводится в деньги.
  • Остановки — топливо, выбросы, износ. Люди их замечают сильнее, чем задержку.
  • Пропускная способность (throughput) — сколько машин сеть переваривает в час.
  • Безопасность — разведение конфликтов во времени.
  • Справедливость — приоритет транспорта, пешеходов, главной улицы против боковых.

«Оптимизировать» — значит сначала выбрать, что важнее именно здесь и сейчас, и только потом крутить тайминги. Этот курс даст и язык целей, и инструменты их достижения.

🔁 Сквозная рамка курса

Через все модули проходит один цикл: Измерь → Настрой → Проверь → повтори. Нельзя улучшить то, что не измеряешь (Часть I), бессмысленно мерить, если не умеешь настраивать (Части II–III), и опасно настраивать, не проверяя результат на данных (Часть IV).

Карта курса

Девять модулей выстроены от простого к сложному: зачем → на каком языке → как измерять → как настроить один перекрёсток → как связать их в сеть → как адаптировать в реальном времени → что на переднем крае → типовые проблемы → как внедрять. Каждый уровень опирается на предыдущий.

Как пользоваться

  • Листайте последовательно кнопками внизу или клавишами . Слева — оглавление, прогресс сохраняется в браузере.
  • Блоки «для дотошных» раскрывают вывод формул и математику — без них основной поток понятен, с ними глубже.
  • Интерактивы — крутите ползунки. Большинство принципов гораздо легче увидеть, чем прочитать.

Начнём с самого окупаемого модуля — как настроить один перекрёсток. Это сердце классической теории, и на нём держится всё остальное. Переходите к модулю 3 ниже или через карту выше.

Часть I · Основания. Прежде чем что-то оптимизировать, надо научиться видеть перекрёсток и измерять его. Два модуля закладывают фундамент: сначала общий язык — из чего состоит перекрёсток и как им управляют, — затем метрики: как по данным понять, хорошо он работает или плохо.
Часть I Основания · язык

Модуль 1. Анатомия перекрёстка

Общий язык, на котором говорит вся область. Эти понятия мы вводим один раз — дальше весь курс опирается на них.

🎯 О чём модуль

Перекрёсток — это не просто место, где дороги пересекаются. Это точка распределения конфликтного ресурса: одно и то же пространство и одно и то же время нужны сразу нескольким несовместимым потокам. Модуль вводит словарь — цикл, фаза, сплит, сдвиг, потерянное время, эффективное зелёное, поток насыщения, степень насыщения — и объясняет, что за ним стоит. Без этих понятий данные о светофорах нечитаемы; с ними — сразу понятно, где проблема и что с ней делать.


Перекрёсток как распределение конфликтного ресурса

Представьте четырёхстороннее пересечение. С каждой стороны машины едут прямо, поворачивают налево и направо — итого 12 возможных движений (movements). Проблема в том, что многие из них физически несовместимы: прямо с севера и прямо с востока пересекаются в одной точке. Пустить их одновременно — значит создать аварию.

Перечень того, что с чем конфликтует, называется конфликтной матрицей (conflict matrix). Из неё следует главный факт: в один момент времени можно безопасно пропускать лишь подмножество всех движений. Задача светофора — разнести конфликтующие потоки во времени так, чтобы каждый из них получил достаточно зелёного, а перекрёсток при этом работал максимально эффективно.

Это и есть суть управления: распределить конфликтный ресурс (время) между несовместимыми потоками. Два принципиальных решения — в каком порядке давать зелёный разным группам и как долго длится каждый зелёный.

Фаза (phase)

Фаза — комбинация совместимых (non-conflicting) движений, которым одновременно дают зелёный. На простом двухфазном перекрёстке фаза 1 — это оба сквозных потока по главной улице, фаза 2 — оба сквозных по второстепенной. Порядок фаз задаёт последовательность, в которой разные группы пользователей получают право проезда. Если на подходе большой левоповоротный поток, для него может выделяться отдельная защищённая (protected) фаза — подробнее про типы левоповоротных фаз в модуле про проектирование фаз.


Цикл, сплит, сдвиг — три «ручки» настройки

Управлять светофором — значит крутить три параметра. Понимание каждого из них критично для чтения любых данных о перекрёстке.

Цикл (cycle, C)

Цикл — полная последовательность сигнальных индикаций: каждое направление получает зелёный ровно один раз, после чего картина повторяется. Длина цикла измеряется в секундах и равна сумме всех фаз плюс все межфазные переходы. Типичные значения: 60–120 секунд в зависимости от сложности перекрёстка.

Интуиция: чем длиннее цикл, тем больше зелёного суммарно можно «нарезать» на фазы — но и тем дольше водитель, попавший на красный, будет ждать. Слишком короткий цикл неэффективен (потерянное время занимает слишком большую долю), слишком длинный увеличивает среднюю задержку.

Сплит (split)

Сплит — время, отданное каждой фазе, в секундах или процентах от цикла. Это и есть «как долго» горит зелёный для каждой группы движений. Если главная улица получает 50 с из 90-секундного цикла — её сплит 56%. Правильный сплит пропорционален нагрузке: нагруженному направлению — больше зелёного, лёгкому — меньше.

Сдвиг (offset)

Сдвиг — временно́е соотношение между началом координируемой фазы на данном перекрёстке и «мастер-часами» системы (или соседним перекрёстком). Это инструмент координации: правильный сдвиг означает, что машины, выехавшие на зелёный с первого перекрёстка, приедут ко второму именно тогда, когда там тоже загорится зелёный — возникает «зелёная волна». Детально про координацию — в модуле про прогрессию артерии.


Межтактовые интервалы: жёлтый и всё-красный

При переходе от одной фазы к другой нельзя просто мгновенно переключить зелёный: машины, уже въехавшие на перекрёсток, должны успеть его освободить, а встречный поток не должен тронуться раньше времени. Для этого и существуют межтактовые интервалы (change & clearance intervals).

  • Жёлтый (yellow change) — сигнал водителю: либо остановитесь, либо доезжайте, но знайте, что пересечение вот-вот закроется.
  • Всё-красный (all-red / red clearance) — краткий промежуток, когда ни одна фаза не имеет зелёного: уже выехавшие машины чистят перекрёсток, прежде чем следующая фаза получит право проезда.

Продолжительность жёлтого рассчитывается по кинематической формуле — она зависит от скорости подхода, времени реакции и ширины перекрёстка. Типичный диапазон — 3–6 секунд. Детальный расчёт и формулы — в модуле про межтактовые интервалы (модуль 3).


Потерянное время и эффективное зелёное — ключевая пара

Вот где большинство людей впервые удивляются: реальное зелёное не равно «рабочему» зелёному.

Когда загорается зелёный, первые несколько машин в очереди стартуют с задержкой — водители реагируют не мгновенно, разгоняются. Этот «стартовый проигрыш» называется стартовым потерянным временем (start-up lost time) — примерно 2 секунды. В конце зелёного часть машин ещё успевает проехать в начале жёлтого; это немного компенсирует. Суммарное потерянное время (lost time) — разница между номинальной и реально используемой зелёной зоной — по умолчанию принимается равным ≈ 4 с на фазу (HCM).

Эффективное зелёное (effective green, g) — это та часть цикла, в течение которой через стоп-линию реально проходит поток насыщения. Связь с фактическим зелёным G, жёлтым Y и потерянным временем l:

g = G + Y − l
g — эффективное зелёное · G — фактическое зелёное · Y — жёлтый интервал · l — потерянное время (~4 с)

Почему это важно? Потому что полезная работа перекрёстка определяется не G, а g. Если у вас 30-секундный зелёный с потерей 4 с, реально работает 26 с. При двух фазах на 90-секундный цикл суммарные потери — 8 с, или почти 9% цикла. Чем больше фаз, тем выше накопленные потери.

🚩 Красный флаг

Если смотреть на «длину зелёного» в данных контроллера и принимать её за реально используемую — вы будете систематически переоценивать пропускную способность. Всегда работайте с эффективным зелёным.


Поток насыщения и степень насыщения v/c — «градусник» перекрёстка

Поток насыщения (saturation flow rate, s)

Поток насыщения — это максимальная устойчивая скорость разъезда очереди при зелёном, когда очередь ещё не рассосалась. Представьте: светофор загорелся зелёным, машины плотной очередью стоят и одна за другой трогаются. Темп этого потока — и есть s. Идеальное значение для городской полосы — ≈ 1900 авт/ч (реальный диапазон 1500–2000 авт/ч в зависимости от геометрии, типа полосы, доли грузовых).

Практическое правило: при s ≈ 1800 авт/ч каждые 2 секунды эффективного зелёного пропускают 1 машину. Очередь из 10 машин занимает ~20 с зелёного.

Пропускная способность движения (capacity, c)

Пропускная способность одного движения зависит от того, какую долю цикла ему отдано эффективное зелёное:

c = s · gC
c — пропускная способность (авт/ч) · s — поток насыщения · g — эффективное зелёное · C — цикл
Для дотошных Откуда берётся g/C и что это за «доля»

Отношение g/C — это доля цикла, в течение которой данная фаза «открыта» для потока насыщения. Если цикл 90 с, а эффективное зелёное фазы 40 с, то g/C = 40/90 ≈ 0.44. При потоке насыщения 1900 авт/ч пропускная способность = 1900 × 0.44 ≈ 844 авт/ч. Именно с этим числом сравнивается фактический спрос при расчёте v/c.

Степень насыщения v/c — центральная величина всего курса

Степень насыщения (volume-to-capacity ratio, v/c) — отношение фактического спроса v к пропускной способности c. Это главный «градусник» перекрёстка: одна цифра показывает, насколько близко движение к пределу своих возможностей.

  • v/c < 0.85стабильный режим (undersaturated). Есть запас. Очереди рассасываются за каждый цикл, задержки предсказуемы.
  • v/c 0.85–1.0нестабильный режим. Поток работает на пределе; отдельные циклы «проваливаются» (часть очереди не успевает проехать). Задержки резко растут и непредсказуемы.
  • v/c > 1.0перенасыщение (oversaturation). Спрос превышает пропускную способность. Очередь растёт с каждым циклом. Здесь уже нельзя «оптимизировать задержку» — нужна принципиально другая логика управления.
📊 Кейс / факт

Системы адаптивного управления (SCOOT, SCATS) целенаправленно удерживают степень насыщения самого загруженного движения в диапазоне ~0.9 — то есть намеренно «не добивают» до 1.0, сохраняя буфер против случайных всплесков.


Платоны — как машины слипаются в группы

Между двумя последовательными светофорами машины не едут равномерно: они движутся платонами (platoons) — плотными группами, разделёнными пустыми промежутками. Причина простая: светофор выпускает машины пачками в начале зелёного, и они некоторое время держатся вместе.

Пока платон компактный, координацию выстроить легко: один правильный сдвиг — и вся группа попадает на зелёный следующего перекрёстка. Но по мере движения платон рассеивается: быстрые машины уходят вперёд, медленные отстают, группа размазывается. На длинных артериях с многими перекрёстками это делает задачу координации существенно сложнее. Модели дисперсии платонов и методы работы с ними — в модуле про координацию.


NEMA-нумерация фаз — адресация на языке отрасли

В США и в большинстве международных систем для четырёхстороннего перекрёстка принята стандартная нумерация фаз NEMA. Смысл простой: чётные номера — сквозные потоки, нечётные — левые повороты.

  • Фазы 2 и 6 — сквозные главной улицы (обычно они же координируемые в «зелёной волне»).
  • Фазы 4 и 8 — сквозные второстепенной.
  • Фазы 1, 5 — левые повороты главной; 3, 7 — левые повороты второстепенной.

Эта «адресация» позволяет любому инженеру или аналитику прочитать план сигнала без дополнительных пояснений: увидел фазу 2 — знаешь, о каком движении речь. Фазы организованы в двух кольцах (ring-and-barrier): совместимые фазы из разных колец могут идти одновременно, несовместимые — нет. Подробно про кольцо-барьерную схему — в модуле про проектирование фаз.


⚡ Запомнить
  • Движение (movement) — отдельный поток на подходе (прямо/налево/направо); конфликтная матрица определяет, какие движения нельзя пускать одновременно.
  • Фаза (phase) — комбинация совместимых движений с одновременным зелёным.
  • Цикл (C) — полный оборот программы; сплит — доля цикла для каждой фазы; сдвиг (offset) — временной сдвиг между перекрёстками для «зелёной волны».
  • Потерянное время (lost time) ≈ 4 с/фазу: стартовые задержки и очистка. Эффективное зелёное (g) = фактическое зелёное + жёлтый − потерянное время.
  • Поток насыщения (s) ≈ 1900 авт/ч/полосу — максимальная скорость разъезда очереди; правило «в уме»: 2 с эффективного зелёного = 1 машина.
  • Пропускная способность движения: c = s · (g/C) — определяется потоком насыщения и долей эффективного зелёного.
  • v/c — «градусник» перекрёстка: <0.85 стабильно, 0.85–1.0 нестабильно, >1.0 перенасыщение и накопление очередей.
  • Платоны (platoons) — машины движутся группами; дисперсия платона усложняет координацию на длинных артериях.

Проверь себя: перекрёсток работает с v/c = 0.92. Что это означает?
v/c = 0.92 попадает в зону 0.85–1.0 — нестабильный режим. Пропускная способность ещё не превышена (это было бы >1.0), но система работает на пределе: случайные всплески спроса приводят к тому, что часть машин не успевает проехать за один цикл (cycle failure). Задержки резко растут и становятся непредсказуемыми. Перенасыщение (копящиеся очереди) начинается только при v/c > 1.0.

Источники модуля: Traffic Signal Timing Manual, FHWA-HOP-08-024 (TSTM 2008); Signal Timing Manual, NCHRP Report 812, 2-е изд. (STM2 2015); Webster F.V. «Traffic Signal Settings», Road Research Technical Paper No 39, RRL, 1957.

Часть I Основания · данные

Модуль 2. Как измеряют качество движения

Нельзя улучшить то, что не измеряешь. Метрики, без которых «стало лучше» — это вкусовщина, и как их читать.

🎯 О чём модуль

Разберём «датчики здоровья» перекрёстка: какие числа считают инженеры, что за ними стоит и как по ним понять, что что-то пошло не так. Познакомимся с уровнями обслуживания (LOS A–F), системой ATSPM и разберём, почему число остановок часто важнее средней задержки. После этого модуля любая цифра из отчёта по светофорам будет иметь смысл.

Меры эффективности (Measures of Effectiveness, MOE)

В дорожной инженерии «качество» перекрёстка описывается набором измеримых показателей — мер эффективности (Measures of Effectiveness, MOE). Главных пять.

Задержка управления (Control delay)

Задержка управления — дополнительное время, которое водитель тратит из-за того, что на его пути стоит светофор. Сюда входят торможение на подъезде, ожидание в очереди, набор скорости после сигнала. Измеряется в секундах на автомобиль (сек/авт.).

Именно control delay лежит в основе уровня обслуживания (LOS) — самой распространённой оценочной шкалы перекрёстка. Можно считать её «оценкой» от A до F: чем длиннее средняя задержка, тем ниже оценка.

Число остановок (Number of stops / Stops per km)

Число остановок — сколько раз автомобиль был вынужден остановиться на маршруте. На уровне коридора удобнее смотреть stops per km (остановок на километр) — это нормированная версия, позволяющая сравнивать участки разной длины.

Этот показатель важен по трём причинам: он напрямую связан с потреблением топлива и выбросами (каждый разгон сжигает лишний бензин), именно остановки (а не задержку!) водители замечают и воспринимают как «плохую дорогу», и наконец — stops per km хорошо отражает качество «зелёной волны» на коридоре.

Длина очереди (Queue length)

Длина очереди — число автомобилей или метры застоявшегося потока перед стоп-линией. Принято смотреть среднюю очередь и 95-й перцентиль (максимальную, ниже которой находятся 95% случаев). Именно 95-й перцентиль критичен для проектирования: нужно убедиться, что карман для поворота вмещает очередь и та не «выплёскивается» на главный поток.

Время в пути (Travel time / Average speed)

Время в пути от точки до точки — интуитивно понятная метрика, которую легко объяснить руководству и публике. Обратная величина — средняя скорость. Измеряется методом «плавающего автомобиля» (floating car) с GPS. Недостаток: travel time не показывает, из-за чего потери — из-за светофоров, заторов или скоростного режима.

Пропускная способность (Throughput)

Пропускная способность — число автомобилей, которые реально прошли через перекрёсток или сечение дороги за единицу времени. В нормальных условиях throughput обычно не является главной метрикой — зазор между спросом и пропускной способностью достаточен. Но в условиях перегрузки (oversaturation) throughput становится ключевым показателем: когда перекрёсток работает на пределе, задержку минимизировать уже нельзя — можно только не потерять в пропуске (подробнее о перегрузке — в следующем модуле).


Уровень обслуживания: шкала A–F

Уровень обслуживания (Level of Service, LOS) — стандартизированная шкала, описывающая «самочувствие» перекрёстка по величине средней задержки управления на автомобиль. Шесть градаций: от A (хорошо) до F (перегрузка).

LOS Задержка, сек/авт. Что значит на практике
A ≤ 10 Почти нет ожидания. Водитель не замечает светофора — попал на зелёный.
B > 10–20 Короткое ожидание. Удобно, редкие незначительные остановки.
C > 20–35 Приемлемое ожидание. Норма для большинства городских перекрёстков.
D > 35–55 Заметное ожидание. Начинают формироваться очереди в пик.
E > 55–80 Долгое ожидание. Перекрёсток работает близко к пределу пропускной способности.
F > 80 Перегрузка. Очереди накапливаются, часть водителей не обслуживается за один цикл.

Шкала взята из HCM (Highway Capacity Manual) и воспроизводится во всех американских и международных стандартах по оценке сигналов (FHWA TSTM 2008, NCHRP 812). Целевой LOS для городских перекрёстков обычно — не хуже C или D; LOS F — красный флаг.

📊 Кейс / факт

Откуда берётся задержка управления в расчёте. Control delay считается по формулам HCM, глава 16: учитываются объём полос, пропускная способность, длина цикла и доля эффективного зелёного. Результат усредняется по всем движениям взвешенно по объёму. В числах: перекрёсток с задержкой 38 сек/авт. — это LOS D. Небольшая оптимизация, снизившая задержку до 32 сек/авт., переводит перекрёсток в LOS C — формально улучшение, хотя разница всего 6 секунд.


Почему остановки важнее задержки

Один из главных прикладных выводов Signal Timing Manual 2nd Ed. (NCHRP 812) звучит нелогично с первого взгляда:

Пользователи воспринимают сначала остановки, потом задержку.

Это не метафора — это поведенческий факт, подтверждённый исследованиями. Водитель, который дважды остановился, но суммарно потратил 40 секунд, оценит маршрут хуже, чем водитель, который простоял 50 секунд, но один раз. Остановка — физически и психологически дискретное событие, задержка — непрерывное ожидание, которое мозг «сглаживает».

Практическое следствие: при оптимизации коридора иногда имеет смысл немного увеличить среднюю задержку, если это позволяет сократить число остановок. Длинный цикл, например, увеличивает среднее ожидание, но создаёт длинные зелёные «окна» — машины реже попадают на красный. Жалоб от водителей станет меньше.

Поэтому помимо LOS на коридоре всегда смотрят:

  • Stops per km (остановок на километр) — сводный показатель качества прогрессии;
  • Percent Arrival on Green (% прибытий на зелёный) — доля автомобилей, доезжающих до стоп-линии в момент зелёного сигнала. Для хорошо скоординированного коридора норма — выше 50–60%.
🚩 Красный флаг

Если отчёт показывает улучшение средней задержки, но при этом число остановок выросло — водители почувствуют ухудшение, даже если цифра LOS стала лучше. Смотрите оба показателя вместе.


v/c как индикатор перегрузки

Степень насыщения (v/c, volume-to-capacity ratio) — отношение фактического спроса к пропускной способности конкретного движения на перекрёстке. Это опережающий сигнал: перегрузка начинается ещё до того, как LOS падает до F.

  • v/c < 0.85 — устойчивый режим, запас есть;
  • v/c 0.85–1.00 — поток нестабилен, начинаются единичные cycle failures (часть машин не успевает проехать за один зелёный);
  • v/c > 1.00 — перенасыщение, очереди накапливаются от цикла к циклу.

Практическое назначение v/c: позволяет быстро найти «узкое горлышко» — конкретную фазу или полосу, которая работает на пределе. Неслучайно SCOOT и SCATS целенаправленно держат degree of saturation ~0.9 (это ровно v/c ≈ 0.9) — чуть ниже точки нестабильности. Что такое перенасыщение и как им управлять — подробно разбирается в модуле 3.


Откуда берутся данные

Все метрики выше — не абстракция: их считают из реальных измерений. Два основных источника.

Детекторы в полотне и над дорогой

Самый распространённый тип — индуктивная петля (inductive loop detector): кольцо провода, врезанное в асфальт. Когда автомобиль проезжает над петлёй, меняется её индуктивность — контроллер фиксирует проезд. По характеру сигнала можно определить, едет автомобиль или стоит (presence vs passage).

Надземные альтернативы: микроволновый радар, видеодетектор (заменяет несколько петель и даёт зону вместо точки), инфракрасный датчик. Конкретный тип зависит от типа дороги, бюджета и климата — металлические мосты исключают петли (ставят магнетометр).

Высокоразрешённые логи контроллера

Современные контроллеры ведут event-based logging — журнал событий с точностью до 0,1 секунды: каждое включение/выключение фазы, каждый вызов от детектора. Этот поток данных — основа для ATSPM (см. следующий раздел).

Простой полевой метод — «плавающий автомобиль» (floating car): обученный водитель проезжает маршрут с GPS-логгером несколько раз, записывает время в пути, скорость, число остановок. Дёшево и даёт реалистичную пользовательскую картину, но не масштабируется на все перекрёстки. Для научной строгости нужно не менее 15 прогонов в каждом направлении в каждый временной период (NCHRP 398: 95% доверительный интервал, погрешность 10%).


ATSPM: непрерывный мониторинг вместо редких замеров

До недавнего времени транспортные агентства диагностировали светофоры так: приезжает инженер раз в несколько лет, стоит на обочине с секундомером, записывает данные — и по ним корректирует тайминги. Между визитами — ничего. Сигнал о проблеме: жалоба гражданина. Это реактивная система с задержкой в дни и недели.

Программа ATSPM (Automated Traffic Signal Performance Measures), продвигаемая FHWA с 2016 года, меняет эту логику радикально: данные из контроллера поступают непрерывно, отклонение от нормы видно сразу, без полевого выезда. К 2016 году систему внедряли 26 агентств в 12 штатах США. Стоимость перепрограммирования одного перекрёстка в США — $4 500; при этом 38% агентств не делали этого регулярно, 49% не имели достаточного штата.

Ключевые метрики ATSPM

Arrivals on Green (процент прибытий на зелёный)

Arrivals on Green — доля автомобилей, которые подъезжают к стоп-линии именно в момент зелёного сигнала. Высокое значение означает хорошую прогрессию: машины «едут с волной» и не останавливаются. Норма для хорошо скоординированного коридора — выше 50–60%.

Диаграмма координации Purdue (Purdue Coordination Diagram)

Это визуальный «отпечаток пальца» координации на перекрёстке. На графике каждый автомобиль — одна точка: по горизонтали — момент его прибытия в рамках цикла светофора, по вертикали — астрономическое время. Вертикальные полосы показывают зелёный и красный интервалы фазы.

Если большинство точек сбиваются в «облако» внутри зелёной полосы — волна работает, машины прибывают на зелёный. Если облако сдвинуто в красную зону — нужна коррекция смещения (offset). Если точки размазаны равномерно — координация отсутствует или неэффективна.

Split Failures (срывы фазы)

Split failure — ситуация, когда зелёный закончился, а очередь не рассосалась: хотя бы один автомобиль не успел проехать. Это операциональный признак перегрузки фазы.

В данных контроллера split failure виден по типу завершения зелёного:

  • Gap-out — нормально: фаза завершилась, потому что в очереди закончились машины (детектор не занят).
  • Max-out / Force-off — тревожный сигнал: фаза завершилась принудительно, по таймеру — детектор был занят до конца зелёного, очередь не рассосалась.

Частые max-out и force-off — прямой указатель на то, что данной фазе нужно больше зелёного времени.

📊 Кейс / факт

До ATSPM транспортные агентства управляли светофорами по жалобам граждан — реактивная диагностика с задержкой в дни/недели. ATSPM переворачивает логику: данные с контроллера (разрешение 0,1 сек) идут непрерывно, отклонение от нормы видно сразу. Жалоба гражданина становится запоздалым сигналом, а не основным KPI.


Интерпретация: красные флаги на реальных данных

Как понять по метрикам, что перекрёсток «болен»? Ниже — конкретные признаки и их интерпретация.

🚩 Красный флаг

Если видишь: частые split failures (max-out/force-off)
Это значит: данная фаза регулярно не успевает обслужить всю очередь. Нужно либо добавить зелёное время этой фазе, либо перераспределить потоки.

🚩 Красный флаг

Если видишь: % прибытий на зелёный ниже 40–45%
Это значит: большинство машин прибывают на красный — прогрессия по коридору нарушена. Причина чаще всего в смещении (offset): сигнал соседнего перекрёстка «не синхронизирован» с потоком.

🚩 Красный флаг

Если видишь: рост длины очереди от цикла к циклу (overflow queue)
Это значит: перекрёсток в зоне перенасыщения — очередь не рассасывается за один зелёный и переходит в следующий цикл. При достижении предыдущего перекрёстка — spillback (выплёскивание).

🚩 Красный флаг

Если видишь: spillback (очередь достигла upstream-перекрёстка)
Это значит: перегрузка вышла за пределы одного перекрёстка. Выплёскивание блокирует движение выше по потоку — даже если там зелёный, машины не могут тронуться, потому что выход перекрыт. Это системная проблема коридора, требующая координации нескольких перекрёстков.

🚩 Красный флаг

Если видишь: v/c > 0.85 на конкретной фазе в пик
Это значит: фаза работает на пределе, любой всплеск спроса даст cycle failures. Это ранний предупредительный сигнал — стоит проверить через split failures, подтверждает ли детектор перегрузку.


Методология «до/после»: как честно измерить эффект

Когда на перекрёстке меняют тайминги или устанавливают адаптивную систему, возникает вопрос: а как убедиться, что стало лучше? Простой ответ «замерили до и замерили после» скрывает несколько ловушек.

Правильный контроль

Данные «до» и «после» нужно снимать в сопоставимых условиях: одинаковое время суток, день недели, период (утренний пик vs дневной vs вечерний пик). AM-пик и PM-пик могут давать принципиально разные результаты для одного и того же вмешательства — их нельзя смешивать в один средний KPI.

Baseline: против чего сравнивать

Критически важный момент, часто игнорируемый в отчётах (California PATH, 2009): большинство оценок адаптивных систем сравнивают результат с устаревшим фиксированным таймингом. Это завышает эффект. Честная оценка — сравнение с хорошо настроенными TOD-планами (актуальными, а не 3-летней давности).

Это объясняет разброс результатов в литературе: SCATS против 3-летних устаревших планов в Gresham, OR — снижение travel time на 16%, задержки на 42%. Тот же SCATS в Park City против актуальных TOD-планов — снижение travel time на 7,6% в утренний пик, на 3,9% в вечерний. Разница в 2–10 раз объясняется не качеством системы, а качеством baseline.

Floating car: минимальная выборка

Метод плавающего автомобиля — индустриальный стандарт измерения travel time и stops. Для статистически значимого результата нужно не менее 15 прогонов в каждом направлении в каждый временной период (95% доверительный интервал, погрешность 10%, типичный коэффициент вариации ~19% по NCHRP 398). В оценке SCATS в Park City использовалось более 500 проездов по маршруту.

Для дотошных Общий диапазон эффектов адаптивных систем

По обзору литературы (California PATH, 2009): адаптивные системы улучшают показатели движения на 5–45% по сравнению с исходными условиями — очень широкий диапазон, который объясняется разным качеством базового тайминга, а не свойствами самих систем. Более строгие и свежие исследования показывают меньший эффект — потому что baseline за это время сам стал лучше.

SCOOT: снижение задержки на 0–53% vs fixed-time (огромный разброс из-за разного baseline). SCATS в Oakland County, MI vs fixed-time: stops, side-street delays, left-turn delays — все ниже у SCATS. Это честный эффект в условиях хорошо подобранного сравнения.

Вывод: одна сводная цифра без указания baseline и временного периода — не информативна. Требуйте от отчётов раскрытия этих параметров.


⚡ Запомнить
  • Пять MOE перекрёстка: задержка управления (control delay), число остановок, длина очереди, время в пути, пропускная способность (throughput). В перегрузке главная метрика — throughput.
  • LOS A–F по задержке: A ≤10 сек/авт., B ≤20, C ≤35, D ≤55, E ≤80, F >80. Целевой LOS для города — C или D. F — красный флаг.
  • Люди воспринимают сначала остановки, потом задержку (NCHRP 812). Stops per km и % прибытий на зелёный часто важнее средней задержки — особенно при оценке коридора.
  • v/c > 0.85 — поток нестабилен, начинаются отдельные срывы. v/c > 1.0 — перенасыщение, очереди накапливаются.
  • ATSPM — непрерывный мониторинг сигналов на основе логов контроллера (0,1 сек). Ключевые метрики: arrivals on green, split failures (gap-out vs max-out), диаграмма Purdue. Жалоба гражданина — запоздалый KPI; ATSPM видит проблему раньше.
  • Красные флаги: частые max-out/force-off → фазе мало зелёного; arrivals on green <40–45% → плохая прогрессия; overflow queue (очередь не рассасывается за цикл) → перенасыщение; spillback → системная проблема коридора.
  • Методология «до/после»: сравнивать только в одинаковые периоды (AM/PM отдельно); честный baseline — актуальные TOD-планы, а не устаревший тайминг; минимум 15 прогонов floating car на направление.
  • Данные из двух источников: детекторы (петли, видео) для поциклических данных; high-resolution логи контроллера для ATSPM-метрик; floating car/GPS — для travel time и stops по маршруту.

Проверь себя

Проверь себя: на коридоре снизилась средняя задержка с 38 до 30 сек/авт., но число остановок выросло. Как воспримут это водители?
По данным NCHRP 812, люди воспринимают сначала остановки, потом задержку. Рост числа остановок — даже при снижении общей задержки — ухудшает субъективный опыт и увеличивает жалобы. Stops per km и % прибытий на зелёный нужно смотреть наравне с LOS.
Проверь себя: на перекрёстке фиксируется регулярный max-out на фазе 2 (сквозное движение по главной) в утренний пик. Что это означает?
Max-out означает, что зелёный завершился принудительно по таймеру, а детектор в конце фазы был занят — очередь не рассосалась. Это split failure: хотя бы один автомобиль не успел проехать. Регулярный max-out — прямой сигнал, что фазе нужно больше зелёного времени.

Источники модуля: ATSPM FHWA EDC-4 Fact Sheet (2016); Signal Timing Manual 2nd Ed. (NCHRP Report 812, 2015); FHWA Traffic Signal Timing Manual (TSTM, FHWA-HOP-08-024, 2008); California PATH — Adaptive Control for Arterials Phase 1 (UCB-ITS-PWP-2009-2); SCATS Evaluation Park City, Utah — University of Utah (2008); NCHRP «Oversaturated Conditions» Vol. 1 (Gettman et al.).

Часть II · Оптимизация. Теперь — собственно настройка. Сначала выжимаем максимум из одного перекрёстка (классический метод Уэбстера), затем связываем перекрёстки в коридор и ловим «зелёную волну».
Часть II Оптимизация · образцовый модуль

Модуль 3. Один перекрёсток: метод Уэбстера

Самый окупаемый навык в области: задать длину цикла и поделить зелёное так, чтобы машины ждали минимум. Здесь живёт классическая формула, которой уже почти 70 лет — и она всё ещё работает.

🎯 Что мы решаем

Дан один перекрёсток с известными потоками. Нужно ответить на два вопроса: какой длины делать цикл C (полный оборот светофора) и как поделить зелёное между фазами. Цель по умолчанию — минимум средней задержки. Всё остальное в курсе — надстройка над этим базовым умением.

Почему у цикла есть «правильная» длина

Интуиция подсказывает: чем длиннее зелёный, тем больше машин проедет, значит длинный цикл — это хорошо. Это ловушка. У длины цикла есть две противоборствующие силы:

  • Слишком короткий цикл — светофор переключается часто, и каждое переключение «съедает» потерянное время (пока первые машины трогаются, перекрёсток простаивает ~2 секунды). Доля этих потерь в коротком цикле огромна — пропускная способность падает, очереди не успевают разъезжаться.
  • Слишком длинный цикл — потери на переключения уже малы, зато каждый, кто подъехал на красный, ждёт мучительно долго. Средняя задержка снова растёт.

Между этими крайностями есть минимум — оптимальная длина цикла C₀. Покрутите ползунки и найдите дно кривой сами:

Песочница: задержка против длины циклаинтерактив
0.60
8 с
Как читать. Кривая — средняя задержка на машину при разной длине цикла. Её дно (жёлтая линия) — оптимум C₀; зелёная зона вокруг — где задержка почти минимальна.

Ползунок «Загрузка Y» — насколько плотный поток. Чем выше — тем длиннее нужен цикл и тем выше задержка.
Ползунок «Потерянное время L» — это простой перекрёстка на каждом переключении фаз: пока стоящая очередь трогается с места, плюс жёлтый и всё-красный, через перекрёсток почти никто не едет (обычно ~4 секунды на фазу). Чем больше эти потери, тем невыгоднее часто переключать светофор — поэтому оптимум уезжает в сторону длинного цикла. Подвигайте L — и жёлтая линия C₀ поползёт вправо: дорогие переключения выгоднее делать реже.
средняя задержка d(C) оптимум C₀ «плато» 0.75–1.5·C₀

Два вывода, которые видно прямо на графике, и оба практически важны:

  1. Минимум есть, и он не на краю. И слишком короткий, и слишком длинный цикл — плохо.
  2. Дно пологое. Вокруг C₀ широкая зелёная зона, где задержка почти минимальна. Это спасение для практика: цикл не нужно вычислять до секунды — достаточно попасть в диапазон 0.75–1.5·C₀. А вот ошибиться в сторону слишком длинного цикла (правый склон) дороже, чем в сторону короткого.

Формула оптимального цикла

Фрэнк Уэбстер в 1957 году прогнал движение на одном из первых компьютеров и вывел формулу, которая до сих пор печатается в учебниках. Оптимальная длина цикла:

C₀ = 1.5 · L + 51 − Y
C₀ — оптимальная длина цикла, секунды
L — суммарное потерянное время за цикл (≈ 2 с на каждую фазу + всё-красные интервалы)
Y — загрузка перекрёстка: сумма «критических» нагрузок по фазам. Каждая нагрузка y = q/s — это поток q, делённый на поток насыщения s (макс. темп разъезда очереди, ≈1900 авт/ч на полосу)

Формула честно отражает обе силы из песочницы: в числителе — потери L (чем их больше, тем длиннее приходится делать цикл, чтобы их «размазать»), в знаменателе — 1 − Y, запас до перегрузки. Когда загрузка Y приближается к единице, знаменатель стремится к нулю и оптимальный цикл взлетает — перекрёсток на пределе.

Для дотошных Откуда берётся формула задержки и почему очередь «взрывается»

Уэбстер показал, что машины прибывают случайно (по Пуассону), а не равномерно — и именно это делает задержку нелинейной. Полная формула средней задержки на машину:

d = C(1−λ)²2(1−λx) + 2q(1−x) − 0.65·(C/q²)1/3·x(2+5λ)
λ = g/C — доля цикла под эффективным зелёным · x = q/(λs) — степень насыщения подхода
  • Член 1 — задержка от равномерного чередования красный/зелёный. Растёт с длиной цикла C — вот правый склон кривой.
  • Член 2 — добавка за случайность прибытия. В нём множитель 1/(1−x): когда x → 1, он уходит в бесконечность. Это математическая причина, почему перегруженный перекрёсток ведёт себя качественно иначе — небольшой рост потока даёт обвальный рост очереди.
  • Член 3 — эмпирическая поправка (5–15%), на практике часто берут d ≈ 0.9·(член 1 + член 2).

Минимизируя суммарную задержку по C, Уэбстер и получил C₀ = (1.5L+5)/(1−Y) — это удобное приближение точного минимума. Именно член 1/(1−x) — причина, по которой минимум задержки перестаёт быть правильной целью при перегрузке: там надо максимизировать пропуск, а не минимизировать задержку (об этом — модуль 7).

Считаем цикл и делим зелёное

Зная C₀, осталось поделить зелёное между фазами. Правило Уэбстера предельно простое: эффективное зелёное распределяется пропорционально нагрузкам y. Фаза, которая везёт вдвое больше, получает вдвое больше зелёного — тогда все фазы оказываются загружены одинаково, и это даёт почти минимум задержки.

Калькулятор ниже считает оптимальный цикл, степень насыщения и раскладывает цикл на зелёные фаз и потерянное время. Покрутите загрузку и число фаз:

Калькулятор цикла Уэбстераинтерактив
0.65
2
4 с
оптимальный цикл C₀
степень насыщения x₀
зелёного на цикл
эффективное зелёное фаз потерянное время рекомендуемый диапазон:
⚠ Y близко к 1 — перекрёсток на грани перегрузки. Формула даёт огромный цикл, а на деле нужен уже другой режим управления (модуль 7).

Обратите внимание на x₀ — степень насыщения при оптимуме. Она равна 2Y/(1+Y) и всегда меньше 1 при разумной загрузке. Если калькулятор показывает x₀ у самой единицы и цикл за 120–150 секунд — это сигнал, что перекрёсток исчерпал себя и таймингами его уже не спасти.

🚩 Красный флаг: Y ≥ 1

Если сумма нагрузок Y достигает единицы, формула теряет смысл (цикл → ∞). Это значит, что спрос превышает физическую пропускную способность перекрёстка — никакая настройка цикла не поможет. Здесь начинается отдельная дисциплина — управление перенасыщением (модуль 7): цель меняется с «минимум задержки» на «максимум пропуска и недопущение блокировки соседей».

Жёлтый и всё-красный: безопасность как часть настройки

Настройка одного перекрёстка — это не только цикл и split. Между фазами есть межтактовые интервалы: жёлтый (дать тормозящим остановиться, едущим — доехать) и опциональный всё-красный (очистить перекрёсток). Их нельзя ставить «на глаз» — они считаются по кинематике:

Yжёлт = t + V2a + 2gG
t — время реакции ≈ 1.0 с · V — скорость подхода · a — замедление ≈ 3 м/с² · g — уклон · G — ускорение свободного падения

Цифры здесь не выдуманы — их полевалидировали на тысячах машин (NCHRP 731): реальное время реакции — ровно 1.0 с, замедление — около 3 м/с². Жёлтый обычно выходит в диапазоне 3–6 секунд.

📊 Почему это не мелочь

Правильно рассчитанный жёлтый снижает проезды на красный на 36–50% и общие ДТП на 8–14%. Слишком короткий жёлтый создаёт «дилемму»: водитель не успевает ни остановиться, ни проехать. Это устранимая ошибка — её убирает формула.


Итог модуля

⚡ Запомнить
  • Длина цикла — это компромисс: короткий теряет время на переключения, длинный мучает ожиданием. Минимум — C₀ = (1.5L+5)/(1−Y).
  • Дно пологое: достаточно попасть в 0.75–1.5·C₀; ошибка в сторону длинного цикла дороже.
  • Зелёное делят пропорционально нагрузкам y фаз — так все фазы загружены поровну.
  • При Y → 1 классика ломается — это уже перенасыщение, другой режим (модуль 7).
  • Жёлтый/всё-красный — часть настройки, считаются по кинематике, влияют на безопасность напрямую.
Проверь себя: загрузка перекрёстка выросла, Y поднялась с 0.5 до 0.8. Что произойдёт с оптимальным циклом C₀?
Верно. Знаменатель 1 − Y падает с 0.5 до 0.2, то есть в 2.5 раза → цикл во столько же раз длиннее. Это и есть приближение к пределу пропускной способности: чем выше загрузка, тем длиннее приходится делать цикл, и тем больнее ошибка в любую сторону.

Источники модуля: F.V. Webster, «Traffic Signal Settings» (RRL, 1957) · Signal Timing Manual 2nd ed. (NCHRP 812, 2015) · NCHRP 731 «Timing Yellow and All-Red Intervals» (2012).

Часть II Оптимизация · сеть

Модуль 4. Координация: «зелёная волна»

Один настроенный перекрёсток — только начало. Сила — заставить цепочку светофоров работать как единое целое.

🎯 О чём модуль

В модуле 3 мы научились настраивать один перекрёсток: выбирать длину цикла, делить зелёное время между направлениями. Теперь идём дальше — связываем несколько перекрёстков в коридор. Главный инструмент здесь — сдвиг (offset): смещение начала зелёного сигнала между соседними светофорами. Правильно подобранный offset позволяет создать «зелёную волну» — поток машин едет без остановок через всю цепочку. Неправильный offset, как мы увидим, бывает хуже, чем полное отсутствие координации.

По итогу модуля вы поймёте: что такое bandwidth и как его читать на диаграмме путь-время; какими инструментами инженеры проектируют волну; где у координации неизбежные компромиссы; и почему оптимизация светофоров неотделима от поведения водителей на маршруте.


Сдвиг (offset): простая идея, точный расчёт

Представьте: вы стоите на перекрёстке A, загорается зелёный — и вы едете. До следующего перекрёстка B ровно 12 секунд езды. Если светофор на B даёт зелёный ровно в тот момент, когда вы туда подъезжаете, — вы проезжаете без остановки. Для этого светофор B должен получить зелёный на 12 секунд позже, чем светофор A. Эти 12 секунд и есть offset между A и B.

Формально: offset (сдвиг фаз) — разница во времени начала зелёного сигнала между двумя соседними перекрёстками. Если A даёт зелёный в момент t = 0, а B — в t = 12 сек, их offset равен 12 секундам. Цель offset'а — «встретить» группу машин (платон), выехавших с A, именно когда на B уже горит зелёный.

Казалось бы, просто: измерь расстояние, подели на скорость потока — вот offset. На практике всё сложнее: расстояния между перекрёстками неодинаковы, скорость потока варьируется, а на одной артерии может быть 10–17 перекрёстков с движением в обе стороны. Наивный расчёт «от руки» даст субоптимальное, а иногда и откровенно вредное решение — машины будут попадать на красный чаще, чем без всякой координации.

🚩 Красный флаг

Координация наугад хуже, чем её отсутствие. Неверный offset синхронизирует перекрёстки «против» потока: платон машин систематически приезжает к красному. Это не нейтральный вариант — это гарантированный ущерб. Offset надо считать, а не угадывать.

Ещё одно обязательное условие: все перекрёстки на артерии должны работать с одинаковой длиной цикла (или кратными циклами). Если у одного перекрёстка цикл 60 секунд, а у соседнего — 70, offset между ними будет «плавать» от цикла к циклу, и волна разрушится. Это называется синхронизацией цикла (cycle harmonization) — необходимое условие любой артериальной координации.


Bandwidth и «зелёная волна»: коридор без остановок

Bandwidth (ширина полосы пропускания) — это ширина «зелёного коридора» на диаграмме путь-время, в котором машины могут проехать всю цепочку перекрёстков без остановок. Измеряется в секундах или в долях цикла. Чем шире коридор — тем больший платон машин умещается в нём без торможения.

Когда bandwidth достаточно широкий и правильно ориентирован вдоль артерии, говорят, что есть зелёная волна (green wave). Это не метафора — это конкретный инженерный параметр: наклонный «тоннель» на диаграмме путь-время, внутри которого нет ни одного красного сигнала ни на одном перекрёстке.

Как читать диаграмму путь-время (time-space diagram)

Диаграмма путь-время — главный инструмент, которым инженеры проектируют и проверяют зелёную волну. Читается просто:

  • Ось X (горизонталь) — время, обычно в долях цикла или в секундах.
  • Ось Y (вертикаль) — расстояние вдоль артерии. Каждый перекрёсток — горизонтальная полоса: зелёный период закрашен, красный — нет (или наоборот, в зависимости от оформления).
  • Платон машин — наклонная прямая (или полоса конечной ширины). Угол наклона определяется скоростью: крутой угол = быстро, пологий = медленно.
  • Зелёная волна — наклонный коридор, который проходит сквозь зелёные зоны всех перекрёстков, не задевая красных. Ширина этого коридора и есть bandwidth.

Инженер смотрит на диаграмму и сразу видит: есть ли волна, достаточно ли она широка, где она «ломается» и насколько хорошо работает обратное направление.


Методы: MAXBAND, PASSER, TRANSYT

За 40 лет исследований сложилось несколько инструментов для проектирования зелёной волны. Каждый заточен под свою задачу.

MAXBAND (Little, Kelson, Gartner, 1981)

Что максимизирует: суммарный bandwidth зелёной волны на артерии в обоих направлениях. Задача формулируется как смешанно-целочисленная линейная программа (MILP) и ищет глобальный оптимум. Входные данные — длина цикла, зелёные времена фаз, расстояния между перекрёстками и допустимый диапазон скоростей потока. Выходные — оптимальные offset'ы для каждого перекрёстка.

Скорость — не константа в MAXBAND: программа сама выбирает скорость прогрессии в допустимом диапазоне (±10%), чтобы максимизировать полосу. Физически это означает: водители немного подстраивают темп под волну. Программа тестировалась на реальных артериях, в том числе Wisconsin Avenue в Вашингтоне (17 перекрёстков).

PASSER II-84 (Chang, Messer, Marsden, 1984)

Что максимизирует: сначала — bandwidth (этап 1, локальная эвристика); затем — донастраивает offset для минимизации задержки внутри найденного решения (этап 2). Ключевое понятие второго этапа — slack time (люфт): «запасной» зелёный коридор сверх минимально необходимого для bandwidth. Именно в пределах этого люфта можно двигать offset, не разрушая волну, одновременно снижая суммарную задержку на артерии.

Пример из документа: на артерии Skillman Avenue в Далласе slack time составил 28 сек в одном направлении и 18.2 сек в другом — что дало допустимый диапазон сдвига ±5.8 сек для тонкой настройки.

Вывод авторов PASSER II-84: «прогрессия менее чувствительна к флуктуациям спроса, чем решения по минимуму задержки» — зелёная волна устойчивее к изменениям потока, чем чисто задержко-ориентированные подходы.

TRANSYT

Что максимизирует: минимальную задержку на уровне всей сети (не одной артерии). TRANSYT моделирует сеть перекрёстков целиком, оценивает задержку и остановки для каждого звена и ищет параметры сигналов (splits и offset'ы), минимизирующие взвешенную суммарную задержку. Решение — локальный оптимум; зато охватывает сеть, а не одну улицу.

Для дотошных Сравнение трёх методов

Три инструмента решают разные задачи и дают разные гарантии:

  • MAXBAND — глобальный оптимум по bandwidth на одной артерии. Задача — MILP; математически доказанный оптимум. Не учитывает задержку боковых улиц и поведение водителей при смене маршрута.
  • PASSER II-84 — сначала максимизирует bandwidth (локальный оптимум), затем минимизирует задержку в пределах slack time. Двухэтапная эвристика. Задержка считается по формуле NCHRP, корректно работающей вплоть до V/C = 1.1.
  • TRANSYT — минимизация задержки по сети (локальный оптимум). Учитывает дисперсию платона при распространении вдоль артерии. Стандарт для сетевых задач; часто используется как бенчмарк.

Все три — офлайн-инструменты: рассчитывают план заранее, не адаптируются в реальном времени.


Компромиссы координации: чего стоит зелёная волна

Зелёная волна — мощный инструмент, но у неё есть цена. Важно понимать, что именно вы оптимизируете и что при этом страдает.

Широкая волна против минимума задержки

Максимальный bandwidth — не то же самое, что минимальная задержка для всего трафика. Когда цикл и offset «затачиваются» под главную артерию, машины с боковых улиц, пешеходы и левоповоротные потоки получают меньше зелёного времени, чем им нужно. Задержка для них растёт. PASSER II-84 показал, что внутри slack time можно компенсировать часть этого ущерба — но не устранить полностью.

Прямое и обратное направления конкурируют

На двусторонней артерии обе волны движутся с разными скоростями — правильный offset для потока «туда» почти всегда мешает потоку «обратно». MAXBAND находит взвешенный компромисс: параметр k задаёт, насколько важно обратное направление относительно прямого. При узком цикле одно из направлений получает лишь минимальную полосу.

Волна на главной улице вредит боковым

Когда артерия «течёт» без остановок, она привлекает трафик с параллельных улиц. Водители перестраивают маршруты — нагрузка на оптимизированном коридоре растёт, часть выигрыша исчезает. Традиционные методы (MAXBAND, TRANSYT) оптимизируют сигналы при фиксированных потоках и не учитывают эту реакцию.

Методы Ceylan & Bell и Teklu et al. решают эту проблему через двухуровневую (bi-level) структуру: верхний уровень оптимизирует параметры сигналов, нижний уровень моделирует равновесное перераспределение водителей по маршрутам. Решение, полученное с учётом равновесия, устойчиво к реальному поведению людей — «локально хорошее» не деградирует при внедрении.

📊 Кейс / факт

Teklu et al. проверили эффект на реальной сети Честера (Великобритания): при высокой загрузке сети оптимизация сигналов с учётом перемаршрутизации водителей существенно превосходила стандартный TRANSYT. При слабой загрузке разница была незначительной — TRANSYT достаточен. Вывод: чем загруженнее сеть, тем важнее учитывать поведение водителей.


Сетевой уровень: за пределами одной артерии

Зелёная волна — это координация вдоль одной артерии. Но город — это сеть улиц, и на сетевом уровне появляются новые задачи.

Store-and-forward: управление очередями в насыщенной сети

При перегрузке (V/C > 1.0) платоны перестают существовать — артерия стоит. В этом режиме bandwidth-подход теряет смысл. На смену приходит store-and-forward модель: каждое звено сети рассматривается как «резервуар» машин, сигналы управляют скоростью «вытекания» из резервуара. Цель — не создать волну, а предотвратить queue spillback (обратный разлив очереди), когда очередь на одном звене перетекает в соседнее и блокирует его.

Важное ограничение: store-and-forward модели управляют разбивкой зелёного времени (splits), но не координируют перекрёстки по offset'у. Координация для них — отдельная задача, задаваемая извне. (Подробнее — в модуле 6 про адаптивные системы.)

Back-pressure: максимум пропускной способности без координации

Распределённый алгоритм управления на основе back-pressure (давление очереди) позволяет каждому перекрёстку принимать решения самостоятельно, глядя только на длины очередей в соседних звеньях: активируй ту фазу, у которой разница очередей «туда» и «оттуда» максимальна. Математически доказано, что этот алгоритм максимизирует пропускную способность всей сети.

Но у него нет зелёной волны: каждый перекрёсток действует независимо, coordination по offset'у отсутствует принципиально. Это фундаментальный trade-off: локальная оптимальность против глобальной координации. (Подробнее — в модуле 6.)

Перемаршрутизация водителей меняет результат

Ключевой инсайт сетевого уровня, который легко упустить: оптимизация светофоров меняет маршруты. Снизили задержку на одном коридоре — туда потёк трафик с соседних улиц. Нагрузка выросла — часть выигрыша испарилась. Ceylan & Bell и Teklu et al. формализовали это как задачу сетевого проектирования в равновесии (Equilibrium Network Design Problem): нельзя оптимизировать сигналы, не учитывая, как водители на это отреагируют.

🚩 Красный флаг

Традиционные инструменты (MAXBAND, TRANSYT, PASSER) оптимизируют при фиксированных потоках. В реальности потоки меняются в ответ на оптимизацию. Чем выше загрузка сети, тем значительнее это расхождение — и тем меньше реальный эффект от рассчитанного «оптимального» плана.


⚡ Запомнить
  • Offset (сдвиг) — разница во времени начала зелёного между соседними перекрёстками. Цель: платон машин приезжает к следующему перекрёстку ровно к зелёному.
  • Синхронизация цикла — обязательное условие: все перекрёстки артерии должны иметь одинаковый (или кратный) цикл, иначе волна «плывёт» и разрушается.
  • Bandwidth — ширина «зелёного коридора» на диаграмме путь-время; чем шире, тем больший платон проходит артерию без остановок. «Зелёная волна» — это видимый на диаграмме наклонный коридор без красных зон.
  • MAXBAND находит глобально оптимальные offset'ы для максимизации bandwidth (MILP); PASSER донастраивает offset внутри slack time для снижения задержки; TRANSYT минимизирует задержку на уровне всей сети.
  • Неверный offset хуже, чем его отсутствие: неправильная координация систематически ставит машины на красный — это не нейтральный вариант, а гарантированный ущерб.
  • Широкая волна — компромисс: оптимизация под главную артерию ухудшает боковые улицы, пешеходов и обратное направление; двунаправленная волна всегда компромисс.
  • Оптимизация сигналов меняет маршруты водителей: снизили задержку на коридоре — туда потёк трафик с соседних улиц; реальный эффект меньше расчётного, если не учитывать перемаршрутизацию (Ceylan/Bell, Teklu et al.).
  • Store-and-forward и back-pressure — инструменты сетевого уровня для насыщенного трафика; они не создают зелёную волну, а управляют очередями. Координация по offset'у — отдельная задача.

Проверь себя: перекрёстки A и B стоят на расстоянии 400 м, средняя скорость потока — 50 км/ч (≈14 м/с). Инженер устанавливает offset = 60 сек. Что произойдёт с платоном машин, отъехавших от A?
Расстояние 400 м при скорости 14 м/с платон преодолевает за ≈28 сек. Offset = 60 сек означает: зелёный на B появится на 60 сек позже A. Машины приедут через 28 сек — и будут ждать ещё 32 сек до зелёного. Это хуже, чем независимые светофоры: координация без расчёта создаёт искусственную задержку. Правильный offset здесь — около 28–30 сек.

Источники модуля: Little J.D.C., Kelson M.D., Gartner N.H. MAXBAND: A Versatile Program for Setting Signals on Arteries and Triangular Networks (1981); Chang E.C.P., Messer C.J., Marsden J.H. PASSER II-84 (1984); Ceylan H., Bell M.G.H. Traffic signal timing optimisation based on genetic algorithm approach, including drivers' routing, Transportation Research Part B (2004); Teklu F., Sumalee A., Watling D. A genetic algorithm approach for optimising traffic control signals considering routing, Computer-Aided Civil and Infrastructure Engineering (2007).

Часть III · Реальное время. Светофор, который подстраивается под живой поток. Поднимаемся по лестнице «интеллекта» — от жёсткого расписания к адаптивным системам — и заглядываем на передний край: Max-Pressure и обучение с подкреплением.
Часть III Реальное время

Модуль 5. От расписания к адаптивности

Лестница «интеллекта» светофора: от жёсткого расписания до систем, которые подстраиваются под поток каждый цикл.

🎯 О чём модуль

Мы пройдём по трём ступеням управления светофором — от плана-расписания до адаптивных систем реального времени. На каждой ступени разберём механику: что именно меняется, как детектируется спрос, что система умеет делать, а что нет. Особое внимание — практическому вопросу: когда адаптивность оправдана, а когда достаточно хорошо настроенной координации.

Связь с предыдущим материалом: базовые параметры (сплит (split), сдвиг (offset), цикл (cycle)) и LOS-метрики разобраны в предыдущих модулях — здесь мы смотрим, как разные типы управления этими параметрами распоряжаются.


Лестница режимов: три ступени «интеллекта»

Все существующие системы управления светофорами можно разместить на одной шкале: насколько быстро и насколько точно система реагирует на реальный поток. Три главные ступени этой лестницы:

Фиксированный режим — pretimed

Суть: все параметры цикла — длина, сплит каждой фазы, сдвиг между перекрёстками — заданы заранее и не меняются в зависимости от того, сколько машин сейчас на дороге. Детекторов для управления не нужно. Контроллер просто воспроизводит план по расписанию.

Где работает хорошо: плотные центральные кварталы с предсказуемым и устойчивым потоком, координированные артерии с близко расположенными перекрёстками (когда нужна жёсткая «зелёная волна»), рабочие зоны с особым режимом. Претаймед дёшев и прост: меньше оборудования, меньше точек отказа.

Главный изъян: план стареет. Потоки меняются с годами — и фиксированные timing-планы деградируют примерно на 3% в год. Через 5–7 лет без перекалибровки потери заметны. На непредсказуемых потоках (спортивные события, случайные заторы, изменение маршрутов) план вообще не работает — он «не знает», что происходит прямо сейчас.

Вызывной режим — actuated

Суть: детекторы на подъездах к перекрёстку «вызывают» (call) фазу — сообщают контроллеру, что есть спрос. Контроллер гибко управляет длиной фаз, ориентируясь на фактический трафик прямо сейчас.

Два ключевых механизма управления длиной фазы в вызывном режиме:

  • Gap-out (завершение по промежутку): детектор не фиксирует машины в течение заданного времени — значит, поток иссяк, фазу можно завершить досрочно. Это нормальное, «хорошее» завершение: зелёный не «доматывается» впустую.
  • Max-out (завершение по максимуму): поток не прерывается, но зелёный исчерпал допустимый максимум — контроллер переключается принудительно. Частый max-out — сигнал: спрос превышает выделенное зелёное, нужна перенастройка.

Варианты: полу-вызывной (semi-actuated) — детекция только на второстепенных направлениях, главная улица «отдыхает» на зелёном; полностью вызывной (fully-actuated) — детекция на всех подходах, максимальная гибкость.

Ограничение: вызывной режим реагирует на локальный спрос, но не координирует перекрёстки между собой. Каждый перекрёсток «думает» сам за себя. Без координации нет «зелёной волны».

📊 Gap-out vs Max-out на практике

Здоровое соотношение: в межпиковые часы фазы завершаются преимущественно по gap-out (поток разредился — незачем держать зелёный). В часы пик часть фаз завершается по max-out — это нормально, но если max-out становится частым явлением вне пика, это красный флаг перегрузки или неверных настроек максимального зелёного.

Адаптивный режим — adaptive / ASCT

Суть: система непрерывно измеряет реальный трафик и в реальном времени корректирует параметры — сплит, сдвиг, длину цикла. Не переключается между заранее заготовленными планами, а подстраивается внутри текущих условий.

Именно этим адаптивный (adaptive) режим отличается от traffic-responsive: последний просто выбирает один из нескольких готовых планов из библиотеки в зависимости от условий, но сами планы фиксированы. Адаптив же меняет параметры прямо «на лету».


Адаптивные системы: что именно они крутят и как

Все три ступени объединяет одно: они работают с одним и тем же набором параметров. Адаптивные системы подстраивают сплит, сдвиг и длину цикла малыми шагами, не переключая планы — это принципиально. Резкая смена планов создаёт «встряску» для всей сети; инкрементальная подстройка её избегает.

Разберём четыре наиболее известные системы — каждая реализует идею адаптивности по-своему.

SCOOT — Split Cycle and Offset Optimisation Technique

Британская система реального времени (Transport Research Laboratory, разработана в 1970–80-е), установлена в более чем 130 городах мира. Центральный принцип: три независимых оптимизатора работают параллельно и вносят небольшие инкрементальные изменения — без переключения планов, без «встряски» сети.

  • Split Optimiser (оптимизатор расщепления). Срабатывает при каждой смене фазы. Сдвигает момент переключения вперёд или назад на 1–4 секунды. Реагирует быстрее всего.
  • Offset Optimiser (оптимизатор смещения). Работает раз в цикл для каждого перекрёстка. Сравнивает профили потока с соседними перекрёстками и решает: ускорить, задержать или оставить сдвиг без изменений. Шаг — 4 секунды.
  • Cycle Time Optimiser (оптимизатор длины цикла). Срабатывает раз в 5 минут (или в 2,5 минуты при быстром росте очередей) на уровне группы перекрёстков. Подбирает длину цикла так, чтобы загрузка наиболее нагруженного перекрёстка группы составляла 90%. Шаг изменения: 4, 8 или 16 секунд.

Детекторы устанавливаются на каждом подъезде к перекрёстку — выше по потоку (upstream), не у стоп-линии. Они не просто считают машины, а формируют cyclic flow profiles — профиль распределения потока в течение одного цикла. Из этих профилей SCOOT «видит», где формируется очередь, и предсказывает её поведение.

📊 Эффект SCOOT: задокументированные результаты

Сравнение с нескоординированным вызывным управлением: −23% задержек в Вустере, −30% в Саутгемптоне. Сравнение с хорошим фиксированным планом: −12% в Глазго, −27% в Ковентри. В Торонто при тестовом запуске — −14%, а во время бейсбольных матчей (нестандартный поток) — до −61%. Именно нестандартные ситуации показывают наибольший выигрыш: фиксированный план их не предвидит, SCOOT подстраивается.

SCATS — Sydney Coordinated Adaptive Traffic System

Австралийская система с другой архитектурой: детекторы расположены у стоп-линии (в каждой полосе), а сам алгоритм работает на двух уровнях. Стратегический уровень управляет общим циклом подсистемы из 1–10 перекрёстков и держит степень насыщения около 0,9. Тактический уровень даёт локальную гибкость — фазу можно пропустить, сократить или продлить. Вычисления распределены: local → regional → central. Логика работы напоминает SCOOT — те же три параметра, тот же принцип малых шагов.

RHODES — Real-time Hierarchical Optimized Distributed Effective System

Исследовательская система (Mirchandani & Head, University of Arizona), разработанная в рамках программы FHWA. Её идея принципиально отличается от SCOOT: не «реагировать на поток», а «предсказывать прибытия и заранее выставлять оптимальные фазы».

RHODES строит трёхуровневую иерархию:

  1. Сетевой уровень (горизонт: минуты–часы). Медленно меняющиеся характеристики: геометрия, маршруты, нагрузка на каждое звено. Обновляется редко.
  2. Уровень потоков (горизонт: 200–300 секунд). Работает с платонами (platoons) — плотными группами машин. Модель REALBAND предсказывает движение платонов через сеть из ~9 перекрёстков, выстраивает «зелёные волны» под реально наблюдаемые группы.
  3. Уровень перекрёстка (горизонт: 20–60 секунд). Работает с отдельными автомобилями. Алгоритм COP применяет динамическое программирование (dynamic programming) на скользящем горизонте: каждые несколько секунд пересчитывается оптимальная последовательность и длительность фаз. При этом RHODES может полностью пропустить фазу, если спрос на ней нулевой — чего не умеет претаймед.

Горизонт прогноза прибытий на перекрёсток — 20–40 секунд; на уровне сети — 200–300 секунд. RHODES явно моделирует случайность потока: вероятности поворотов, неопределённость прибытий — решение строится на вероятностной, а не детерминированной картине трафика.

Для дотошных RHODES vs SCOOT: принципиальное различие

SCOOT работает с cyclic flow profiles — средними историческими профилями потока за цикл. Он не предсказывает, куда поедет конкретная группа машин, — он держит онлайн-модель очереди и вносит малые коррекции. RHODES, напротив, строит явный прогноз прибытий: детектор на подъезде к перекрёстку B фиксирует машину, система знает время хода B→A, текущую очередь у A, и формирует вероятностный профиль прибытия этой машины к A. Алгоритм COP на уровне перекрёстка A уже «знает», кто едет к нему, и выставляет фазы упреждающе. SCOOT — ретроспективная подстройка малыми шагами; RHODES — упреждающая оптимизация с явной неопределённостью.

OPAC — Optimized Policies for Adaptive Control

Ещё одна система из программы FHWA RT-TRACS. Принцип — rolling horizon: на каждом шаге решается задача оптимизации на конечном горизонте, реализуется первый шаг, горизонт сдвигается. По архитектуре ближе к RHODES, чем к SCOOT: не инкрементальная подстройка, а явная оптимизация последовательности фаз.


Когда адаптив оправдан — а когда нет

Руководство FHWA по ASCT (Adaptive Signal Control Technology) отвечает на этот вопрос прямо. Вот практические критерии.

Когда адаптив нужен

  • Непредсказуемый спрос. Трафик рядом со спортивными аренами, аэропортами, туристическими зонами — поток меняется непредсказуемо, фиксированный план не справляется.
  • Традиционные методы уже исчерпаны. Если планы time-of-day и traffic-responsive уже применялись — и результат всё равно неудовлетворителен.
  • Ожидаемый рост нагрузки. Рост потока на 50% за 10 лет означает, что любой новый фиксированный план устареет раньше срока.
  • Разнородные перекрёстки в одной сети. Если «естественная» длина цикла для каждого перекрёстка своя — координация на общем фиксированном цикле неэффективна, адаптив справляется лучше.

Когда адаптив НЕ оправдан

  • Нет ресурсов на сопровождение. ASCT — это не «поставил и забыл». Система требует постоянного экспертного мониторинга, периодической валидации, донастройки. FHWA прямо указывает: значительная часть внедрённых ASCT-систем была деактивирована досрочно именно из-за отсутствия поддержки.
  • Плохая базовая настройка. Адаптив работает поверх базовых timing-параметров. Если база кривая — адаптив её не исправит.
  • Нет детекторной инфраструктуры. Без качественных данных с каждого подъезда адаптации просто не из чего строить.
  • Трафик стабилен и предсказуем. Если поток ведёт себя по расписанию — хорошо настроенной координации достаточно, выигрыш адаптива невелик.
  • Закупка по lowest-bid. ASCT — сложная система, требующая интеграции и кастомизации. Нельзя закупать её как стандартное коробочное решение.
🚩 Красный флаг

Адаптивные системы — не серебряная пуля. Прежде чем рассматривать ASCT, необходимо исчерпать возможности традиционной координации: обновить timing-планы, проверить детекторную инфраструктуру, настроить gap-out/max-out. Большинству сетей традиционных методов хватает — и они дешевле в сопровождении. Адаптив оправдан там, где этих инструментов объективно недостаточно и где есть команда, которая будет его поддерживать.


Почему фиксированный план деградирует

Ключевой аргумент в пользу адаптивности — не только «умные алгоритмы», но и простой факт устаревания. Фиксированные timing-планы деградируют примерно на 3% в год по мере того, как меняются потоки, застройка, маршруты. Через пять лет без перекалибровки это может дать −15% к эффективности.

Именно поэтому сравнение SCOOT с «хорошим фиксированным планом» даёт меньший выигрыш (−12% в Глазго), чем с «устаревшим планом» (−23–30% в Вустере и Саутгемптоне): чем дольше план не обновлялся, тем больше выигрывает адаптив. Перекалибровка фиксированных планов — трудоёмкая работа (для Торонто она оценивалась в 30 person-years только на одну актуализацию). Адаптивная система снижает скорость устаревания, но не обнуляет его — качество детекции и базовые настройки всё равно нуждаются в поддержке.


⚡ Запомнить
  • Три ступени интеллекта: претаймед (жёсткий план) → вызывной (по детекторам) → адаптивный (реальное время). Координация — отдельная ось: она возможна на любой ступени.
  • Вызывной режим работает через gap-out (поток иссяк → досрочное завершение) и max-out (упёрлись в максимум → принудительное переключение). Частый max-out вне пика — сигнал неправильной настройки.
  • Адаптив подстраивает три параметра: сплит (split), сдвиг (offset) и длину цикла (cycle) — малыми инкрементальными шагами, без переключения планов.
  • SCOOT — три параллельных оптимизатора (split, offset, cycle), инкрементальные шаги, держит загрузку ≤90%. Документированный эффект: −12–30% задержек в зависимости от базы сравнения.
  • RHODES — упреждающая оптимизация: прогнозирует прибытия машин (горизонт 20–40 сек), строит иерархию от сети до отдельного авто, использует динамическое программирование.
  • Фиксированный план деградирует ~3%/год — без перекалибровки через несколько лет потери становятся ощутимыми.
  • Адаптив оправдан при непредсказуемом спросе и наличии ресурсов на сопровождение. «Поставил и забыл» — не работает: значительная доля ASCT-систем была деактивирована из-за отсутствия поддержки.
  • Нельзя закупать ASCT по lowest-bid и нельзя ставить его поверх плохо настроенной базовой системы — адаптив не исправит кривые параметры «снизу».

Проверь себя: перекрёсток завершает зелёную фазу досрочно, потому что детектор не фиксирует машин несколько секунд подряд. Как называется этот режим завершения?
Верно. Gap-out — нормальное, «здоровое» завершение фазы: детектор не видит машин в течение заданного промежутка, значит поток разредился и зелёный держать незачем. Max-out — это когда поток не прерывается, но зелёный исчерпал максимально допустимую длину. Force-off — принудительное завершение при работе в координированной системе по общему расписанию цикла.

Источники модуля: Robertson & Bretherton (1995) — SCOOT Traffic Advisory Leaflet 4/95, UK DoT; Mirchandani & Head (2001) — «RHODES: A Real-Time Traffic Signal Control System», Transportation Research Part C; FHWA (2012) — «Model Systems Engineering Documents for Adaptive Signal Control Technology Systems», FHWA-HOP-11-027; Madrigal Arteaga et al. (2022) — «Efficient Intersection Management Based on Adaptive Fuzzy-Logic Traffic Signal», Applied Sciences; FHWA Traffic Control Systems Handbook, FHWA-HOP-06-006 (2005).

Часть III Реальное время · передний край

Модуль 6. Max-Pressure и обучение с подкреплением

Что приходит на смену классике в исследованиях — и почему в продакшене пока правит классика.

🎯 О чём модуль

В предыдущих модулях мы разобрали инструменты, которые давно работают в городах: Webster, SCOOT, SCATS, актуированное управление. Этот модуль — про два направления, которые либо уже на пороге практики (Max-Pressure), либо ещё остаются исследовательским фронтиром (RL). Разберём идеи без тяжёлой математики: что за принцип, зачем он нужен, что он меняет, где не справляется. После модуля у вас будет ориентир: почему в пилотах мелькают RL-системы, а в городах по-прежнему стоит SCOOT.


Max-Pressure: управление по давлению

Представьте водопровод. Вода сама течёт туда, где давление ниже — не нужен диспетчер, который решает, куда открыть кран. Max-Pressure (максимальное давление, MP) — это тот же принцип, перенесённый на дорожную сеть.

Идея простая: у каждого направления на перекрёстке есть своё «давление» — это разница между очередью до перекрёстка и очередью после него. Если на въезде с севера стоит 20 машин, а на выезде на юг — только 3, давление этого направления высокое. Светофор даёт зелёный туда, где давление максимально — туда, где «вода» (поток) сильнее всего хочет протечь.

Формально: алгоритм на каждом шаге выбирает фазу с максимальным суммарным давлением среди всех допустимых фаз. Давление фазы — сумма взвешенных разниц между очередями на въездах и выездах для каждого разрешённого в этой фазе движения.

Попробуй сам. Сетка в перегрузе, и фиксированная программа здесь с неидеальным сдвигом фаз — она встаёт в затор (перекрёстки краснеют, пропускная падает). Переключи режим на Max-Pressure: он раздаёт зелёный по давлению (очередь до − очередь после), без всякой общей координации — и сеть едет.

📊 Кейс / факт

Главное теоретическое свойство MP (доказано Varaiya, UC Berkeley): если существует хоть какая-то стратегия управления, способная справиться с имеющимся спросом, — Max-Pressure тоже справится. Это называется maximum stability. При этом алгоритм не знает спрос заранее, не строит прогнозов и не нуждается в центральном компьютере: каждый перекрёсток смотрит только на соседние очереди и принимает решение самостоятельно.

Два свойства в связке — максимальная стабильность и децентрализованность — делают MP теоретически элегантным. В отличие от SCOOT, которому нужна коммуникационная инфраструктура и центральный компьютер, MP масштабируется на крупные сети без центра управления.

Ограничения классического MP

У классического MP есть серьёзный практический изъян: он ацикличен. Это значит, что фазы не следуют в предсказуемом порядке — в каждый момент активируется любая фаза с максимальным давлением. Пешеходу может пришлось ждать несколько минут, потому что «его» фазе не доставалось давления. Водители видят «пропущенные» циклы и думают, что светофор сломан. Транспортные инженеры такое не принимают.

Решение нашёл Levin (2019, Университет Миннесоты): добавить ограничение — фазы обязаны следовать в фиксированном циклическом порядке, а максимальная длина цикла ограничена сверху. Доказано, что при этих ограничениях максимальная стабильность сохраняется. Немного сужается «зона обслуживаемых спросов», но для реальных условий это несущественно.

Другая проблема классики — нужно измерять длину очереди на каждом подъезде в реальном времени. Это дорого: детекторы по всей длине полосы или видеообработка. Liu & Gayah (Penn State, 2022) предложили заменить длину очереди на задержку трафика (delay-based MP, D-MP). Задержка нагляднее отражает реальный дискомфорт водителя, нелинейно растёт с перегрузкой и — что важно для практики — может оцениваться через GPS-данные подключённых автомобилей без дорогой инфраструктуры. Максимальная стабильность при этом сохраняется.


Обучение с подкреплением: светофор как агент

Классические методы управления работают по принципу «задал модель трафика — оптимизировал под неё». Беда в том, что модель упрощает реальность и устаревает при изменении спроса. Обучение с подкреплением (Reinforcement Learning, RL) предлагает другой путь: не задавать модель, а позволить светофору самому выучить стратегию управления через практику — методом проб и ошибок.

Представьте ребёнка, который учится ходить без инструкции. Он пробует, падает, получает «сигнал» (больно / не больно), и постепенно нарабатывает стратегию. RL — то же самое, только вместо ребёнка — алгоритм, а вместо ходьбы — управление светофором.

Три ключевых понятия:

  • Состояние (state) — что «видит» светофор в каждый момент: длины очередей на полосах, текущая фаза, время ожидания машин. В продвинутых методах — ещё и данные о соседних перекрёстках.
  • Действие (action) — решение алгоритма: переключить фазу или удержать текущую. В некоторых методах — выбрать конкретную фазу из набора допустимых.
  • Вознаграждение (reward) — обратная связь: штраф за длинные очереди или задержку машин. Алгоритм учится максимизировать суммарное вознаграждение со временем.
🚩 Красный флаг

Выбор reward-функции — самое важное решение в RL для светофоров. Reward, основанный только на локальных очередях, может минимизировать очереди на одном перекрёстке, создавая заторы на соседних. Маленькое изменение весов в сложном reward даёт принципиально разные результаты. PressLight (2019) показал: reward = минус давление (pressure) теоретически эквивалентен Max-Pressure — это делает его обоснованным, а не произвольным выбором.


Эволюция подходов: от таблицы к вниманию

За 25 лет RL-управление светофорами прошло путь от маленькой таблицы на 6 перекрёстках до графовых нейросетей на 200 узлах. Каждый шаг решал конкретную проблему предыдущего.

Шаг 1: Табличный Q-learning (2000-е)

Wiering (2000, ICML) показал, что несколько агентов-светофоров могут управлять сетью из 6 перекрёстков, обмениваясь информацией об очередях соседей. Алгоритм хранит таблицу: «в такой-то ситуации делай вот это действие». Работает — но таблица взрывается по размеру, когда перекрёстков много и состояний много. 6 перекрёстков — уже почти предел.

Шаг 2: Глубокое RL — DQN (с 2015)

Вместо таблицы — нейросеть, которая «видит» похожие ситуации и обобщает: проклятие размерности исчезает. IntelliLight (Wei et al., KDD 2018) стал первой работой, проверенной на реальных данных — 405 млн записей с 1704 камер в китайском Цзинане за 31 день. До этого все RL-методы тестировались только на синтетике. Результат: −32% длина очереди, −38% задержка по сравнению с лучшим бейзлайном.

Шаг 3: Много агентов — MARL (2018–2019)

Когда перекрёстков сотни, один центральный агент невозможен — пространство действий экспоненциально. Решение: каждый перекрёсток — независимый агент, но агенты обмениваются данными о соседях. MA2C (Chu et al., 2019) добавил «пространственный дисконт» — сигналы от дальних соседей учитываются меньше, чем от ближних.

Шаг 4: PressLight — мост к классике (KDD 2019)

Ключевая работа, соединяющая два мира. Wei et al. предложили: пусть reward = минус давление (разница между числом машин на въезде и выезде). Тогда RL, максимизируя этот reward, теоретически эквивалентен Max-Pressure — но обучается гибко, без жадных допущений. PressLight автоматически находит «зелёные волны» на артериалях без ручной настройки смещений. Протестировано на 6 реальных артериалях — Цзинань, Манхэттен, Пенсильвания.

Вывод для практики: правильный reward важнее сложной архитектуры нейросети. Теоретически обоснованный reward даёт предсказуемое поведение и быстрое обучение.

Шаг 5: Координация через внимание — CoLight (CIKM 2019)

Когда агент учитывает соседей, он должен понимать: какой сосед сейчас важнее? На одностороннем шоссе upstream-перекрёсток важнее downstream. CoLight (Wei et al.) добавил механизм внимания (attention): алгоритм динамически вычисляет, какому соседу уделить больше веса прямо сейчас, исходя из текущего трафика. Результат: сеть из 196 перекрёстков в Манхэттене — самый большой масштаб на тот момент. +12% по сравнению с Max-Pressure на реальном трафике.

Шаг 6: Meta-RL — учиться быстро (2020)

Обычный RL требует тысяч эпизодов на каждый новый перекрёсток. MetaLight (Zang et al., AAAI 2020) учится на множестве разных перекрёстков заранее — чтобы потом новый перекрёсток можно было «донастроить» за несколько шагов вместо тысяч. Аналог: опытный водитель быстрее адаптируется к новому автомобилю, чем новичок.

Для дотошных Формальная запись Max-Pressure

Давление фазы U при состоянии очередей q вычисляется как:

w(q,U) = Σ ς(l,m) · S · U(l,m)
где ς(l,m) = q(l,m) − Σ γ(m,p)·q(m,p) — разница очередей на въезде l→m и взвешенных выездах; S — насыщенный поток (saturation flow); γ(m,p) — коэффициент разворота (turning ratio)

Выбирается фаза с максимальным давлением: U*(q) = argmax { w(q,U) : U ∈ U }. В модели Varaiya saturation flow в экспериментах составлял 1188 авт/ч на каждое разрешённое движение, цикл T = 62 с, потери L = 10 с.

Для RL-версии (PressLight): reward rt = −Σ |qin(l) − qout(l)| по всем полосам перекрёстка. Это давление, взятое со знаком минус — алгоритм учится его минимизировать, что эквивалентно максимизации пропускной способности сети.


Симуляторы и проблема переноса в реальность

RL учится методом проб и ошибок. В реальном городе «ошибка» — это пробка или задержка машины скорой помощи. Поэтому RL-агенты обучаются в симуляторах — виртуальных моделях городского трафика, где можно совершать миллионы ошибок бесплатно.

Два основных симулятора:

  • SUMO (Simulation of Urban MObility) — открытый микроскопический симулятор, стандарт в транспортном сообществе. Тщательно откалиброван. Недостаток для RL: медленный — не масштабируется на городской уровень.
  • CityFlow (Zhang et al., WWW 2019) — создан специально для RL. В 20+ раз быстрее SUMO на сетках 30×30, поддерживает тысячи светофоров, имеет нативный Python-интерфейс для RL-агентов. Использован в PressLight, CoLight, MetaLight и других ключевых работах.

Sim-to-real gap — центральная нерешённая проблема

То, что хорошо работает в симуляторе, может провалиться на реальной дороге. Причины:

  1. Поведение водителей — в симуляции машины действуют по детерминированным правилам. В реальности — хаотично: пешеходы, велосипедисты, нарушения, агрессивные обгоны.
  2. Шум датчиков — реальные детекторы дают данные с задержкой, пропусками и ошибками. В симуляции данные идеальны и мгновенны.
  3. Отсутствие O-D матрицы — симулятор знает, откуда и куда едет каждая машина. В реальном городе таких полных данных, как правило, нет.
  4. Нестационарность — трафик меняется из-за строительства, событий, сезонов. Симулятор статичен.
📊 Кейс / факт

RESCO (Ault & Sharon, NeurIPS 2021) — первый стандартный бенчмарк для честного сравнения RL-алгоритмов. Построен на SUMO с реальными сценариями Кёльна и Ингольштадта. Главный вывод: алгоритмы, заявляющие state-of-the-art на синтетических данных, часто уступают простому Deep Q-learning в реалистичных городских сценариях. LibSignal (Mei et al., NeurIPS Workshop 2023) добавил: один и тот же алгоритм работает по-разному в SUMO и CityFlow на одних и тех же данных — симулятор имеет значение.


Почему RL пока не в продакшене

Академические результаты впечатляют. Почему же в городах по-прежнему стоят SCOOT, SCATS и адаптивные системы на классических алгоритмах, а не нейросети?

🚩 Красный флаг

Четыре барьера, которые RL пока не преодолел:

  • Безопасность обучения. RL улучшается, пробуя плохие стратегии. В реальном городе «плохая стратегия» — это пробка, задержка скорой помощи, потенциально авария. Область «безопасного RL» (Safe RL) существует, но для светофоров реализована слабо.
  • «Чёрный ящик» для регуляторов. Транспортный оператор должен уметь объяснить, почему светофор так переключился. Нейросеть этого объяснения не даёт. Регуляторные требования многих стран предполагают интерпретируемость. IntelliLight первым попытался это решить, но общей практики нет.
  • Требования к данным. Большинство RL-методов предполагают детальные данные о каждой полосе: число машин по сегментам, скорость, время ожидания. В реальных городах установлены петлевые детекторы, которые считают машины только в одной точке. Данных не хватает.
  • Sim-to-real gap. Агент учится в симуляторе — и мы не знаем, как он поведёт себя в реальности. Пилоты есть (несколько районов Ханчжоу), но массового деплоя нет.

Для сравнения: SCOOT стоит в 130+ городах, SCATS — во многих сотнях. У них 30 лет деплоев, понятные операторам принципы, доказанный эффект. Max-Pressure теоретически элегантен и уже ближе к практике — особенно в циклическом и delay-based вариантах. RL — исследовательский фронтир с единичными пилотами.


⚡ Запомнить
  • Max-Pressure — даём зелёный туда, где «давление» (разница очередей до и после перекрёстка) максимально. Аналог течения воды из области высокого давления в низкое.
  • Максимальная стабильность MP: если спрос вообще обслуживаем — MP его обслужит, без знания спроса заранее и без центрального компьютера. Это доказанное свойство.
  • Классический MP ацикличен — фазы не идут в предсказуемом порядке, пешеходы могут ждать неопределённо долго. Циклический MP (Levin, 2019) и delay-based MP решают эту проблему, сохраняя теоретические гарантии.
  • RL для светофора: агент = контроллер, состояние = очереди и фазы, действие = переключить или держать фазу, вознаграждение = штраф за задержку. Учится в симуляции, без явной модели трафика.
  • PressLight — мост между RL и классикой: reward = минус давление делает RL-агента теоретически эквивалентным Max-Pressure. Правильный reward важнее сложной архитектуры.
  • Эволюция за 25 лет: табличный Q-learning (6 перекрёстков) → DQN на реальных данных → MARL → граф внимания 196 перекрёстков → мета-обучение для быстрой адаптации.
  • Sim-to-real gap — главная нерешённая проблема. Хорошее в CityFlow не гарантирует работу на реальной дороге: водители непредсказуемы, датчики шумят, данных не хватает.
  • В продакшене доминирует классика: безопасность обучения, «чёрный ящик», требования к данным, отсутствие стандарта переноса из симуляции — всё это держит RL в пилотах. SCOOT/SCATS/Max-Pressure — тысячи городов.

Проверь себя: почему Max-Pressure теоретически обеспечивает максимальную стабильность сети?
Верно. Max-Pressure не прогнозирует спрос и не строит модель трафика. Он просто смотрит на текущие очереди и выбирает фазу с максимальной разницей «до/после». Varaiya доказал: этого достаточно для максимальной стабильности — при условии, что спрос вообще обслуживаем каким-либо управлением. Нейросети и оптимизация цикла — это другие подходы (RL и SCOOT соответственно).

Источники модуля: Varaiya P. «Max pressure control of a network of signalized intersections» (2013); Lioris & Varaiya «Variants of Max-Pressure Control for a Network of Signalized Intersections» (UC Berkeley); Levin «Max-pressure signal control with cyclical phase structure» (2019); Liu & Gayah «A Novel Max Pressure Algorithm Based on Traffic Delay» (Penn State, 2022); Wei et al. «PressLight: Learning Max Pressure Control to Coordinate Traffic Signals in Arterial Network» (KDD 2019); Wei et al. «CoLight: Learning Network-Level Cooperation for Traffic Signal Control» (CIKM 2019); Wei et al. «IntelliLight: A Reinforcement Learning Approach for Intelligent Traffic Light Control» (KDD 2018); Wei et al. «A Survey on Traffic Signal Control Methods» (2019); Zhang et al. «CityFlow: A Multi-Agent Reinforcement Learning Environment for Large Scale City Traffic Scenario» (WWW 2019); Ault & Sharon «Reinforcement Learning Benchmarks for Traffic Signal Control» (NeurIPS 2021); Mei et al. «LibSignal: An Open Library for Traffic Signal Control» (NeurIPS Workshop 2023).

Часть IV · Проблемы и практика. Где классическая настройка перестаёт помогать и что с этим делать: перенасыщение, приоритет транспорта, геометрия — и как внедрять оптимизацию так, чтобы эффект не растаял за год.
Часть IV Проблемы и практика

Модуль 7. Типовые проблемы и альтернативы

Где классическая настройка перестаёт работать — и какие инструменты есть кроме таймингов.

🎯 О чём модуль

Предыдущие модули строились на том, что классическая теория работает: есть спрос, есть пропускная способность, светофор их балансирует. В реальности у перекрёстков бывают состояния, при которых обычная логика «настрой цикл — получи минимум задержки» ломается. В этом модуле — два таких случая: перенасыщение (oversaturation), когда спрос устойчиво превышает пропускную способность, и специальные геометрии, где правильный ответ вообще находится за пределами таблиц таймингов. Параллельно — отдельный инструмент для городской среды: приоритет общественного транспорта (TSP).


Перенасыщение: другой режим работы

В модуле 3 мы видели, что задержка на перекрёстке определяется формулой Уэбстера. В ней есть член, пропорциональный 11 − x, где x — степень насыщения. При x → 1 этот член «взрывается»: задержка уходит в бесконечность. Это не просто плохой режим работы — это принципиально другой режим, у которого другие правила.

Точное определение перенасыщения (oversaturation): движение перенасыщено, когда спрос на него превышает пропускную способность по зелёному времени — то есть очередь, существующая в начале зелёного сигнала, не рассасывается полностью к его концу. Минимум один автомобиль переходит в следующий цикл — это overflow queue (переполненная очередь). До этого момента перекрёсток перегружен, но ещё не перенасыщен.

Смена цели управления

В нормальном режиме цель светофорного управления — минимизировать задержку. В перенасыщении эта цель становится неуместной: cycle failures неизбежны, каждый цикл кто-то не проедет. Ставить задачу «минимум задержки» при x > 1 — это как оптимизировать скорость самолёта, у которого закончилось топливо.

В перенасыщении цель меняется на максимизацию числа фактически обслуженных автомобилей (throughput). Вместо вопроса «как быстро проедет каждая машина?» — вопрос «сколько машин вообще проедет?». Соответственно меняется и главная метрика: не задержка, а соотношение output / input.

Временна́я классификация: насколько серьёзно?

  • Ситуативное (situational) — несколько последовательных циклов; рассасывается само при устранении причины (авария, короткий всплеск).
  • Перемежающееся (intermittent) — частые переходы между перенасыщенным и нормальным состоянием.
  • Устойчивое (persistent) — значительное число циклов подряд; слишком длительное, чтобы справиться обычным TOD-расписанием (менять тайминги чаще раза в 30 минут не принято).
  • Продолжительное (prolonged) — более одного TOD-периода подряд, обычно свыше 1,5 часа.

Характер перенасыщения определяет, какая стратегия уместна. Ситуативное — можно переждать. Устойчивое и продолжительное требуют активного управления очередями.

Как распознать: пространственные симптомы

🚩 Красный флаг

Spillback, gridlock, starvation — три признака того, что перенасыщение вышло за пределы одного перекрёстка. Spillback (выплёскивание): очередь от нижестоящего перекрёстка заполняет весь межперекрёстковый участок — upstream-движение получает «де-факто красный» даже при зелёном сигнале. Gridlock: крайний случай, одновременная блокировка нескольких движений, при которой зелёный подаётся, но автомобили физически не могут двигаться. Starvation (голодание): фаза зелёная, но машины не доезжают до стоп-линии — перекрыты очередью из другой полосы. Как только эти явления возникли — локальными изменениями таймингов ситуацию уже не исправить.

Распознать перенасыщение по данным детекторов позволяет простой признак: occupancy выше 85% на advance-детекторе в течение всего цикла — overflow-очередь достигла места детектора (подробнее о метриках — в модуле 2). Для понимания масштаба и направления распространения строят динамическую карту (dynamic map): поциклическую или 5-минутную визуализацию того, как зоны перенасыщения расширяются и рассасываются в пространстве и времени.

Стратегии при перенасыщении

Если перенасыщение носит устойчивый или продолжительный характер, инструментарий таймингов меняется.

Метеринг и gating (дозирование). Вместо того чтобы «протолкнуть» больше машин через перегруженный участок, вышестоящий сигнал намеренно сдерживает поток — не пускает машины быстрее, чем downstream успевает принять. Это «flared green» в логике Шепарда: наращивание зелёного вдоль артерии в направлении от затора, чтобы каждый следующий перекрёсток принимал ровно столько, сколько может обслужить.

«Обратная» прогрессия (reverse progression). При нормальном движении offset настраивается так, чтобы машины догоняли зелёный на следующем перекрёстке. При заторе логика обратная: зелёный на downstream-перекрёстке включается раньше upstream, давая очереди рассосаться прежде, чем первая машина с вышестоящего сигнала туда доедет.

Для дотошных TOSI и SOSI — два индекса интенсивности перенасыщения

NCHRP «Oversaturated Conditions» вводит два количественных индикатора, которые позволяют различать природу перенасыщения:

TOSI (Temporal Oversaturation Severity Index) — какая доля зелёного времени фазы уходит на обслуживание overflow-очереди (а не новых прибывающих). Диапазон: 0–100%+. При TOSI = 100% всё зелёное время съедает остаточная очередь — нужно добавить зелёного, если downstream позволяет. При TOSI > 100% очередь растёт быстрее, чем обслуживается — перераспределение зелёного не поможет, проблема вне перекрёстка.

SOSI (Spatial Oversaturation Severity Index) — какая доля зелёного времени теряется впустую из-за downstream-блокировки (spillback): машины не могут двигаться, хотя сигнал зелёный. При SOSI = 100% добавление зелёного данной фазе усугубляет проблему — нужно разбираться с нижестоящим перекрёстком или вводить gating.

Практический ключ: высокий TOSI + низкий SOSI → проблема временна́я, решается зелёным. Высокий SOSI → проблема пространственная, решается работой с downstream-offset или gating.


Приоритет общественного транспорта (TSP)

Когда речь идёт об оптимизации движения в городе, автобус — особый участник: один автобус перевозит десятки человек, и задержка на нескольких перекрёстках складывается в реальное опоздание рейса. TSP (Transit Signal Priority, приоритет общественного транспорта) — операционная стратегия, которая модифицирует нормальный режим работы светофора, чтобы облегчить проезд автобуса.

Важное различие: TSP — не вытеснение (pre-emption). Pre-emption полностью прерывает управление светофором — так работают сигналы для поездов и пожарных машин. TSP адаптирует цикл в рамках допустимых отклонений, не разрушая координацию артерии.

Механизмы активного TSP

  • Green extension (продление зелёного) — автобус подъезжает на зелёной фазе, зелёный продлевается на несколько секунд. Самый эффективный механизм: нет дополнительных интервалов очистки, не конфликтует с пешеходными сигналами.
  • Early green / Red truncation (ранний зелёный / сокращение красного) — автобус подходит на красном, конфликтующие фазы сокращаются, чтобы быстрее вернуть зелёный для направления ОТ. Применяется в паре с green extension.
  • Queue jump (прыжок очереди) — специальная актуированная фаза, позволяющая автобусу выехать на следующий участок раньше общего потока. Особенно полезен при остановках перед перекрёстком.
  • Phase insertion / Phase rotation — вставка дополнительной фазы или изменение порядка фаз. Используются в сложных сценариях, требуют тщательного расчёта влияния на цикл.

Условный приоритет: только опаздывающим

Безусловный приоритет запускается при каждом приближении автобуса — вне зависимости от того, опаздывает он или нет. Это дисбалансирует остальной трафик и может создать «ранние» прибытия, когда автобус систематически приезжает быстрее расписания.

Условный (conditional) приоритет предоставляется только автобусам, отстающим от расписания. Это позволяет избежать накопления «ранних» рейсов и снижает воздействие на общий поток.

Роль точного прогноза ETA

Классические TSP-системы работают с горизонтом обнаружения около 10 секунд: датчик фиксирует автобус вблизи стоп-линии, и контроллер получает запрос. Проблема в том, что 10 секунд — слишком мало, чтобы перестроить цикл. Если автобус стоит в очереди дальше точки детекции, запрос и вовсе не поступает. Результат классического TSP — в среднем около 3 секунд выигрыша на перекрёсток: статистически значимо, практически малозаметно.

Следующее поколение TSP меняет логику фундаментально: вместо детекции у стоп-линии — ML-прогноз ETA за 2 минуты, обновляемый каждую секунду через бортовые AVL-данные. Контроллер знает о приближении автобуса заранее и успевает перестроить весь цикл, а не продлить его на несколько секунд.

📊 Кейс / факт

Развёртывание системы LYT.transit на маршруте FX2 Division Street в Портленде (2025): на ключевых перекрёстках снижение задержки составило 29 секунд (−69% от базового значения), сокращение времени рейса — 8,2 минуты (−11%). Статистически значимое воздействие на общий трафик зафиксировано не было. Разница ML-прогноза (2 минуты) против классики (10 секунд) — результат отличается на порядок.


Геометрия как альтернатива таймингам

Светофорный контроллер — мощный инструмент. Но у него есть потолок: он работает с тем, что есть на перекрёстке. Если конфликтов слишком много, фаз слишком много, или физическая конфигурация создаёт неустранимые узкие места — иногда правильнее изменить сам перекрёсток, а не его тайминги. Три геометрических альтернативы.

Кольцевой перекрёсток (roundabout)

Современное кольцо (modern roundabout) — пересечение, где въезжающий уступает дорогу циркулирующему потоку, а геометрия принудительно снижает скорость въезда. Главное структурное преимущество перед светофором: нет потерянного времени на цикл. На светофоре каждая смена фазы — потери на жёлтый и реакцию водителей. Кольцо работает непрерывно: автомобиль ждёт только до подходящего разрыва в потоке, а не до следующего зелёного.

При объёмах ниже пропускной способности кольца задержка значительно ниже, чем на светофоре, — автомобиль не ждёт красного при пустом перекрёстке. Безопасность — второй козырь: геометрия исключает лобовые столкновения и угловые ДТП на высокой скорости. Типичные ДТП на кольце — низкоскоростные касательные, тяжесть последствий резко ниже. Для сельских высокоскоростных перекрёстков кольцо — наиболее доказанное средство снижения смертности.

Ограничения: при высоких и асимметричных объёмах многополосное кольцо может уступать светофору по пропускной способности. Для пешеходов с нарушениями зрения отсутствие звукового сигнала требует специального проектирования. Плохо совместимо с высокочастотным ОТ — автобус не может получить приоритет на кольце, в отличие от светофора.

Расходящийся бриллиантовый узел (DDI, Diverging Diamond Interchange)

DDI — тип светофорной развязки, в котором движение переходит на левую сторону дороги между двумя перекрёстками-кроссоверами. Казалось бы, странное решение — но именно в этом его логика.

В классическом алмазном узле левый поворот с шоссейной рампы пересекает встречный поток — это конфликт, требующий отдельной защищённой фазы. В DDI съезжающий автомобиль уже находится на «левой» стороне дороги: левый поворот на рампу не конфликтует со встречным, потому что встречного на его пути нет. Результат — вместо 4–6 конфликтных фаз классического узла DDI обходится 2–4 фазами. Меньше фаз — меньше потерянного времени на каждый цикл, выше пропускная способность.

Канализирование (channelization)

Канализирование — использование физических элементов (выделенные полосы поворотов, островки, направляющие разметки) для организации и разделения конфликтующих потоков. Это, пожалуй, наиболее доступный инструмент: не требует сноса и перестройки перекрёстка, часто достаточно разметки и небольших островков.

С точки зрения светофорного управления канализирование — это геометрический эквивалент фазы. Каждая конфликтная точка, которую можно разделить пространственно (выделенная левоповоротная полоса, карман для правого поворота), — это сэкономленная фаза светофора и сэкономленное потерянное время. Формально: число полос и их специализация напрямую влияют на saturation flow S, а значит, на пропускную способность S·(g/c).

Важное предупреждение из NCHRP 279: over-channelization хуже, чем under-channelization. Чрезмерно сложные конфигурации запутывают незнакомых водителей, создают нарушения ожиданий и повышают аварийность. Правило: минимально необходимое разделение конфликтов, не больше.

📊 Кейс / факт

Проектирование перекрёстка и проектирование цикла светофора нельзя разделять. Все три геометрических решения — кольцо, DDI, канализирование — работают на одну цель: сократить число конфликтных фаз или устранить их полностью, снизив потерянное время, которое в базовом модуле определяется как l ≈ 2 с/фазу. Три фазы вместо шести — это уже совершенно другой оптимальный цикл по Уэбстеру.


⚡ Запомнить
  • Перенасыщение — не «плохие тайминги», а другой режим. Когда overflow-очередь переходит в следующий цикл, цель управления меняется с минимизации задержки на максимизацию throughput.
  • Член 1/(1−x) у Уэбстера взрывается при x → 1 — именно поэтому перенасыщение требует отдельного инструментария, а не просто «больше зелёного».
  • Spillback, gridlock, starvation — пространственные симптомы перенасыщения, вышедшего за пределы одного перекрёстка. При spillback добавление зелёного данной фазе может усугублять проблему (SOSI).
  • Стратегии при перенасыщении: gating/метеринг (сдержать поток выше) и обратная прогрессия (offset против направления движения). Цель — не протолкнуть, а управлять очередью.
  • TSP — модификация цикла, не прерывание. Классический TSP даёт ~3 с/перекрёсток. ML-прогноз ETA за 2 минуты (next-gen TSP) — до 29 с выигрыша на ключевых точках.
  • Условный приоритет (только опаздывающим) снижает воздействие TSP на общий трафик и избегает накопления «ранних» рейсов.
  • Кольцо устраняет потерянное время на цикл полностью — это структурное преимущество при любой нагрузке ниже capacity. При высоких объёмах требует capacity analysis.
  • DDI сокращает число фаз с 4–6 до 2–4 за счёт устранения конфликта левого поворота со встречным. Канализирование — геометрический эквивалент фазы: выделенная полоса экономит lost time не хуже, чем настройка таймингов.

Проверь себя: перекрёсток работает в устойчивом перенасыщении. Вы добавляете зелёное время критической фазе — но ситуация не улучшается, очередь продолжает расти. Что это означает?
Когда зелёное добавлено, но ситуация не улучшается — причина, скорее всего, пространственная (spillback): нижестоящий перекрёсток перегружен и не принимает поток. Это характеризует высокий SOSI. В такой ситуации правильное действие — работать с downstream-перекрёстком или вводить gating upstream, а не продолжать добавлять зелёное данной фазе.

Источники модуля: NCHRP «Oversaturated Intersection Control» (Gettman, Abbas, Liu, Skabardonis); Transit Signal Priority Handbook (ITS America / Kimley-Horn, 2005); Cesme et al., «Next-Generation TSP with Advanced ETA Prediction», Transportation Research Record, 2025; Roundabouts: An Informational Guide, 2nd Ed. (NCHRP Report 672, 2010); NCHRP 03-113 Signal Design Guidance for Diverging Diamond Interchanges; Intersection Channelization Design Guide (NCHRP Report 279, 1985).

Часть IV Проблемы и практика

Модуль 8. Внедрение и сопровождение

Как превратить принципы из этого курса в работающий проект — и удержать результат, когда город меняется.

🎯 О чём модуль

Предыдущие модули дали инструменты: расчёт цикла, координация, адаптивные системы, особые случаи. Этот модуль — о том, как всё это складывается в реальный процесс. Мы разберём главный методологический сдвиг в отрасли (outcome-based подход), поговорим об окупаемости ретайминга, о том, почему «поставил и забыл» — не стратегия, и о типичных ошибках, которые превращают хороший проект в провал. В финале — сборка всего курса в единую картину «измерь → настрой → проверь».


От «нажать Optimize» к outcome-based подходу

Главный сдвиг, который NCHRP 812 (Signal Timing Manual, 2-е изд.) вносит в отраслевую практику, звучит так: сначала — что мы хотим получить, потом — какими параметрами это достигнем. Звучит очевидно, но на практике процесс чаще идёт наоборот: загрузил объёмы в SYNCHRO, нажал «Optimize», получил значения с минимальной задержкой по модели — и на этом всё.

Проблема в том, что минимизация задержки (delay) из расчётной модели — это не цель, а способ измерения. Задержка в секундах удобно считается, но плохо ощущается водителем (модуль 2 уже касался этого: пользователи воспринимают сначала остановки, потом задержку). А значит, минимизируя именно её, вы рискуете оптимизировать не то, что реально влияет на опыт.

Outcome-based процесс (NCHRP 812, Exhibit 1-1) устроен иначе. Вот его восемь шагов:

  1. Определить операционную среду — юрисдикция, класс дороги, тип района (центр города, пригород, загородная магистраль). Один и тот же перекрёсток в деловом центре и в спальном районе — это разные задачи.
  2. Выявить пользователей — кто едет через этот перекрёсток: пешеходы, велосипедисты, легковые, грузовики, маршрутки, экстренные службы? Состав меняется по времени суток — утром пешеходов меньше, в обед — больше.
  3. Установить приоритеты пользователей и движений — в центральном деловом районе приоритет пешеходам, на загруженной артерии в час пик — сквозному потоку. Это управленческое решение, не техническое.
  4. Выбрать операционные цели — NCHRP 812 перечисляет 15: безопасность, пропускная способность, прогрессия по коридору, управление очередями, экологический эффект, доступность для маломобильных и другие. Цели могут противоречить друг другу — пешеходная доступность и скорость авто-потока часто тянут в разные стороны.
  5. Выбрать меры эффективности (MOE) — под каждую цель выбирается измеримый показатель. Для прогрессии — процент прибытий на зелёный (arrivals on green). Для безопасности — частота проездов на красный. Для пешеходов — соответствие walk-фазы нормативу.
  6. Разработать стратегии и значения таймингов — только теперь считаем цикл, сплиты, офсеты. Значения вытекают из целей, а не наоборот.
  7. Внедрить и наблюдать — поставить план, собрать данные, сравнить с ожидаемым, при необходимости донастроить.
  8. Мониторить и сопровождать — непрерывно, не раз в пять лет. Минимальный стандарт — ежегодный сбор объёмов в середине перегона (mid-block counts).
🚩 Красный флаг

Ключевой тезис NCHRP 812: нет универсального решения (not a one-size-fits-all). Задержка из расчётного программного обеспечения — не цель оптимизации, а лишь инструмент её измерения. Когда «цель» — цифра из модели, а не реальный исход для пользователей, процесс начинается не с того конца.


Окупаемость ретайминга: один из лучших ROI в транспорте

Ретайминг светофоров — одно из редких транспортных мероприятий, где отдача на вложенный рубль принципиально выше, чем у капитального строительства. Расширить дорогу — это годы проектирования, изъятие земли, сотни миллионов рублей. Перепрограммировать перекрёсток — это данные о потоках, работа инженера за компьютером и несколько часов на загрузку планов. По данным FHWA, стоимость перепрограммирования одного перекрёстка в США составляет около 4 500 долларов. При этом эффект — сокращение задержек, выбросов и числа остановок — наступает немедленно.

Почему тогда тайминги деградируют? Потому что транспортная среда непрерывно меняется. Жилой квартал строится — потоки перераспределяются. Торговый центр открывается — в пятницу вечером появляется пик, которого раньше не было. Парковка переносится — маршруты подъезда меняются. Тайминговый план, разработанный по данным трёхлетней давности, отражает уже не существующий город.

По оценкам отрасли, без обновлений план деградирует примерно на 3% эффективности в год. За пять лет это существенное накопленное ухудшение. При этом 38% агентств в США не перепрограммируют светофоры регулярно, а 49% не имеют достаточного штата для этого — по данным FHWA EDC-4.

Практический вывод: ретайминг — это не разовый проект, а регулярный цикл. Минимальный стандарт — ежегодное обновление данных об объёмах; полный пересмотр таймингов — по необходимости, но не реже чем каждые три года на активно изменяющихся коридорах.

Для дотошных Как оценить ROI ретайминга

Простейший расчёт: берём снижение суммарной задержки (авто-часов в сутки) × стоимость времени водителя × рабочие дни в году. Это user delay benefit. К нему добавляется выгода от снижения выбросов (меньше остановок → меньше холодного пуска двигателя → меньше CO, HC, NOx) и снижение расхода топлива. На практике транспортные агентства США обычно считают совокупный годовой выигрыш в разах к стоимости проекта ретайминга — и получают числа порядка 10:1 и выше. Это не маркетинг: дёшево потому что никакого строительства нет, выгода потому что задержка реальна.


Непрерывный мониторинг: от жалоб к данным

Классическая модель управления светофорами выглядит так: каждые несколько лет проводится полевой замер, по его результатам обновляются планы, после чего система работает сама по себе до следующего замера. Между замерами качество управления измеряется одним показателем — жалобами граждан.

Это сломанный KPI. Жалоба поступает через дни или недели после того, как проблема возникла. Она не говорит, где конкретно ошибка в таймингах. Она не отличает проблему, которую можно решить ретаймингом, от проблемы, которую создаёт просто высокий спрос.

Альтернатива — ATSPM (Automated Traffic Signal Performance Measures), подход к управлению на основе высокоразрешённых данных из контроллера. Контроллер в непрерывном режиме логирует события с точностью 0,1 секунды: каждая смена сигнала, каждый вызов от детектора. Из этого потока автоматически извлекаются метрики по каждой фазе и каждому перекрёстку.

Ключевые метрики ATSPM — те же, что мы разбирали в модуле 2, теперь в контексте непрерывного мониторинга:

  • Arrivals on Green (% прибытий на зелёный) — качество прогрессии. Норма для скоординированного коридора — выше 50–60%. Падение ниже — сигнал проверить офсеты.
  • Split Failures (отказы сплита) — фаза завершилась, а очередь не рассосалась: детектор занят в конце зелёного. Это прямой индикатор перенасыщения фазы и необходимости перераспределить зелёное время.
  • Purdue Coordination Diagram — визуальный «отпечаток» прогрессии: каждая точка — момент прибытия автомобиля относительно фазы цикла. Плотное облако в зелёной зоне — прогрессия работает; облако смещается в красную — офсет нужно корректировать.
  • Throughput — число автомобилей, обслуженных за цикл. В условиях перенасыщения это главная метрика (задержку в таких условиях минимизировать невозможно).

До 2016 года ATSPM внедряли 26 агентств в 12 штатах США. Главная ценность — проблема видна до того, как поступила жалоба. Плановый мониторинг раз в несколько лет превращается в непрерывный поток данных, на которые можно реагировать немедленно.

📊 Факт

Жалоба гражданина — реактивный сигнал с задержкой в дни и недели. ATSPM позволяет видеть split failures и деградацию прогрессии в реальном времени, до того как проблема стала ощутимой для водителей. По данным FHWA EDC-4, 38% транспортных агентств США не перепрограммируют светофоры регулярно; 49% не имеют для этого достаточного штата — именно поэтому автоматический мониторинг особенно важен.


Частые ошибки внедрения

Большинство провальных проектов по оптимизации светофоров проваливаются не из-за технических ошибок в расчётах, а из-за организационных и методологических просчётов. Разберём наиболее типичные.

Оптимизировали не ту метрику

Модель минимизирует задержку — и выдаёт план с длинным циклом, который хорошо выглядит в таблице, но на практике увеличивает число остановок на артерии и провоцирует жалобы. Помним: пользователь чувствует остановки раньше, чем задержку. Если цель — снижение жалоб, метрика — stops per km и arrivals on green, а не средняя задержка из модели.

«Поставил и забыл»

Самая распространённая ошибка. Ретайминг сделан, план загружен, проект закрыт. Через два года город изменился — новый торговый центр, перенесённая остановка, закрытый выезд — а тайминги всё ещё считают, что на улице 2022 год. Без планового ежегодного мониторинга объёмов и периодического пересмотра планов эффект ретайминга растворяется примерно по 3% в год.

Адаптивная система без сопровождения

Адаптивные системы (SCOOT, SCATS и другие) создают иллюзию, что мониторинг больше не нужен — «она сама адаптируется». Это не так. Алгоритм адаптируется к текущим детекторным данным, но он не исправляет неработающие детекторы, не пересматривает ограничения плана при радикальном изменении геометрии дороги, не ловит drift в данных. Адаптивная система без активного сопровождения деградирует так же, как pretimed — просто медленнее и незаметнее. (Подробнее об адаптивных системах — в модуле 6.)

Игнорирование остановок ради средней задержки

Типичный сценарий: инженер оптимизирует артериальный коридор под минимальную задержку, при этом выбирает длинный цикл и узкие окна прогрессии. Средняя задержка снижается на бумаге, но водители жалуются: «стало хуже». Причина — plan фокусируется на тех, кто попал в волну, и совсем не думает о тех, кто попал в красный. Баланс между throughput для «поймавших волну» и приемлемым ожиданием для остальных — это управленческое решение, а не то, что модель принимает автоматически.

Сравнение адаптивной системы с устаревшим baseline

Исследования SCATS, SCOOT и других адаптивных систем часто показывают впечатляющие цифры: снижение travel time на 16–42%. Но если читать методологию внимательно, окажется, что сравнение шло с планами трёхлетней давности или с fixed-time без актуации. Честный benchmark — хорошо настроенная актуированная TOD-система. В таком сравнении (Park City, Utah) эффект SCATS составил 7,6% в AM-пик и 3,9% в PM-пик — это реальная польза, но не десятикратная. Выбор baseline определяет результат не меньше, чем выбор системы.


Сборка курса: весь инструментарий в одной картине

За восемь модулей мы прошли полный цикл — от физики очереди у стоп-линии до программ национального масштаба. Самое время собрать всё это в одну рабочую картину.

Принцип «измерь → настрой → проверь» — сквозной стержень курса. Каждый инструмент встаёт на своё место в этом цикле:

  • Измерь. Модуль 2 дал язык метрик: control delay, LOS A–F, v/c, split failures, arrivals on green. Этот модуль (8) добавляет ATSPM как инфраструктуру непрерывного измерения — не раз в пять лет, а постоянно.
  • Настрой — одиночный перекрёсток. Модуль 3: формула Вебстера для оптимального цикла, расчёт сплитов и межтактовых интервалов. Базовый инструмент, когда перекрёсток изолирован или вы начинаете с нуля.
  • Настрой — артерия. Модуль 4: координация, «зелёная волна», офсеты. Как несколько перекрёстков с общим циклом дают прогрессию — и что за это платим в виде потерь на периферии.
  • Настрой — гибко. Модуль 5: актуированное управление (semi-actuated, fully-actuated), time-of-day планы. Как адаптировать тайминги к суточной и недельной динамике без отказа от координации.
  • Настрой — адаптивно. Модуль 6: SCOOT, SCATS, RHODES. Когда и зачем переходить к алгоритмической оптимизации в реальном времени — и почему сначала надо исчерпать возможности традиционных систем.
  • Особые случаи. Модуль 7: перенасыщение, пешеходы, Transit Signal Priority, школьные зоны, временные объезды. Инструменты, которые не вписываются в стандартный рецепт.
  • Проверь. Этот модуль: outcome-based подход как методология проверки не таймингов, а результата для пользователей. Мониторинг через ATSPM как операционная практика.

Всё это — не последовательность шагов, которые проходят один раз, а замкнутый цикл. Город меняется — метрики ухудшаются — ретайминг возвращает их на уровень — город меняется снова. Outcome-based процесс задаёт вопрос «что мы хотим получить?» на каждом витке, не только при первом запуске.


⚡ Запомнить
  • Outcome-based процесс (NCHRP 812) — сначала среда → пользователи → приоритеты → операционные цели → меры эффективности, и только потом значения таймингов. «Нет универсального решения».
  • Задержка из модели — не цель, а способ измерения. Пользователь воспринимает сначала остановки, потом задержку — значит метрики прогрессии (arrivals on green, stops per km) важнее средней задержки.
  • Ретайминг — один из лучших ROI в транспорте: стоимость минимальна, эффект немедленный. Перепрограммирование одного перекрёстка — ~$4 500 в США, без строительства и землеотвода.
  • Без сопровождения тайминги деградируют ~3%/год: город строится, маршруты меняются, план устаревает. Минимальный стандарт — ежегодное обновление данных об объёмах.
  • ATSPM переводит управление светофорами от жалоб к непрерывному мониторингу с разрешением 0,1 сек. Проблема видна до того, как водитель позвонил жаловаться.
  • Адаптивные системы не отменяют сопровождение — алгоритм не чинит сломанные детекторы и не замечает дрейф данных. «Поставил и забыл» работает одинаково плохо для pretimed и для SCATS.
  • Честный baseline для оценки эффекта — хорошо настроенная актуированная система, не устаревший fixed-time. Разница в 2–10 раз по числам — это разница в baseline, а не в системе.
  • Принцип «измерь → настрой → проверь» — замкнутый цикл, а не разовый проект. Вебстер даёт первую настройку; координация, актуация и адаптив — уровни сложности; ATSPM и outcome-based подход — механизм проверки и возврата на следующий виток.
📊 Кейс / факт

Ретайминг — самый дешёвый рычаг роста пропускной способности. Сравните: расширение одной полосы на городской артерии — годы согласований, изъятие земли, сотни миллионов рублей. Ретайминг — данные о потоках, инженер, несколько часов загрузки. Эффект сопоставим: грамотная оптимизация снижает задержки и число остановок на 10–40% на тех же самых дорогах. При этом выигрыш немедленный, обратимый и нарастает с каждым циклом обновления. Единственное условие — не «поставить и забыть», а сделать ретайминг регулярной практикой: собирать данные, обновлять планы, мониторить результат. Именно это и есть outcome-based подход в действии.


Проверь себя: в чём главная идея outcome-based подхода (NCHRP 812)?
Верно. Outcome-based процесс начинается с вопроса «что мы хотим получить для пользователей?» — среда, кто едет, какие приоритеты, какие цели. Только после этого выбираются меры эффективности и рассчитываются тайминги. Задержка из модели — не цель, а лишь один из способов измерить достижение цели. Адаптивные системы и выбор программного обеспечения — отдельный вопрос, не связанный с методологией постановки задачи.

Источники модуля: Signal Timing Manual 2nd Ed. (NCHRP 812, 2015); Traffic Signal Timing Manual (FHWA-HOP-08-024, 2008); FHWA EDC-4 Fact Sheet: Automated Traffic Signal Performance Measures (ATSPMs), 2016; Effectiveness of Adaptive Control (California PATH, UCB-ITS-PWP-2009-2, Gomes & Skabardonis); Adaptive Signal Control V: SCATS Evaluation in Park City, Utah (University of Utah, 2008).

Практикум каталог типовых узлов

🗂 Справочник перекрёстков

Двенадцать типовых конфигураций — от просёлочного перекрёстка с одной полосой до широкой магистрали 5×3, колец и развязок с эстакадой. Выберите архетип в каталоге — он откроется в едином симуляторе: по узлу поедут машины, потоки по каждому направлению настраиваются ползунками, а под ними живёт расчётная рекомендация — какой цикл и какое деление зелёного оптимальны для выставленного спроса.

🎯 Как пользоваться

Сузьте каталог фильтрами (тип · полосность · управление) и кликните карточку. В симуляторе: ползунки «Поток по направлениям» — это спрос; при наведении на ползунок соответствующая дорога подсвечивается на схеме, а полоска под ним показывает загрузку подхода v/c. Блок «⚙ Расчёт по Уэбстеру» пересчитывается на лету и сравнивает текущий план с оптимальным — кнопка «Применить рекомендацию» ставит расчётный план, и эффект виден по машинам и метрикам. У части перекрёстков есть выбор схемы светофора (разрешающий/защищённый левый, пешеходная фаза) и ползунок доли левых поворотов. У колец светофора нет — вместо плана считается ёмкость въездов и вердикт: справляется узел или пора менять геометрию. Кнопка ⛶ разворачивает симулятор во весь экран.

⚡ Что здесь тренируем

Связку «геометрия ↔ спрос ↔ управление»: одна и та же формула Уэбстера (Модуль 3) даёт разные ответы на разной геометрии — четырёхфазный проспект платит за защищённые левые потерянным временем, канализированный узел уводит правые мимо светофора, кольцо вовсе меняет вопрос — с «как делить зелёное» на «хватает ли ёмкости въездов». Развязки добавляют координацию двух узлов (Модуль 4): посмотрите на офсет в рекомендации.

🇷🇺 Повороты и схемы светофора — как в городах СНГ

Главная развилка настройки — что делать с левыми поворотами (Модуль 1). Разрешающий левый (типовая схема на средних узлах РФ): левые едут в одной фазе со встречными и ждут зазор — при большом встречном потоке одна машина «запирает» полосу, и в расчёте Уэбстера её поток входит с множителем-эквивалентом. Защищённый левый (крупные узлы, доп. секция «стрелка ←»): конфликт исключён, но каждая пара фаз добавляет ~8 с потерянного времени за цикл — цикл длиннее, ёмкость на фазу меньше. Правые в СНГ чаще идут либо совмещённо с прямым, либо по доп. секции / обходной дуге с уступкой (архетип «Канализированный»). На переходах у школ и в центрах — выделенная пешеходная фаза «всем машинам красный» (у нас — минимум 16 с). Переключайте схемы у «Городского 2×2» и «Магистрали 3×2» и двигайте долю левых — видно, при каком встречном потоке защищённая схема начинает выигрывать.

Практики России, Казахстана и Узбекистана — одна инженерная школа (Венская конвенция, наследие советских ГОСТ): те же фазные схемы, доп. секции и «уступи при повороте»; заметное отличие — в Казахстане и Узбекистане чаще ставят табло обратного отсчёта, а вот правого поворота на красный «по-американски» нет нигде — только по стрелке. Для расчётов это ничего не меняет: формулы Модуля 3 работают одинаково.

Тот же визуальный язык и модель движения (IDM), что и в остальных интерактивах курса; рекомендации — оценка по формулам, как в Модулях 3–4 и 7. Дальше — пошаговая оптимизация района.

Практикум от затора к зелёной волне

🚦 Пошаговая оптимизация района

Весь курс — в одном живом примере. Берём район из 12 перекрёстков в утреннем заторе (поток рвётся «в центр»), запускаем симуляцию и оживляем район по одному приёму за раз. После каждого приёма панель показывает что изменили на светофорах и как это сказалось на районе — честные «до → после».

🧭 Маршрут практикума — четыре приёма
  1. Деление зелёного — отдаём время главной, что в час пик везёт втрое больше; сеть выходит из перегруза (Модуль 3)
  2. Длина цикла — укорачиваем слишком длинный цикл: красный за круг короче, район едет быстрее, очереди тают (Модуль 3)
  3. Зелёная волна — сдвигаем фазы в коридор, чтобы ехать без остановок (Модуль 4)
  4. Расписание дня — утро, день, вечер, ночь: гибкая программа против единственного плана (Модуль 5)

Нажимайте «Применить» и наблюдайте за картой и метриками. Финальный шаг запускает целый день — с настоящим часом пик «в центр» утром и «из центра» вечером, рассветом, закатом и ночными фарами; всплывающая подсказка поясняет, что меняется в каждый период. Сравните гибкое расписание с единственной негибкой программой — разница особенно видна в вечерний пик, когда зелёную волну приходится разворачивать обратно.

Тот же движок микросимуляции, что и во всех интерактивах курса; замеры «до → после» считаются честно — усреднёнными теневыми прогонами до установившегося режима (табло на карте сходится к «после»). Дальше — полная песочница без ограничений.

Инструмент песочница

🧪 Песочница: симулятор перекрёстков

Полный движок без ограничений. Крутите всё — число перекрёстков, потоки, светофоры, режимы — и смотрите, как меняются время в пути, скорость, пропускная способность и загрузка v/c.

🎛 Что попробовать
  • Поднимите поток по главной выше пропускной способности — увидите, как v/c уходит за 1.0, а очереди забивают подходы.
  • Поставьте 3 перекрёстка и нажмите «Настроить зелёную волну» — сравните время в пути до и после.
  • Сделайте поток неравномерным и переключите режим на «вызывной» или «адаптивный» — сравните с фиксированным 50/50.

Это полная версия того же движка, что питает все интерактивы курса.