Скажу сразу: автобус приходит вовремя. Просто не для вас.

Звучит как обида на мироздание, но это математика, и довольно простая. Ей лет сто, у неё есть название (inspection paradox, парадокс инспекции, или, если по-нашему, парадокс времени ожидания). При этом она почти никогда не всплывает в разговоре на остановке. А зря: она объясняет, почему табличка «интервал 10 минут» и ваши реальные пятнадцать минут на ветру — не взаимоисключающие вещи.

Я полезла в это после одного утра в феврале. Стою на остановке, на табличке гордо написано «интервал в часы пик — 10 минут», в приложении автобус то «через 4 минуты», то «через 7», то вообще пропадает. Через 22 минуты из-за поворота выезжают три автобуса подряд, бампер в бампер. Первый битком, второй полупустой, третий вообще пустой и обгоняет первые два, не останавливаясь. На работу я опоздала пришла с готовой идеей для исследования.

Стоять и злиться было неконструктивно, поэтому я начала считать.

Замер базового уровня: сферический автобус в вакууме

Начнём с идеала. Автобус ходит строго раз в 10 минут, как швейцарские часы. Вы приходите на остановку, когда попало: не смотрите расписание, просто вышли из дома.

Сколько вы ждёте в среднем? Правильно, 5 минут. Вы с равной вероятностью попадаете в любую точку десятиминутного интервала, ждёте от нуля до десяти, в среднем половину.

Заведём табличку:

Сценарий

Средний интервал

Среднее ожидание

Строго по расписанию

10 мин

5,0 мин

Пока всё сходится с интуицией. Интуиция довольна, но ненадолго.

Ты ждёшь

Теперь немного испортим автобус. Средний интервал оставим ровно 10 минут, но пусть автобусы приходят неравномерно: 2 минуты, потом 18, потом снова 2, потом 18. В среднем как раз (2 + 18) / 2 = 10. Диспетчер в отчёте пишет «интервал 10 минут» и абсолютно прав.

Сколько теперь ждёт пассажир?

Возьмём час. За час проходит три пары «короткий + длинный». Из 60 минут 54 приходятся на длинные интервалы и только 6 на короткие. Значит, случайно пришедший пассажир в 90% случаев попадает в длинный интервал. Не в половине случаев, как хотелось бы, а в девяноста процентах.

В длинном интервале он ждёт в среднем 9 минут, в коротком 1. Считаем:

(54 × 9 + 6 × 1) / 60 = (486 + 6) / 60 = 8,2 мин

Средний интервал тот же, а ждём мы на 64% дольше.

Сценарий

Средний интервал

Среднее ожидание

Строго по расписанию

10 мин

5,0 мин

Чередование 2 / 18

10 мин

8,2 мин

Вот и весь фокус. Длинные интервалы длинные (спасибо кэп), поэтому в них попадает больше людей. Вы приходите на остановку не в случайный интервал, а в случайный момент времени, а моменты времени свалены в основном в длинных интервалах. Короткий интервал проскакивает мимо почти пустым, а длинный собирает толпу, и вы в этой толпе.

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

Общая формула, или проклятие теоремы

Если обобщить то, что мы сделали руками, выходит так. Вероятность попасть в интервал длины T пропорциональна T. Внутри интервала ждём в среднем T/2. Перемножаем, усредняем:

E[ожидание] = E[T²] / (2 · E[T])

А поскольку E[T²] — это дисперсия плюс квадрат среднего, формулу можно переписать в более человеческом виде:

E[ожидание] = (E[T] / 2) · (1 + CV²)

где CV — коэффициент вариации, то есть стандартное отклонение интервала, делённое на средний интервал.

Проверим на 2/18: среднее 10, отклонение 8, CV = 0,8, CV² = 0,64.

5 · (1 + 0,64) = 8,2

Сходится!

Смотрите, что тут важно. Первый множитель (половина интервала) — это то, что обещает табличка на остановке. Второй множитель — это налог на бардак. При идеальном расписании CV = 0, налог нулевой. Чем сильнее разброс, тем больше вы доплачиваете своим временем. И доплачиваете квадратично.

