Чего стоит самое точное расписание электричек с 2003 года

    Расписание электричек — это то, с чего в 2003 году начинался Туту.ру. Сейчас я с гордостью могу сказать, что наше расписание иногда оказывается более точным, чем расписание перевозчика или РЖД, — это потому что мы очень быстро реагируем на обращения пассажиров и имеем эвристики для сравнения разных источников данных и их взаимокоррекций.


    Старое бумажное расписание СПб — Оредеж

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

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

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

    В результате команда стала ездить по вокзалам и фотографировать изменения в расписаниях. Почти каждое утро начинали с объезда 7–9 вокзалов. Так удавалось покрыть Москву. Но далеко не везде были нужные изменения. По отправлению из Москвы — пожалуйста, но вот на Москву — уже нет. По промежуточным станциям получалось, что точность падала. Мы ввели систему сбора сообщений от пассажиров. «Сообщите нам, чтобы помочь другим пассажирам» — этот повод отлично работал, и пассажир, который уже столкнулся с проблемой, сообщал о ней. Это позволяло с помощью ряда математических моделей понять, что происходит, и перестроить расписание либо сделать нужные звонки.

    Потом РЖД стали активно развиваться в плане ИТ. Было сделано много очень крутых вещей в принципе, и среди всего прочего докрутили внутренний ресурс с расписанием. Широкой общественности доступно это не было, но данные выгружались на специальный терминал на вокзале.

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



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

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

    Затем появились пригородные пассажирские компании (например, самая большая ЦППК). А вот пригородным компаниям уже было крайне важно, чтобы пассажиры получали максимум информации про отмены и прочие ситуации, иначе посыпались бы жалобы. Возможно, поэтому договориться о получении информации оказалось гораздо легче.

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

    Наконец, после серии встреч и переговоров, мы подключились к центральной базе данных пригородных расписаний, а также к данным по фактическому движению поездов (как пригородных, так и дальнего следования). И это очень круто, потому что мы по-прежнему вносим информацию, к примеру, от ЦППК, но есть возможность сверить её со вторым источником — данными РЖД по движению поездов. Бывает, и там и там встречаются ошибки — по одному источнику решить никак нельзя.

    При разном характере ошибок вес отдаётся разным источникам. Одна из распространённых ситуаций — бывает, электричка отменена в одну сторону. Если это так, то в другую сторону она вернуться не сможет. Мы это вычисляем часто: ведь поезд в расписании есть, а состава для него по факту нет. Но это не всегда верная матмодель: иногда перевозчик засылает на место состав без пассажиров, чтобы в обратном направлении получалось отработать маршрут. Но отсутствие поезда в расписании, притом что он есть, — это менее существенная ошибка, чем наоборот: объективно вероятность ложноположительного срабатывания около 4%. Обычно поезда всё же не будет. Ещё благодаря внутренним работам перевозчиков и РЖД сейчас такие ситуации с отменами случаются всё реже и реже — это во многом тоже заслуга их ИТ.

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

    Вот ещё пример. Есть два поезда Конаково — Москва и обратно. А мы знаем, что там одноколейка с разъездом в Конаковском Мхе и состав останавливается ждать. То есть он просто останавливается, там нет платформы на одном из путей. Это значит, что один из поездов не будет делать высадку-посадку пассажиров, но эта остановка могла быть внесена в базу. Когда мы это увидели, то написали перевозчику. Пришёл ответ: разберёмся. В итоге прислали апдейт: из Москвы будет останавливаться для высадки-посадки, на Москву — нет.

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

    Естественно, мы тоже ошибаемся. Например, модуль анализа фактического движения сигнализирует, если электричка идёт с опережением. Случай в Подольске — там была ситуация, которую мы выявили, пока смотрели свою ошибку. Оказалось, ошибки-то и нет: были технические проблемы, и электрички дальше Щербинки ехать не могли. Станция тоже не могла принять составы. Соответственно, железная дорога отправила составы (которые должны были ехать до Подольска, постоять там и потом обратно в Москву) сразу в Москву с опережением расписания до первой станции. То есть туда, где можно надолго поставить состав, т. е. до Курского вокзала. У нас система это заметила и оперативно отразила на сайте.

    Ну а вот так выглядит результат нашей работы:



    А так отображаются изменения:



    Скорее всего, эти таблички знакомы вам так же, как примерно половине жителей Москвы: если вы смотрели расписание электропоезда в Рунете, то, скорее всего, попадали именно на наше.

    Туту.ру

    795,61

    Tutu.ru — сервис путешествий №1 в России.

    Поделиться публикацией
    Комментарии 34
      +2

      Приложение для iOS у вас не очень неудобное. Обычный человек ежедневно пользуется одними и теми же станциями, почему бы сразу, без дополнительных действий, не показывать время прибытия ближайших поездов при запуске?

        +3
        Сейчас при поиске расписания направление сразу добавляется в избранное (если у вас последняя версия приложения), или его можно добавить в избранное нажав на сердечко (как лайк) — после этого оно доступно в один клик со стартового экрана. Вы бы хотели экономить этот клик, т.е. чтобы оно открывалось сразу?

        По-моему, загружать сразу не оптимально, потому как если вам надо обратно — все равно придется тратить усилия, чтобы переключить направление (плюс клик, а то и два). В среднем количество кликов будет одинаковым, а вот нагрузка на наш сервер возрастает в 2 раза (2 запроса вместо одного).
          +2
          Вы бы хотели экономить этот клик, т.е. чтобы оно открывалось сразу?

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

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


          можно на стартовом экране выводить сразу ближайшие электрички для направлений Дом-Работа и Работа-Дом, по крайней мере я сейчас так настроил в Яндекс.Электричках. И в последнее время я стал использовать только их, поскольку никаких дополнительных движений там делать не нужно — только открыть, подождать загрузку и закрыть.
          0
          Яндекс.Электрички попробуйте, ничего лишнего
          +19
          Естественно, мы тоже ошибаемся.

          Вот это уровень
          Не, серьезно, сколько конторок и бракоделов делают фасад «мы идеальны» — уму непостижимо! Когда встречаешь кого-то, кто не боится согласиться с «да, это может быть наша ошибка, давайте разбираться и исправлять» — это всегда приятный сюрприз и показатель зрелости.
            +5
            Очень круто, что вы способны сами выйти в реальный мир и проверить данные )
              +6
              Низкий Вам поклон за Ваши расписания в интернете!!!
                +2
                Давно и с удовольствием пользуюсь вашим сервисом в Санкт-Петербурге. Очень удобно!
                  +4
                  Давайте уже грязных технических подробностей — что у вас там внутри работает!
                    +1
                    А мы часто о них пишем. Например, тут рассказывали про то, как научились предсказывать опоздание электричек (почти как Ванга), а вот здесь о том, как вообще расписание электричек устроено
                      0
                      Спасибо, пропустил, видимо!
                        0

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


                        • сильное опоздание, задерживающее на следующий поезд;
                        • авария, блокирующая участок полотна (дерево, сломавшийся поезд и т.д.), после чего соседний путь начинает работать в обе стороны (если стрелки позволяют).

                        По всей видимости, в таких случаях ГВЦ информация будет обновляться медленно, при этом развитие таких ситуаций довольно линейно и более-менее прогнозируются (поезд из Москвы встал на 20 минут — значит, возможно опоздание поездов на Москву). Актуально ли это для вас?

                          0
                          Влияние опоздания данного поезда на следующие поезда учитывается (автоматически), но пока не везде. Аварии пока отслеживаются и обрабатываются операторами в ручном режиме, как правило, в расписании выводится сообщение с кратким описанием того, что произошло, и как ходят поезда и/или компенсационные автобусы. Но, безусловно, это очень важные вопросы, и постепенно степень автоматизации и точности будет повышаться.
                      +5

                      А какое отличие от Яндекса? У них данные другие, или что? Я про rasp.ya.ru

                        +1
                        Кстати, да. Об этом было бы интересно почитать.
                        В мобильном приложении Яндекса в последнее время начали появляться даже данные о фактическом движении электрички. Видно, что на предыдущие станции она пришла с опозданием на сколько-то минут или вовремя. Откуда они это узнают?
                          0
                          Думаю так же как они показывают местоположение общественного транспорта.
                            0
                            Возможно это работает по принципу передачи Яндексом к себе на сервера информации с телефонов пассажиров этой самой электрички. Насколько я понимаю пробки на Яндекс картах работают получая информацию с телефонов пользователей сервиса, насколько медленно тут едет поток, так и с электричками.
                          +21

                          Когда то я работал в коллцентре РЖД и там админы положили базу расписаний на трое суток. Не было данных на сайте РЖД и во внутренней системе коллцентра. На второй день руководство скрипя зубами разрешило пользоваться для консультации вашим сервисом

                            +3

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


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


                            • Приложение само (не всегда точно) или по указаниям владельца смартфона переходит из режима "занят своими делами" в режим "еду/жду" и обратно. Режим "еду" от режима "жду" автоматически отличается по скорости.
                            • Желательно, чтобы владелец смартфона сообщал адрес назначения/маршрут — тогда приложению будет проще понять, на каком маршруте общественного транспорта перемещается владелец смартфона или какого транспортного средства он ждёт. (С личными автомобилями немного совсем иначе; но есть много общего. Далее я буду писать для общественного транспорта.)
                            • Транспортное средство отслеживается по большому скоплению пользователей, движущихся кучей. Распознавание облегчается тем, что люди, не ездящие поездами, не устанавливают Ваше приложение и не засоряют карту.

                            В результате Вы заимеете реальную картину движения транспорта, создаваемую автоматически (а не по инициативе пассажиров). И сможете предсказывать прибытие поездов гораздо точнее — но речь о предсказании на короткий срок. (Выше про это спросили — "Как Яндекс знает фактическое положение электричек?".)


                            Ещё есть интересное предложение с информационными табло — для тех, у кого нет смартфона. В отличие от рекламных стендов (статичных или динамических) — люди будут активно рассматривать табло, где отображается полезная для них информация. Монетизация через рекламу обеспечена.


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


                            PS: Электрички вообще устроены крайне нерационально.
                            Например, Киевская жел.дорога:


                            • Станция Москва-сортировочная: пересадок на автобусы вообще нет.
                            • Пересечение с Ломоносовским проспектом и Минской улицей (это одно шоссе): остановки электричек нет.
                            • Станция Матвеевское: Есть пересадки на автобусы, следующие параллельно жел.дороге. Перпендикулярного шоссе нет.
                            • Пересечение с Аминьевским шоссе и улицей Лобачевского: остановки электричек нет.
                            • Станция Очаково: на север автобусы уезжают и параллельно, и перпендикулярно жел.дороге; на юге — не знаю; автобусов, пересекающих жел.дорогу, нет.

                            Хорошо бы обратить внимание властей на этот аспект. Увеличение количества пересадок — существенно повышает связность транспортной системы. А в местах пересадок можно будет построить крупные торговые центры — такие места весьма притягательны для инвесторов.

                              +3
                              Давно пользовался tutu.ru. Желаю всяческих успехов вам конечно, надо же поддерживать конкурентов Яндекса. Но где-то года два-три назад у вас был баг в мобильном приложении, причём держался довольно долго: при смене порядка начальной и конечно станции расписание оставалось прежним.

                              Я два раза офигенно на этом попал. Причём один раз мимо последней электрички. Благо ехать две остановки (от Депо до Некрасовской Савёловского направления), шёл ночью 6 км по шпалам, зима была. Сильно обиделся на вас, перешёл на Яндекс. Уж простите.
                                +2
                                Можно добавить геолокацию, запусквешь приложение на Ленинградском вокзале, а оно тебе сразу расписание с этого вокзала.
                                По поводу опаздывающих поездов, сейчас на каждой станции стоит регистратор и фиксирует время фактического проследование станции поездом.
                                  +1
                                  Спасибо за статью! Приятно, что вы подходите к вопросу настолько серьёзно.

                                  Хотелось бы услышать некоторые технические подробности. Сколько у вас всего сейчас человек в команде? Какой стек используете?
                                    0

                                    Утро началось с этой статьи и вашего приложения, в котором стали задваиваться записи в расписании электричек.

                                      +2
                                      Дай вам Бог здоровья за ваш сервис)
                                        0
                                        Москва-Петушки — это отсылка или действительно существует Петушки?
                                          +4
                                          Вы удивитесь, но…
                                            +1
                                            Хоть это и отсылка, но в книге значительная часть фактов взята из биографии Венедикта Ерофеева. Так, там используются реальные названия станций, много где реальные имена и обстоятельства из жизни.
                                              +1
                                              Даже платформа «Серп и молот» есть и работает.
                                                0
                                                А на перегоне Серп и Молот — Карачарово пейзаж такой, что вторую главу можно восстановить.
                                                +2
                                                Более того и электричка с таким маршрутом существует…
                                                +1
                                                Спасибо за сервис, постоянно пользуюсь.
                                                Есть замечание, при открытие приложения в метро (где Интернет есть номинально), приложение долго пытается получить обновления не показывая сохраненные данные, это нервирует…
                                                Для отслеживания расписания можно следить за пользователями в электричке, пользуетесь?
                                                  0
                                                  Подзабыл как правильно называется дочка ржд, но инженер от туда говорил, что практически каждый желающий через может совершенно легально подключиться к центральной базе ржд, где не то что расписания все есть, а можно отслеживать положения целых поездов и конкретных вагонов в любом месте страны, в том числе и грузовых.
                                                  Там правда цена подключения что-то около пяти миллионов была озвучена, но всё же.
                                                    0
                                                    Просмотр расписания электричек без покупки билетов — это пиво без деньги на ветер. Любые самые лучшие расписания проигрывают приложению пригород. И не потому, что оно хорошо, а потому что в нем можно сразу билет купить.
                                                      0
                                                      Как-то лет 8 назад девушка зависла в Юбилейном и хотела уехать на последней электричке (посмотрев расписание на туту — потому что первое в поисковике). На платформе местные ей сказали, что последняя электричка ушла час назад. Пришлось за ней ехать. С тех пор «самое точное расписание электричек» обхожу стороной.

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

                                                      Самое читаемое