Некоторое время назад Яндекс.Такси стало предлагать вызвать такси не точно туда, где вы находитесь, а пройти несколько метров, но доехать быстрее и дешевле.
![](https://habrastorage.org/r/w780q1/web/d94/5ae/d93/d945aed93e8e4b89b0b54f65442f63cd.jpg)
На первый взгляд, не самое знаменательное событие, но я хочу рассказать, почему на деле это очень знаковый шаг к будущему — жить в котором нам предстоит уже очень скоро. Речь идет о будущем личного и общественного транспорта в городе. В статье я объясню, почему это важно и почему разработка сложнее, чем кажется, а способны на такое очень немногие компании в мире.
Такси еще совсем недавно воспринималось как удобный транспорт, если у вас есть лишние деньги и время. Даже при отсутствии пробок было гораздо эффективнее воспользоваться метро или тем же трамваем.
Таксопарков с хорошими машинами всегда было немало, но водитель крайне редко мог приехать раньше, чем через полчаса. Чтобы успеть подать автомобиль хотя бы в это время, такси распределялись по разным частям города. Диспетчеры связывались со всеми сотрудниками разом, узнавали, кто где находится, не занят ли автомобиль, когда освободится, и дожидались, пока водители по радиосвязи договорятся, кто поедет на заказ. Кстати, очень часто пассажиру всю дорогу приходилось слушать беседы диспетчеров и таксистов.
Если машина требовалась раньше, чем через полчаса, люди порой выходили на дорогу и «голосовали». Вероятность, что машина найдется быстро, повышалась. Но при этом ценообразование становилось совершенно непрозрачным — вы не могли точно предсказать, сколько будет стоить поездка. Выйдя в середине ночи из московского клуба с выступления любимой группы, можно было уехать домой и за трехзначную, и за четырехзначную сумму. Кроме того, «бомбилы» зачастую не имели навигаторов и плохо знали город, что делало время в пути непредсказуемым.
На самом деле и при вызове такси из специальной службы с понятной ценой, и при ловле машины пассажир всегда оплачивал не только время поездки, но и время простоя автомобиля. Когда в аэропорту вас предлагали довезти за астрономические суммы, в них входила не только поездка, но и высокая стоимость парковки и время, которое шофер провел, отлавливая желающих у выхода. Возможность взять новый заказ сразу же после завершения текущего, да еще и недалеко от него, появилась только с развитием специальных онлайн-сервисов.
Для многих Яндекс.Такси — просто приложение, но за ним стоит практически вся история технологий Яндекса: от машинного обучения и построения графов до создания собственных карт. Когда Яндекс.Такси только запустилось, время подачи сразу же сократилось с получаса после заказа по телефону до 7 минут после открытия приложения. Прошло несколько лет, и автомобиль приезжает к вам уже за две минуты. Онлайн-сервисы стали резко поднимать конкуренцию между водителями и сокращать время простоя автомобиля, за счет чего падает стоимость поездки.
Таким образом, весь таксомоторный рынок меняется. Такси из редко используемой услуги превращается в массовую, постепенно становится базовым сервисом для перемещения в городе — почти как метро. Более того, такси теперь способно заменить не только метро, но и личный транспорт. Люди вызывают такси, чтобы доехать из супермаркета до дома с продуктами, успеть на рабочую встречу или к врачу, без опоздания добраться до незнакомого места.
Но, как я уже говорил выше, всё это возможно только в случае, когда водитель не простаивает без заказов. Потому что в итоге за время простоя всегда платят пассажиры.
Если посмотреть на классический рынок такси в России, то доля времени, когда водитель везет пассажира, составляет 10% и меньше. Даже в Европе, где распространены стоянки городского такси, время активности машин в среднем занимает от 7% до 15%. У современных сервисов-приложений этот показатель достигает 50% и больше. Разрыв очевиден.
И именно в такой системе быстро освободиться и быть готовым к новому заказу выгоднее, чем долго везти пассажира по нужному адресу и терять других клиентов — которые важны для общего уменьшения «пустого» времени. При этом цель Яндекс.Такси — сделать сервис таким же недорогим, как общественный транспорт, и таким же доступным, как собственный автомобиль. Последнее означает, что машина обязательно должна в нужный момент стоять у подъезда — подобно тому, как там всегда стоит личное авто. Оказывается, что для достижения указанной цели главное — эффективность. Для нас ценна любая минута, сэкономленная водителем.
Как часто бывает в Яндексе, продуктовое решение выросло из идеи одного из сотрудников. Он даже не работает в Такси. Коллеге нужно было доехать от ближайшего к МИФИ метро до самого института. На карте это расстояние не превышает 1 км — вот как раз та ситуация, когда такси может заменить автобус или маршрутку. Но на деле ехать пришлось 11 км, так как необходимо было развернуться на Каширском шоссе. А ведь стоило перейти дорогу и пройти 100 метров, как время в пути сократилось бы в восемь раз! И, соответственно, стоимость поездки была бы ниже. На самом деле в команде Такси тоже уже обсуждали подобную фичу, но пост коллеги помог убедиться в правильном направлении мысли.
Звучит просто, но реализовать такую задачу могут считанное количество компаний в мире. Дело в том, что требуется сочетание сразу нескольких факторов. Компания должна:
![](https://habrastorage.org/r/w1560/web/bc2/165/b09/bc2165b09444487480c292eefd8e79b3.png)
Как много запросов нужно уметь обрабатывать рутеру, чтобы строить альтерантивные точки посадки
Сейчас альтернативные точки посадки появляются, если:
![](https://habrastorage.org/r/w1560/web/beb/51f/610/beb51f610cfd499c90887d16780cae13.png)
Для того чтобы показать финальную точку, необходимо построить несколько маршрутов в одной зоне
Тогда Яндекс.Такси считает время прибытия машины не только к точке, где находится человек, но и ко всем пересечениям с автомобильными дорогами в пешеходном радиусе трех минут от текущего положения человека. То есть получается некоторое множество точек: сейчас это пешеходные переходы, выходы из метро, остановки, шлагбаумы, мелкие дороги, которые можно перейти где угодно, проезды во дворах, точки, к которым люди сами часто вызывают машины, и т. п.
Конечно, мы не планируем останавливаться на достигнутом. Уже сейчас понятно, что похожих решений может быть много.
Например, совсем скоро Такси научится предлагать для посадки по умолчанию именно те точки, где клиенты часто садятся в машины. Такие места обычно образуются естественным образом — у выходов из торговых центров, в удобных местах на улицах. Они подходят и пассажирам, и водителям, ведь лучше не заставлять людей каждый раз заново находить подобные места.
Далее: кажется, что в городах с большим количеством пробок возникают ситуации, когда часть маршрута удобнее проехать на общественном транспорте или даже пройти пешком, а затем снова пересесть в такси. Тут, конечно, надо знать расписание общественного транспорта, но у Яндекса есть приложение и для этого.
Бывает и так, что в конце поездки удобно не доезжать до цели 100 метров. Что если на машине их не удастся преодолеть быстро, что если гораздо быстрее дойти пешком? Было бы здорово автоматом предлагать переставить конечную точку на 100 метров, а не заставлять пассажира думать об этом самостоятельно (тем более, что клиент может не знать город или ситуацию на дорогах).
Я перечислил только часть вариантов развития. Кстати, ваши идеи мы с удовольствием выслушаем в комментариях и реализуем, если они окажутся хорошими.
![](https://habrastorage.org/r/w780q1/web/a16/b2a/2d1/a16b2a2d16f5488ea2d76417ee26119f.jpg)
Принято считать (и многие на Хабре наверняка в курсе), что идея современного общественного транспорта принадлежит математику — Блезу Паскалю. Именно он еще в середине XVII века предложил создать многоместные экипажи, запрягаемые лошадьми. Они должны были двигаться по строго определенным маршрутам — это помогало не ездить впустую (как бывало, например, с извозчиками) и увеличивать маржинальность поездки.
Подобные общественные экипажи получили развитие в XIX веке, когда становилось все больше крупных производств, до которых нужно было добираться множеству рабочих. Для них организовывались специальные омнибусы. В целом, с тех пор изменилось немногое. Основная нагрузка на общественный транспорт по-прежнему приходится на начало и конец стандартного рабочего дня.
Преимуществом маршрутного транспорта с момента его появления была постоянная загруженность. Она позволяла снижать стоимость поездки и делала транспорт массовым. Такси появилось как комфортная, но дорогая и менее эффективная альтернатива. Технологический прогресс позволил создавать все более эффективный общественный транспорт, а водители такси по-прежнему, как и извозчики несколько веков назад, могли долгое время ездить в поисках клиентов. И только благодаря технологиям, которые появились на наших глазах, такси начинает развиваться как личный общественный транспорт. Машины не ездят без пассажиров, водителям помогает навигатор, они получают очередные заказы максимально близко к местам завершения предыдущих. Можно даже принять новый заказ перед тем, как высадить пассажира в точке назначения: если сервис знает, где эта точка, он заранее начинает искать клиентов неподалеку. С учетом того, каковы издержки от владения собственным автомобилем, такси становится гораздо более дешевым и не менее комфортным способом передвижения. А в основе этой революции — как и при появлении первого общественного транспорта — лежит математическое мышление и, буквально, прикладная математика.
![](https://habrastorage.org/web/d94/5ae/d93/d945aed93e8e4b89b0b54f65442f63cd.jpg)
На первый взгляд, не самое знаменательное событие, но я хочу рассказать, почему на деле это очень знаковый шаг к будущему — жить в котором нам предстоит уже очень скоро. Речь идет о будущем личного и общественного транспорта в городе. В статье я объясню, почему это важно и почему разработка сложнее, чем кажется, а способны на такое очень немногие компании в мире.
Начну издалека
Такси еще совсем недавно воспринималось как удобный транспорт, если у вас есть лишние деньги и время. Даже при отсутствии пробок было гораздо эффективнее воспользоваться метро или тем же трамваем.
Таксопарков с хорошими машинами всегда было немало, но водитель крайне редко мог приехать раньше, чем через полчаса. Чтобы успеть подать автомобиль хотя бы в это время, такси распределялись по разным частям города. Диспетчеры связывались со всеми сотрудниками разом, узнавали, кто где находится, не занят ли автомобиль, когда освободится, и дожидались, пока водители по радиосвязи договорятся, кто поедет на заказ. Кстати, очень часто пассажиру всю дорогу приходилось слушать беседы диспетчеров и таксистов.
Если машина требовалась раньше, чем через полчаса, люди порой выходили на дорогу и «голосовали». Вероятность, что машина найдется быстро, повышалась. Но при этом ценообразование становилось совершенно непрозрачным — вы не могли точно предсказать, сколько будет стоить поездка. Выйдя в середине ночи из московского клуба с выступления любимой группы, можно было уехать домой и за трехзначную, и за четырехзначную сумму. Кроме того, «бомбилы» зачастую не имели навигаторов и плохо знали город, что делало время в пути непредсказуемым.
На самом деле и при вызове такси из специальной службы с понятной ценой, и при ловле машины пассажир всегда оплачивал не только время поездки, но и время простоя автомобиля. Когда в аэропорту вас предлагали довезти за астрономические суммы, в них входила не только поездка, но и высокая стоимость парковки и время, которое шофер провел, отлавливая желающих у выхода. Возможность взять новый заказ сразу же после завершения текущего, да еще и недалеко от него, появилась только с развитием специальных онлайн-сервисов.
Эффективность. Технологии в очередной раз меняют мир
Для многих Яндекс.Такси — просто приложение, но за ним стоит практически вся история технологий Яндекса: от машинного обучения и построения графов до создания собственных карт. Когда Яндекс.Такси только запустилось, время подачи сразу же сократилось с получаса после заказа по телефону до 7 минут после открытия приложения. Прошло несколько лет, и автомобиль приезжает к вам уже за две минуты. Онлайн-сервисы стали резко поднимать конкуренцию между водителями и сокращать время простоя автомобиля, за счет чего падает стоимость поездки.
Таким образом, весь таксомоторный рынок меняется. Такси из редко используемой услуги превращается в массовую, постепенно становится базовым сервисом для перемещения в городе — почти как метро. Более того, такси теперь способно заменить не только метро, но и личный транспорт. Люди вызывают такси, чтобы доехать из супермаркета до дома с продуктами, успеть на рабочую встречу или к врачу, без опоздания добраться до незнакомого места.
Но, как я уже говорил выше, всё это возможно только в случае, когда водитель не простаивает без заказов. Потому что в итоге за время простоя всегда платят пассажиры.
Если посмотреть на классический рынок такси в России, то доля времени, когда водитель везет пассажира, составляет 10% и меньше. Даже в Европе, где распространены стоянки городского такси, время активности машин в среднем занимает от 7% до 15%. У современных сервисов-приложений этот показатель достигает 50% и больше. Разрыв очевиден.
И именно в такой системе быстро освободиться и быть готовым к новому заказу выгоднее, чем долго везти пассажира по нужному адресу и терять других клиентов — которые важны для общего уменьшения «пустого» времени. При этом цель Яндекс.Такси — сделать сервис таким же недорогим, как общественный транспорт, и таким же доступным, как собственный автомобиль. Последнее означает, что машина обязательно должна в нужный момент стоять у подъезда — подобно тому, как там всегда стоит личное авто. Оказывается, что для достижения указанной цели главное — эффективность. Для нас ценна любая минута, сэкономленная водителем.
Как появилась идея
Как часто бывает в Яндексе, продуктовое решение выросло из идеи одного из сотрудников. Он даже не работает в Такси. Коллеге нужно было доехать от ближайшего к МИФИ метро до самого института. На карте это расстояние не превышает 1 км — вот как раз та ситуация, когда такси может заменить автобус или маршрутку. Но на деле ехать пришлось 11 км, так как необходимо было развернуться на Каширском шоссе. А ведь стоило перейти дорогу и пройти 100 метров, как время в пути сократилось бы в восемь раз! И, соответственно, стоимость поездки была бы ниже. На самом деле в команде Такси тоже уже обсуждали подобную фичу, но пост коллеги помог убедиться в правильном направлении мысли.
Почему это не так просто сделать
Звучит просто, но реализовать такую задачу могут считанное количество компаний в мире. Дело в том, что требуется сочетание сразу нескольких факторов. Компания должна:
- Проводить маршрутизацию на автомобильных дорогах.
- Иметь граф пешеходных дорог и понимать, сколько человек потратит времени на то, чтобы дойти от одной точки до другой.
- Производить такие расчеты очень быстро: в момент, когда человек хочет вызвать такси, ему нужно мгновенно показать альтернативные точки. Через минуту они уже никому будут не нужны. Да и при задержке в 10 секунд продукт бы испортился.
- Принимать во внимание, что точек для обработки — десятки, а то и сотни. До каждой из них нужно уметь построить два маршрута — для клиента и для такси.
- Понимать, куда человеку удобно подойти, а машине — подъехать, и куда им добраться неудобно. Никто не будет садиться на сложной развязке, идти неудобными дорогами и т. п. «Обычные» пешеходные, да и автомобильные маршрутизаторы не всегда хорошо подходят для этой задачи.
- Уметь рассчитывать цену поездки — а это не только роутинг, но и учет пробок: текущих и будущих.
![](https://habrastorage.org/web/bc2/165/b09/bc2165b09444487480c292eefd8e79b3.png)
Как много запросов нужно уметь обрабатывать рутеру, чтобы строить альтерантивные точки посадки
Как эта штука работает, и почему так
Сейчас альтернативные точки посадки появляются, если:
- суммарная выгода от времени подачи и поездки пассажира составляет четыре минуты
- заказ сделан на ближайшее время
- известна точка назначения (без нее мы можем навредить, поскольку не знаем, каким путём поедет водитель)
- машина вызвана не в аэропорт (т. е. клиент, скорее всего, без чемоданов)
![](https://habrastorage.org/web/beb/51f/610/beb51f610cfd499c90887d16780cae13.png)
Для того чтобы показать финальную точку, необходимо построить несколько маршрутов в одной зоне
Тогда Яндекс.Такси считает время прибытия машины не только к точке, где находится человек, но и ко всем пересечениям с автомобильными дорогами в пешеходном радиусе трех минут от текущего положения человека. То есть получается некоторое множество точек: сейчас это пешеходные переходы, выходы из метро, остановки, шлагбаумы, мелкие дороги, которые можно перейти где угодно, проезды во дворах, точки, к которым люди сами часто вызывают машины, и т. п.
Что дальше
Конечно, мы не планируем останавливаться на достигнутом. Уже сейчас понятно, что похожих решений может быть много.
Например, совсем скоро Такси научится предлагать для посадки по умолчанию именно те точки, где клиенты часто садятся в машины. Такие места обычно образуются естественным образом — у выходов из торговых центров, в удобных местах на улицах. Они подходят и пассажирам, и водителям, ведь лучше не заставлять людей каждый раз заново находить подобные места.
Далее: кажется, что в городах с большим количеством пробок возникают ситуации, когда часть маршрута удобнее проехать на общественном транспорте или даже пройти пешком, а затем снова пересесть в такси. Тут, конечно, надо знать расписание общественного транспорта, но у Яндекса есть приложение и для этого.
Бывает и так, что в конце поездки удобно не доезжать до цели 100 метров. Что если на машине их не удастся преодолеть быстро, что если гораздо быстрее дойти пешком? Было бы здорово автоматом предлагать переставить конечную точку на 100 метров, а не заставлять пассажира думать об этом самостоятельно (тем более, что клиент может не знать город или ситуацию на дорогах).
Я перечислил только часть вариантов развития. Кстати, ваши идеи мы с удовольствием выслушаем в комментариях и реализуем, если они окажутся хорошими.
![](https://habrastorage.org/web/a16/b2a/2d1/a16b2a2d16f5488ea2d76417ee26119f.jpg)
Принято считать (и многие на Хабре наверняка в курсе), что идея современного общественного транспорта принадлежит математику — Блезу Паскалю. Именно он еще в середине XVII века предложил создать многоместные экипажи, запрягаемые лошадьми. Они должны были двигаться по строго определенным маршрутам — это помогало не ездить впустую (как бывало, например, с извозчиками) и увеличивать маржинальность поездки.
Подобные общественные экипажи получили развитие в XIX веке, когда становилось все больше крупных производств, до которых нужно было добираться множеству рабочих. Для них организовывались специальные омнибусы. В целом, с тех пор изменилось немногое. Основная нагрузка на общественный транспорт по-прежнему приходится на начало и конец стандартного рабочего дня.
Преимуществом маршрутного транспорта с момента его появления была постоянная загруженность. Она позволяла снижать стоимость поездки и делала транспорт массовым. Такси появилось как комфортная, но дорогая и менее эффективная альтернатива. Технологический прогресс позволил создавать все более эффективный общественный транспорт, а водители такси по-прежнему, как и извозчики несколько веков назад, могли долгое время ездить в поисках клиентов. И только благодаря технологиям, которые появились на наших глазах, такси начинает развиваться как личный общественный транспорт. Машины не ездят без пассажиров, водителям помогает навигатор, они получают очередные заказы максимально близко к местам завершения предыдущих. Можно даже принять новый заказ перед тем, как высадить пассажира в точке назначения: если сервис знает, где эта точка, он заранее начинает искать клиентов неподалеку. С учетом того, каковы издержки от владения собственным автомобилем, такси становится гораздо более дешевым и не менее комфортным способом передвижения. А в основе этой революции — как и при появлении первого общественного транспорта — лежит математическое мышление и, буквально, прикладная математика.