Пуассон, который не смотрит в расписание

Ладно, 2/18 — это пример из учебника. Что будет, если автобусы приходят вообще случайно? Каждую секунду с одинаковой маленькой вероятностью, без всякого расписания. Это пуассоновский поток, интервалы в нём распределены экспоненциально.

У экспоненциального распределения стандартное отклонение равно среднему. CV = 1, CV² = 1.

5 · (1 + 1) = 10 мин

Средний интервал 10 минут, и среднее ожидание тоже 10 минут.

Внимание вопрос! Какова средняя длина того интервала, в который вы попали? По той же логике E[T²] / E[T], для экспоненты это 2 · E[T] = 20 минут. Средний интервал на маршруте 10 минут, а средний интервал, внутри которого стоите вы, — 20. Это не баг. Это так устроены вероятности.

Сценарий

Средний интервал

Среднее ожидание

Строго по расписанию

10 мин

5,0 мин

Чередование 2 / 18

10 мин

8,2 мин

Пуассон (полный хаос)

10 мин

10,0 мин

В ожидании Годо

У экспоненты есть ещё одно свойство, от которого на остановке хочется лечь на асфальт. Она без памяти.

Формально: P(T > s + t | T > s) = P(T > t). По-человечески: если вы уже прождали 10 минут, ожидаемое время до автобуса по-прежнему 10 минут. Прождали двадцать — всё ещё десять. Мироздание не засчитывает вам уже отстоянное.

Вы стоите, мёрзнете, внутренний голос говорит «ну сейчас-то уж точно», а математика отвечает «ровно так же, как пять минут назад».

Правда, реальные автобусы не совсем пуассоновские. Расписание у них всё-таки есть, и это немного спасает. Но, как выяснится дальше, иногда реальность умудряется быть хуже пуассона.

Автобус иногда бывает паровозом

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

Есть такое явление, bus bunching, слипание автобусов. Механизм примерно такой. Автобус чуть задержался — пробка, светофор, бабушка с тележкой. Пока он задерживался, на следующих остановках накопилось больше людей, чем обычно. Значит, на каждой остановке он стоит дольше: все заходят, валидируют, кто-то спрашивает водителя про маршрут. Значит, задерживается ещё сильнее. Значит, людей впереди ещё больше.

А следующий за ним автобус видит обратную картину. Остановки почти пустые, их только что подмели. Он едет быстрее, чем по графику, и догоняет первого.

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

В пределе автобусы ходят парами. Посчитаем: интервалы 0 и 20 минут, среднее всё те же 10.

E[T²] = (0² + 20²) / 2 = 200
E[ожидание] = 200 / (2 · 10) = 10 мин

То есть два автобуса подряд по ожиданию эквивалентны одному автобусу раз в 20 минут. Просто с двумя водителями.

А если тройками (0, 0, 30), как в моё февральское утро?

E[T²] = 900 / 3 = 300
E[ожидание] = 300 / 20 = 15 мин

Сценарий

Средний интервал

Среднее ожидание

Строго по расписанию

10 мин

5,0 мин

Чередование 2 / 18

10 мин

8,2 мин

Пуассон (полный хаос)

10 мин

10,0 мин

Парами (0 / 20)

10 мин

10,0 мин

Тройками (0 / 0 / 30)

10 мин

15,0 мин

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

Мои замеры

Теория теорией, а что на реальном маршруте?

Стоять на остановке с секундомером по три часа я не готова, поэтому пошла другим путём. Город отдаёт положение автобусов через API (то самое, из которого рисует точки приложение). Я написала скрипт, который раз в 30 секунд опрашивал его и записывал момент, когда автобус моего маршрута проезжал мою остановку. Две рабочие недели, 10 дней, утро с 7:00 до 10:00 и вечер с 17:00 до 20:00. Шаг опроса 30 секунд даёт погрешность момента прибытия в пределах полминуты, для интервалов в десятки минут это терпимо.

