что значит время подачи автомобиля
Как мы распределяем заказы между водителями в Яндекс.Такси
Одна из главных задач в Яндекс.Такси — как сделать так, чтобы к пользователю быстро приезжала машина, а у водителя сокращалось время «холостого пробега» (то есть время, когда он на линии без пассажира). Казалось бы, всё просто: пользователь выбирает тариф, указывает дополнительные пожелания (детское кресло, например). Остаётся отфильтровать водителей на линии по этим критериям, выбрать ближайшего и предложить ему заказ. Однако всё так просто только на первый взгляд.
Сегодня я расскажу сообществу Хабра о том, как мы выбираем наиболее подходящего водителя и как этот процесс эволюционировал со временем. Вы узнаете о двух подходах к решению задачи.
Общая архитектура поиска
Когда пользователь нажимает кнопку «Вызвать такси», в бэкенде создаётся объект заказа и начинается его обработка в соответствии с конечным автоматом. Чтобы заказ перешёл из состояния «В ожидании» в «Водитель назначен» — нужно найти водителя, предложить ему заказ и дождаться подтверждения, что заказ принят.
Жадный (Greedy) подход
Очень долго в Яндекс.Такси работал жадный подход. При таком подходе на этапе поиска исполнителя делается запрос в микросервис Tracker, отвечающий за водителей. Tracker знает об автомобилях всё: от цвета и брендирования до текущего местоположения. В Tracker’e есть локальный геоиндекс по водителям и коннекторы к сервисам маршрутизации (роутерам) для построения маршрутов от точки А до точки Б (и даже через точки В, Г, Д). Поэтому, когда поступает запрос на поиск водителя, Tracker сначала определяет в локальном геоиндексе ближайшие машины по прямому радиусу с учётом «жёстких» ограничений заказа (класс автомобиля, требования — детское кресло, жёлтые номера). Затем уточняется время и длина маршрута подачи автомобиля и с учётом этой информации выбирается лучший вариант.
Позже эта логика эволюционировала: для каждого водителя стали рассчитывать его «скоринг» на заказ — функцию от времени подачи автомобиля. И ранжировали водителей уже по значению скоринга. В функции учитывается не только непосредственно время подачи, но и множество других факторов: от уровня спроса в точках А и Б до «опытности» водителя. Такое жадное назначение называется бонусным.
Буферный (балковый) подход
Однако при жадном подходе ближайшего водителя получит тот, кто первый заказал такси. При этом некоторые пользователи могут вообще остаться без машины.
При повышенном спросе, когда начинается конкуренция за исполнителей, жадный подход не годится. Чтобы максимально удовлетворить спрос даже в самые нагруженные часы, мы используем множество подходов и алгоритмов. Один из них — буферное (балковое) назначение водителей на заказы. В его основе лежит хорошо известная задача из области комбинаторной оптимизации — задача о назначениях. Вкратце её суть: пусть у нас есть N работ и M исполнителей, любой работник может выполнить любую задачу за время p(i,j)[0
Продали машину. Как прекратить регистрацию на свое имя за 5 минут?
Зато меня волнует тот факт, что машина до сих пор числится как моя собственность. То есть я должна платить транспортный налог, отвечать за автоштрафы нового владельца и не могу вернуть деньги за ОСАГО. Я сейчас в декрете, на машине ездит муж. Поехать в ГИБДД для меня проблематично, другие способы снять с учета автомобиль мне неизвестны. Почему я должна думать, как снимается машина с учета при трейд-ине, тратить время на поездки да еще и терять деньги?
Татьяна, вы можете прекратить регистрацию машины на свое имя в МФЦ или вообще не выходя из дома. Вот как снять машину с учета.
Снять с учета автомобиль при продаже можно:
Я подробнее расскажу про второй вариант — как снять с учета автомобиль через госуслуги в связи с продажей.
Что такое прекращение регистрации автомобиля
Но для налоговой важна именно регистрация: налог начисляют тому, кто указан в базах ГИБДД, а не тому, кто реально владеет автомобилем. Если вы продали машину, но в ГИБДД она до сих пор закреплена за вами, транспортный налог начислят именно вам — и это будет не ошибка. Со штрафами немного проще: в зависимости от вида нарушения они могут грозить не автовладельцу, а тому, кто сидел за рулем. Но это еще нужно доказать.
Чтобы не числиться владельцем машины в базе ГИБДД и для налоговой, нужно прекратить регистрацию на свое имя. Более подробно о том, нужно ли снимать машину с учета при продаже в 2021 году, рассказывает другой наш ответ.
Что будет, если снять машину с учета. Этим вы как бы говорите государству: «Я больше не имею отношения к этой машине вот на таком основании. Все вопросы — к новому владельцу, а мне налоги и штрафы не начисляйте». Если машина снята с учета, вам их правда перестанут начислять.
Прекращение регистрации: пошаговая инструкция и личный опыт
Но ГИБДД не узнает и не сообщит. Кто-то должен рассказать об этом с помощью заявления: либо новый собственник, либо вы, как прежний владелец. В вашем случае сообщать придется вам.
Прекратить регистрацию можно через 10 дней после продажи при условии, что новый владелец не переоформил машину на себя. Раньше это сделать не получится.
Вот инструкция, как снять с учета автомобиль, проданный по договору купли-продажи, без визита в ГИБДД:
Частые вопросы по аренде авто
Часто клиенты задают вопросы, связанные с арендой автомобилей. Мы решили разместить здесь ответы на самые популярные вопросы.
Что такое +1 или час подачи?
Что такое место подачи?
Как происходит бронирование автомобиля?
Если я закажу автомобиль в пригород, то сумма заказа не изменится?
Изменится. Так как ретро автомобили движутся в основном потоке машин, то за городом скорость растет, соответственно растет и амортизация двигателя, а также расход топлива. В городе обычно автомобиль проезжает меньшее расстояние, чем в пригороде.
Сколько будет стоить аренда авто в пригороде?
Зависит от маршрута и обсуждается с каждым клиентом отдельно. Обычно в ближний пригород (Пушкин, Петергоф) добавляется еще один час подачи, а в дальний пригород в зависимости от расстояния. Еще все зависит от автомобиля, ведь у каждого авто свой расход.
Я заказал авто в пригород. Почему я должен платить помимо часа подачи еще дополнительные часы?
Опять же из-за расхода топлива и амортизации двигателя. Чем больше расстояние, которое необходимо преодолеть автомобилю за городом, тем больше будет дополнительная сумма.
Ниже приведена карта Спб. Голубой областью отмечен район города, где дополнительная плата не взымается, за пределами этой области будет дополнительная плата в зависимости от расстояния пункта назначения и пробега.
Автомобиль, который мы заказали, не опоздает в день нашей свадьбы?
Все автомобили выезжают заранее и приезжают на заказ с запасом времени. Мы беспокоимся о том, чтобы Ваша свадьба прошла без отрицательных происшествий, и дорожим своей репутацией.
Можно ли потом увеличить количество часов аренды?
Можно, НО мы всегда предупреждаем, что один автомобиль может быть за день и на двух заказах при условии приличного запаса времени между заказами. Поэтому рекомендуем количество часов продумывать заранее. Часто свадьбы происходят приблизительно в одно время днем, поэтому такая ситуация скорее исключение, чем правило. Но все равно лучше продумать и заказать заранее то количество часов, которое Вам необходимо.
Можно ли посмотреть все автомобили из вашего автопарка?
Посмотреть автомобили можно. Но только по отдельности, ведь они стоят в разных местах, обычно рядом с местом расположения водителей. Если Вы хотите посмотреть автомобиль, то необходимо заранее позвонить нам и договориться о времени и месте осмотра.
Как будет одет водитель?
Водитель русский?
У ретро автомобиля, который мы заказали, солидный возраст. Он не сломается в день нашей свадьбы?
Все автомобили ломаются, даже современные Мерседесы, БМВ и лимузины. Мы постоянно ведем обслуживание своих автомобилей, меняем расходники, проверяем их за день до заказа. Поэтому случаи поломки автомобиля единичны, тем более во время заказа. Но если все же такое случается перед заказом, то мы звоним, предупреждаем об этом и предлагаем два варианта: или выбрать схожий автомобиль, или забрать деньги. И в этом случае у нас есть большое преимущество, потому что у нас большой автопарк ретро автомобилей и кабриолетов, поэтому выбор больше как по стилю и цвету, так и по цене. Если автомобиль ломается во время заказа и не получается его отремонтировать на месте, то срочно выезжает другой схожий свободный автомобиль. Например, если ломается белая Чайка ГАЗ 13, то выезжает или белая Чайка, или ЗИМ ГАЗ 12. Разница в цене возвращается клиенту по окончанию заказа или в офисе после.
Мы заказали кабриолет. Как быть невесте с прической?
Предупреждаем сразу, что абсолютно во всех кабриолетах с открытым верхом на задних сиденьях сильный воздушный поток, поэтому нужно позаботиться о прическе заранее. Или надеть что-то на голову, или закрепить невидимками, или другими способами. Другое дело, что во время движения по городу скорость автомобиля небольшая, поэтому дуть сильно не будет, а при передвижении за городом всегда можно закрыть крышу.
Есть ли ремни безопасности в автомобилях?
Обращаем ваше внимание, что не во всех ретро автомобилях есть ремни безопасности, так как они не предусмотрены конструкцией заводом производителем. В любом случае наши водители имеют многолетний стаж езды на автомобилях такого типа и не нарушают скоростной режим.
Задайте нам вопрос
Если у Вас есть вопросы, которые здесь не перечислены, то Вы можете задать их нам, воспользовавшись формой ниже. Также мы с радостью ответим по телефону +7 (812) 927-18-37 или по почте Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
Как Яндекс.Такси прогнозирует время подачи автомобиля с помощью машинного обучения
Представьте, что вам надо вызвать такси. Вы открываете приложение, видите, что машина приедет минут через семь, нажимаете «Заказать» — и… автомобиль в 15 минутах от вас, если вообще найден. Согласитесь, неприятно?
Под катом поговорим о том, как методы машинного обучения помогают Яндекс.Такси более качественно прогнозировать ETA (Estimated Time of Arrival — ожидаемое время прибытия).
Для начала напомним, что пользователь видит в приложении перед заказом:
На карте синим отмечены оптимальные точки для посадки в такси. Красный пин — точка, к которой пользователь вызывает такси. В пине отображается, через какое время прибудет машина. В идеальном мире. Но в реальном мире другие люди неподалеку тоже вызывают себе машину через приложение Яндекс.Такси. И мы не знаем, какой автомобиль к кому поедет, ведь они распределяются только после заказа. Если машина уже назначена, для прогноза мы воспользуемся роутингом Яндекс.Карт и временем при движении по оптимальному пути. Это время (возможно, с небольшим запасом) мы и покажем пользователю сразу после заказа. Остается вопрос: а как же спрогнозировать ETA до заказа?
И здесь появляется машинное обучение. Составим выборку с объектами и правильными ответами и обучим алгоритм угадывать ответ по признакам объекта. В нашем случае объекты — это пользовательские сессии, ответы — это время, через которое фактически приехала машина. Признаками объекта могут быть числовые параметры, известные до заказа: количество водителей и пользователей приложения рядом с пином, расстояние до ближайших автомобилей сервиса и другие потенциально полезные величины.
Почему это важно
В идеальном мире люди все делают заранее и всегда безошибочно планируют свое время. Но мы живем в реальном мире. Если человек опаздывает на работу или, хуже того, в аэропорт, ему важно понимать, успеет ли он вовремя выехать и добраться до места назначения.
Решая, что заказать, будущий пассажир руководствуется в том числе временем ожидания. Оно может сильно отличаться и в разных приложениях для вызова такси, и в разных тарифах одного приложения. Чтобы пользователь не пожалел о выборе, очень важно показывать точное ЕТА.
Кажется, все просто. Придумать побольше признаков, обучить модель, например CatBoost, спрогнозировать время до прибытия машины — и можно закончить на этом. Но опыт показывает, что лучше не спешить и хорошенько подумать, а потом делать.
Сначала мы не сомневались, что нужно прогнозировать то время, через которое к пользователю фактически приедет водитель. Да, до заказа мы не знаем наверняка, какая именно машина будет назначена. Но мы можем предсказать ETA, используя данные не о конкретном водителе, а о водителях поблизости от заказа. Разумеется, прогноз должен быть достаточно честным, чтобы пользователь мог планировать время.
Но что значит «честным»? Ведь любой алгоритм прогнозирования плох или хорош только статистически. Встречаются и удачные, и откровенно плохие результаты, но нужно «в среднем» не сильно отклоняться от правильных ответов. Здесь надо понимать, что «в среднем» бывает разное. Например, среднее — это как минимум три понятия из статистики: матожидание, медиана и мода. Картинка из великолепной книги Дарелла Хаффа «Как лгать при помощи статистики» прекрасно показывает различие:
Мы хотим, чтобы модель в среднем ошибалась мало. В зависимости от значения «в среднем» возникает два варианта оценки качества прогнозов. Первый вариант — показывать пользователю математическое ожидание времени до приезда такси. В итоге обучится модель, минимизирующая средний квадрат ошибки прогноза (Mean Squared Error, MSE):
Здесь — правильные ответы,
— прогнозы модели.
Другой вариант — не ошибаться с прогнозом ETA преимущественно в одну сторону, в большую или в меньшую. В этом случае мы покажем пользователю медиану распределения времени до приезда такси. В итоге обучится модель, оптимизирующая средний модуль ошибки прогноза (Mean Absolute Error, MAE):
Но мы поняли, что немного забегаем вперед.
Переосмысление постановки задачи
После назначения мы знаем, какая именно машина едет к пользователю, а значит, можем оценить ее время в пути по Яндекс.Картам. Это время и показывается в пине после заказа. С одной стороны, теперь у нас больше информации и прогноз будет точнее, но, с другой стороны, это тоже оценка с погрешностью.
Вот в чем оказался подвох в задаче про ЕТА в пине. Пока водитель не назначен, надо прогнозировать именно то время, которое потом покажет роутинг Яндекс.Карт, а не фактическое время до подачи машины.
Казалось бы, что за чушь: вместо точного значения брать в качестве таргета другой прогноз? Но это имеет смысл, и вот почему. По пути к вам назначенная машина может задержаться. Водитель попал в опасную ситуацию на дороге, в пробку из-за ДТП или вышел купить воды. Такие задержки сложно предугадать. Они создают дополнительный шум в целевой переменной, из-за которого и без того непростая задача спрогнозировать ЕТА в пине становится еще сложнее.
Как избавиться от шума? Прогнозировать сглаженную целевую переменную — время, которое показывается уже после назначения машины на основе маршрута к пользователю.
В этом есть логика и с точки зрения бизнеса: время в дороге по оптимальному пути из ETA в любом случае не выкинешь, а вот дополнительные задержки можно уменьшать, работая с водителями.
Метрики качества, данные, модель и обучение
Мы выяснили, что для ЕТА в пине нужно прогнозировать не фактическое время, а время, которое будет получено после назначения машины по маршруту. Из двух метрик качества, MAE и MSE, мы выбрали MAE. Возможно, с точки зрения интуитивности прогноза более логично оценивать матожидание (MSE), а не медиану (MAE). Но у MAE есть приятная особенность: модель более устойчива к выбросам (outliers) среди обучающих примеров.
Признаки делятся на группы:
— построенные по текущему времени;
— гео (координаты, расстояние до центра города и значимых объектов на карте);
— пиновые (сколько и каких машин рядом, по-разному подсчитанная их плотность);
— статистика по зоне (как обычно ошибаемся, сколько предсказываем);
— данные о ближайших водителях (за какое время доезжают, насколько первый ближе второго и т.п.).
На этих признаках обучали, конечно же, CatBoost. Решающим доводом было то, что реализованный в CatBoost градиентный бустинг над сбалансированными деревьями уже давно зарекомендовал себя как очень мощный метод машинного обучения, а способ кодирования категориальных признаков в CatBoost регулярно оправдывает себя на наших задачах. Другая приятная особенность библиотеки — быстрое обучение на GPU.
Теперь пара слов о том, какие модели сравнивались. Исходное ЕТА (до уточнения машинным обучением) рассчитывалось на основе времени, за которое может приехать ближайшая к пользователю машина. Текущая модель (используется в приложении сейчас) — то, что получилось сделать с помощью машинного обучения и чему посвящена эта статья. Кроме того, в продакшн скоро выкатится новая модель. Она использует на порядок больше значимых для решения задачи признаков. В таблице ниже приводятся замеры качества этих моделей на исторических данных. К слову, у нас планов ещё много — приходите помогать.
Вопросы и ответы
Что означает “4+1”, “4+2” и т.д.
Первая цифра означает минимальное время, на которое вы можете арендовать транспорт, вторая цифра — время подачи транспорта.
Что такое время (часы) подачи?
Часы подачи — это время, в течение которого транспортное средство едет до места назначения и обратно. Оно не входит во время перевозки, но подлежит оплате. В Москве это 2 часа для автобусов и 1 час для микроавтобусов.
Почему оплачиваются часы подачи?
Часы подачи отделили от реального времени аренды из-за ситуации на дорогах, а также протяженности трасс в Москве. При нулевом времени подачи выезд транспорта для нас нерентабелен, т.к. затраты на путь до места посадки могут быть даже больше, чем прибыль от сдачи в аренду. Поэтому часы подачи оплачиваются обязательно. Час подачи включает только время пути из гаража к месту посадки и обратно, время самой поездки в час подачи не входит.
Важно! Чтобы не опоздать на мероприятие, желательно заложить дополнительное время, с учетом длительности поездки и протяженности маршрута.
Почему посчитано не 2 часа подачи, а больше?
При расчете поездок по городу применяется стандартная схема минимального заказа 4+2 у автобусов или 4+1 у микроавтобусов. Если запланирован выезд за пределы МКАДа, автобус будет добираться до места дольше, следовательно и часов подачи будет больше.
Если меня интересует аренда всего на час, такое возможно?
Возможно. Однако, вам необходимо будет оплатить время минимального заказа транспорта. В описании каждого автобуса и микроавтобуса вы можете увидеть размер минимального заказа. Например, в будний день для большинства автобусов размер минимального заказа составляет 4+2 часа. Это минимальная стоимость, которая окупает выезд транспорта из автопарка.
А если мы захотим увеличить время, такое возможно?
Да, такое возможно. Вы должны сообщить о своем намерении продлить время аренды в диспетчерскую службу по телефону +7(926)220-76-58 и получить одобрение. В случае подтверждения нужно оплатить дополнительное время до начала переката на месте водителю.
Да, мы готовы взять это на себя, услуга бесплатная.
Предусмотрены ли какие-либо скидки для организаций/крупных перевозок и т.д?
Мы предоставляем скидки для наших постоянных клиентов или при большом объеме заказа, а при первом заказе у нас есть специальные цены на отдельные виды транспорта.
Есть ли у вас возможность взять в аренду автобус без водителя?
К сожалению, нет. Мы предоставляем в аренду автобусы и микроавтобусы только вместе с водителем. При этом оплата услуг водителя уже включена в стоимость аренды.
Есть ли у вас биотуалеты?
Биотуалеты есть в автобусах вместимостью от 45 мест, но большинство клиентов предпочитает делать вынужденные остановки, так как так намного комфортнее, чем пользоваться биотуалетом во время движения автобуса. К тому же стоимость подготовки к эксплуатации биотуалетов стоит 5000 руб.
Можно ли пить алкоголь, курить в автобусе?
Курить в автобусе запрещено. Лучше всего сделать для этого остановку и спокойно покурить на улице. Что касается алкоголя, то употребление возможно только при аренде клубных автобусов: алкоголь вы покупаете сами заранее. При аренде обычных автобусов распитие алкоголя и курение в них запрещено.
Есть ли автобусы с телевизором, музыкой и т.д.?
Часть автобусов оборудована телевизорами и музыкальными системами согласно их комплектации, выпущенной с завода-изготовителя. Подробнее о комплектации транспорта можно узнать у менеджера. Во всех автобусах есть микрофон. Музыка с караоке доступна только в клубных автобусах.
Есть ли у вас все необходимые документы, разрешения на перевозку?
Да, есть. Все необходимые документы размещены на нашем сайте в разделе “Документы” и на главной странице сайта.
Как можно забронировать транспорт?
Оформляете заявку через диспетчерскую службу по телефону: +7(495)204-10-40 или через форму заказа на сайте, получаете подтверждение о принятии вашей заявки по смс. Далее на электронную почту высылается договор для ознакомления с условиями. Подписываете договор и отправляете нам. Вносите предоплату. За 10 минут до заказа получаете смс о назначенном транспорте. Подается транспорт.
Расскажите, пожалуйста, каким образом у вас рассчитывается оплата аренды автобуса и микроавтобуса. Интересуют тарифы как внутри города, так и вне города.
День добрый, стоимость аренды микроавтобуса, автобуса и минивэна отличается из-за разной вместимости. Если вы хотите арендовать микроавтобус, то стоимость за час рассчитывается по часовой тарифной ставке, указанной в карточке транспорта в пределах Москвы, если планируется выезд за пределы города, то берется дополнительная оплата. Выезд за МКАД рассчитывается следующим образом: за каждые 20 км. берется доплата за 1 час аренды, дополнительно к основному времени минимального заказа.
Какие есть варианты оплаты?
Принимаем оплату 5 способами. Подробнее о вариантах оплаты читайте на этой странице.
Можно ли поставить бронь на транспорт?
Да, но забронировать транспорт без оформления договора вы можете только на 1 сутки, далее в автоматическом режиме неоплаченная бронь снимается.
Что будет если наш транспорт сломался?
При поломке транспорта, назначенного на ваш заказ, вам предоставляется замена согласно договору — без привязки к модели, но с учетом требований по количеству мест. Возможно предоставление транспорта с большим количеством мест, вопрос доплаты в этом случае согласовывается с клиентом. При непредставлении равноценной замены в течении 2-х часов денежные средства возвращаются в полном объеме.
Можно ли отказаться от транспорта если он не понравился?
Отказ от транспорта может быть принят в двух случаях: если он не соответствует требованиям безопасности и если были нарушены условия договора в части пункта опоздания на 2 часа и более. В остальных случаях отказ от транспорта не освобождает вас от оплаты полной стоимости заказа.
Приехал не тот транспорт что заказывали, что делать?
Зафиксировать несоответствие и сообщить факт замены по телефону диспетчерской службы +7(495)204-10-40. По правилам компании бронирование транспорта происходит без привязки к марке (модели), цвету и расположению в салоне транспорта. Учитывается только минимальная комплектация и количество мест. При оформлении заказа уточняются все пожелания клиента и с их учетом происходит расстановка транспорта. Замена происходит редко.
Какой пакет документов необходимо иметь при организованной перевозке детей?
Как получить цену, озвученную при первом расчете заказа, если при последующем звонке цена выросла?
Цена может вырасти по следующим причинам:
Получить неизменную цену указанную при первом обращении, можно двумя способами:
Важно! Если между звонками запроса цены и заказом транспорта прошло более 5 дней, стоимость может кардинально измениться, поэтому не откладывайте бронирование: попросите менеджера выставить бронь на сутки и максимально быстро оплатите заказ, тогда вы сможете арендовать транспорт по первоначально озвученной цене.
Что делать если цена изменилась в течение 2- х дней?
Компания применяет политику гибких цен. Поэтому если транспорт не был забронирован на сутки, цена может изменится как в большую так и меньшую сторону. Прежде всего, это связано с действующими акциями и повышенным спросом на вашу дату.