Первый облом случился на третий день. В логах обнаружился интервал 27 минут, после которого автобус «материализовался» сразу на три остановки дальше моей. Оказалось, у некоторых машин трекер периодически отваливается, и автобус для API просто исчезает. Пришлось чистить: интервалы, где автобус пропадал с карты дольше чем на 5 минут, я выкинула. Таких набралось 6 штук. Не исключаю, что парочку пропущенных я не поймала, так что данные скорее чуть пессимистичнее реальности.

Вот что получилось:

утро:  n=176, mean=10,2 мин, sd=7,1 мин, CV=0,70 → ожидание 7,6 мин
вечер: n=158, mean=11,4 мин, sd=10,3 мин, CV=0,90 → ожидание 10,4 мин

Утро

Вечер

Интервал по табличке

10 мин

10 мин

Средний интервал по факту

10,2 мин

11,4 мин

Стандартное отклонение

7,1 мин

10,3 мин

CV

0,70

0,90

Интервалов короче 2 минут

9%

17%

Самый длинный интервал

31 мин

41 мин

Ожидание по формуле

7,6 мин

10,4 мин

Проверка на утре: 5,1 × (1 + 0,49) = 7,6. На вечере: 5,7 × (1 + 0,82) = 10,4. Сходится.

Средний интервал почти честный, перевозчик в среднем действительно возит раз в 10 минут (утром) и раз в 11 с хвостиком (вечером). Но вечером почти каждый шестой интервал короче двух минут, то есть каждый шестой автобус идёт в паре с соседним. Вечерний маршрут по ожиданию — практически чистый пуассон, хотя у него есть расписание, диспетчер и даже табличка.

Интереснее всего разброс по дням. Утренний CV гулял от 0,4 до 1,1, и самый плохой день совпал с самым дождливым. Дождь — это пробки, пробки — это первая задержка, а дальше карандаш падает сам.

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

n=20, среднее ожидание 8,1 мин, медиана 6,5 мин, максимум 24 мин

Формула обещала 7,6, вышло 8,1. Двадцать замеров — это смешно мало, разброс ожидания у меня был минут шесть, так что стандартная ошибка порядка 1,3 минуты, и полминуты разницы в неё спокойно влезают. Максимум в 24 минуты — это, разумеется, был дождливый вторник.

Второй раунд. Или нет?

Хотя... Из формулы следует вещь, которую я сначала проскочила, а она важнее всего остального.

Посмотрите ещё раз: (E[T] / 2) · (1 + CV²). Частота автобусов входит туда линейно, а разброс квадратично. Возьмём два маршрута:

Сценарий

Средний интервал

Среднее ожидание

Раз в 10 мин, хаос (CV = 1)

10 мин

10,0 мин

Раз в 15 мин, строго (CV = 0)

15 мин

7,5 мин

Автобус, который ходит в полтора раза реже, но ходит ровно, возит пассажиров быстрее. На треть меньше машин, водителей и топлива, а ожидание короче.

А теперь вернитесь к моей табличке. Утренний маршрут «раз в 10 минут» даёт 7,6 минуты ожидания. Идеальный автобус раз в 15 минут даёт 7,5. То есть мой маршрут по факту возит как автобус, который ходит в полтора раза реже. Треть машин на нём работает исключительно на CV.

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

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

Комментарии (29)


  1. cofein51
    19.10.2026 05:55

    Про интервал в 15 минут интересно, только как я понимаю, загруженность автобуса будет тоже на 30% больше и кто то не влезет?

    Я просто иногда бываю свидетелем как не все шпроты влезают в банку, и даже достать из кармана карточку для оплаты - проблематично. Но зато кондуктор не может подойти проверить оплату...

    Было что водитель не дожидаясь пока автобус превратится в шпротовозку - закрывал двери принудительно и уезжал. Тогда хоть какое то свободное пространство оставалось...

    Ну и скорость проезда по маршруту, хорошо наблюдаю я каждый день, когда если сел в 7 утра, то доехал до работы за 20 минут, а если сел в 7:30 когда часть людей уже выехали на машинах, то этот же маршрут на автобусе уже занимает 40 минут...


    1. german25avenue
      19.10.2026 05:55

      После поездок в Москве, Европе да даже в Азербайджане и Турции я вообще удивляюсь встрече кондукторов(не контроллеров) в забитом питерском автобусе, где чисто физически невозможно проверить и половину пассажиров.


    1. PatakinVVV
      19.10.2026 05:55

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


  1. sergyk2
    19.10.2026 05:55

    пришол на остановку - автобус будет через 5 минут
    подождал немного - щас будет <1

    смотриш - автобус будет через 18 минут.

    это квантовый транспорт проскачил мимо остановки. будещее нас тупило.


  1. KapasMordorov
    19.10.2026 05:55

    Исчезновение автобуса из трекера и возникновение из ниоткуда - это не баг, а фича.

    И этой фиче много, много лет.

    Просто вся эта система существует не для пользователей (косвенно - для них и иногда полезна).


  1. Shaman_RSHU
    19.10.2026 05:55

    С 2015 по 2019 в Питере каждое рабочее утро заводил ребёнка в школу, потом доходил до остановки и садился в автобус в одно и то же время, минута в минуту. Через шесть остановок автобус привозил меня на станцию откуда я ехал на электричке на работу. Потом всех выгнали на удалёнку и необходимость в таком маршруте отпала. Год назад нужно было также уехать по старому маршруту. Но автобус не пришел. Оказывается после транспортной реформы транспорт перестал ходить по расписанию (узнал на остановке, что теперь попасть под расписание электиричке - лотерея).

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


    1. german25avenue
      19.10.2026 05:55

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


      1. PatakinVVV
        19.10.2026 05:55

        Зато название у распределения интервалов красивое, французское...


    1. MaFrance351
      19.10.2026 05:55

      В Екатеринбурге:

      Хороший такой разброс, 12-40 минут. Наверное, как раз ситуация, как описывается тут.


      1. NutsUnderline
        19.10.2026 05:55

        прям шифровка, ребус. пока 42-55 не увидишь можно подумать что это время 12:40 так записано. ну и телефончик для жалоб приведен


  1. NikkiG
    19.10.2026 05:55

    Кажется тут некоторые проблемы с тервером

    Попадание в интервал и ожидание автобуса внутри интервала в течение часа - это связанные вещи, кажется их нельзя считать независимо)


    1. PatakinVVV
      19.10.2026 05:55

      На остановке при -15 градусах все эти тонкости тервера ощущаются одинаково неприятно))


  1. PatakinVVV
    19.10.2026 05:55

    Холдинг на контрольных точках водители редко соблюдают , у них свой план по кругам и штрафы за опоздание в парк, поэтому первый всегда летит с перегрузом, а второй нагоняет сзади)


    1. konst90
      19.10.2026 05:55

      А ещё бывает так, что на линии (или на разных линиях, но с общим участком) одновременно работают муниципальные автобусы и частные маршрутки. И тогда маршрутчики через Яндекс-Транспорт или аналогичное приложение отслеживают автобус, чтобы идти перед ним, то есть собрать максимум пассажиров.


      1. pavelsha
        19.10.2026 05:55

        Ого. Хай-технолоджи бус рейсинг?


    1. pavelsha
      19.10.2026 05:55

      Нужно убирать планы по кругам и выдать диспетчеру длинную и в меру тяжелую палку. Может тогда водители будут стараться соблюдать график по промежуточным точкам. Т. Е. Будут стараться приехать на остановку именно в то время, что указано в графике


      1. nixtonixto
        19.10.2026 05:55

        В Беларуси примерно так. Маршрутный компьютер в кабине водителя показывает отставание/опережение графика, и на остановки транспорт приходит с погрешностью около минуты. Скорость движения по маршруту около 40 км/ч и на конечных стоят минут по 10, поэтому отставание от графика могут легко нагнать. Водителей депремируют за нарушение графика и пережог топлива, поэтому лихачей нет, все чинно тошнят в своей правой полосе.


        1. pavelsha
          19.10.2026 05:55

          Если при этом автобусу выдали выделенную полосу, а легковушки и газельки стоят в пробках, то это "чинно тошнят" Будет быстрее чем личный транспорт и чем пешком или самокатом.


        1. nerudo
          19.10.2026 05:55

          С одной стороны это правильно, с другой - искусственно замедляет транспорт. Нужно, чтобы эта система адаптировалась под реальную дорожную обстановку.


        1. ardraeiss
          19.10.2026 05:55

          В Питере тоже в автобусах стоит озвучиватель остановок с экраном графика движения и дельтой от маршрута - это не сильно мешает лихим водятлам пытаться поэкономить себе и просто "въехал на остановку, не тормозя уехал"/"объехал остановку совсем увидев там три других иных маршрутов автобуса"; или постоять на остановке поджимая "конкурента" другого маршрута на въезде на неё
          Лечится ли это жалобавми - непонятно, потому что "с водителем провели беседу о необходимости останавливаться всегда" со стороны не проверяемо "а была ли беседа вообще". А на "ехал с выключенным номером и открылся встав до остановки, поэтому никто не успел сесть" отвечают "проверили, номер работает нормально".


  1. NutsUnderline
    19.10.2026 05:55

    спонсор исследования <экзотичное имя водителя маршрутки>. на самом деле здесь где то должен быть поправочный коэффициент "тупо забили на расписание".

    исходные данные по сути не точны. даже если их брать с gps на маршруте так там сразу много причин почему оно не работает. даже если есть некая утвержденная таблица то она проходит много стадий, правки не вносятся. эти все api могут с такой же точностью и маршрут на марсе отображать


  1. pavelsha
    19.10.2026 05:55

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

    "Слипание автобусов", " караваны троллейбусов". Явление реальное и массовое. Но я искренне не понимаю две вещи:

    • зачем водитель второго автобуса гонит быстрее графика, если этот график у него есть?

    • Какой длинны и веса должна быть палка в руках диспетчера, чтобы водители во втором случае соблюдали расписание?


    1. teecat
      19.10.2026 05:55

      Несколько раз ездил на маршрутах, где троллейбус/автобус едет со скоростью "пешком быстрее дойти". Мотор бедолага ревет... Как я понимаю сделано ровно для того, чтобы точно попадать в расписание - в случае чего всегда можно ускориться


    1. konst90
      19.10.2026 05:55

      • зачем водитель второго автобуса гонит быстрее графика, если этот график у него есть?

      Возможно, водитель второго автобуса едет по графику, а первый отстаёт.


      1. pavelsha
        19.10.2026 05:55

        Ещё раз посмотрите текст статьи и цитаты. Там явно в описании ситуации указано, что "догоняющий" Автобус едет быстрее графика, как минимум потому, что он легче и меньше стоит на остановках. Особо ушлые водители в таких случаях проезжают "пустые" остановки лишь притормаживая Или вообще не меняя скорость.


        1. ardraeiss
          19.10.2026 05:55

          Совсем лихие и непустые остановки могут проскакивать


    1. MaFrance351
      19.10.2026 05:55

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

      Буквально каждый день вижу, как по проспекту Ленина паровозиком едут два троллейбуса этих двух маршрутов подряд (или три, ну тогда совсем уже). По-хорошему, надо разрабатывать расписание так, чтобы их контрольные точки максимально расходились. Но, увы, никто этого не делает...


      1. DadOfStarlings
        19.10.2026 05:55

        11 и 12 маршрут доблестного нелатексного города - также совпадает половина трассы. Между ближайшими вагонами интервал в районе 3х минут. По факту - если не приедешь на точку встречи чуть раньше и не просквозишь вперёд представителя вражеского депо, то шансы привезти на конечную минус стремятся в стратосферу.


  1. DadOfStarlings
    19.10.2026 05:55

    А ещё есть водители, которые таращили лом на расписание и едут на дичайшем чилле и расслабоне, умудряясь за собой собрать по 2-3 вагона того же маршрута, которые изначально пытались ехать в расписании.

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