как построить логистику по адресам
Как построить логистику по адресам
Возможность прокладки наиболее оптимального маршрута с точки зрения временных затрат Лёгкое задание точек отправления и назначения Возможность построения маршрута по нескольким точкам Возможность повторного использования и сохранения получившегося маршрута
Список адресов (каждый адрес начинается с новой строки)
Первый адрес будет использоваться как начальная точка, второй как конечная, остальные адреса как промежуточные точки (порядок не сохраняется).
очень нужна ваша помощь!
здравствуй, уважаемый пользователь сервиса построения маршрутов. меня зовут юсупов дмитрий и я постараюсь быть кратким.
возможно вы заметили, что в последнее время сервис работает нестабильно меняя домен за доменом. это происходит из-за того, что компания яндекс блокирует использование api яндекс-карт сервисом из-за превышения лимитов для бесплатного использования. они считают, что сервис повторяет функционал https://yandex.ru/maps/ и собственно необходимости в нем нет, поэтому его можно просто забанить (отлючить возможность использования api карт), что они и сделали. попутно предложив перейти на платные api: https://tech.yandex.ru/maps/doc/tariffs/jsapi/index-docpage/ ( тарифы снизу ), что вообще в моем случае за гранью добра и зла, т.к. тот единственный рекламный банер, который висит на сайте ориентировочно дает 20 т.р. в год. яндекс просит миллион.
конечно яндекс коммерческая компания и правила использования их продуктами выбирают самостоятельно. но возможно они обратят внимание если мы все вместе скажем, что сервис этот нужен, именно тебе посетитель, если не безразлично закроется ли сервис или нет, пожалуйста напиши сообщение в компанию яндекс через форму обратной связи: https://tech.yandex.ru/maps/doc/geocoder/desc/feedback/troubleshooting-docpage/ (тема сообщения другое), почему сервис нужен и почему не стоит его закрывать. укажите пожалуйста в теле письма, что вы говорите о домене http://logist.poncy.ru. возможно они нас услышат.
лично для меня как разработчика доход с данного сервиса не существенен, меня охватывает печаль, что придется закрыть сервис, который нужен и полезен людям, я это точно знаю мне пишут много писем, отдельное спасибо этим людям. заранее огромное спасибо за участие.
с уважением, Юсупов Дмитрий.
ПОЖАЛУЙСТА, ОТКЛЮЧИТЕ БЛОКИРОВЩИК РЕКЛАМЫ!
Доходы от рекламы позволяют сайту существовать и развиваться, блокируя рекламу, вы препятствуете его развитию. Благодарим за понимание.
Как организовать логистику начинающему предпринимателю
Привет читатель, меня зовут Михаил в данной статья я коротко расскажу что же такое транспортная логистика для малого и среднего бизнеса в РФ и как ее оптимально, за короткий срок выстроить.
Немного обо мне: моя компания оказывает подобные услуги с 2015 года, в пуле наших клиентов в основном МСБ — предприниматели которым требуется доставлять свой товар до клиента (в основном hoReCa) и для нужд собственного бизнеса, но есть крупные федеральные клиенты такие как, кирпичные заводы, производители бытовой химии и продуктов питания, банки, гос. учреждения, также я сам являюсь заказчиком данной услуги как региональный дистрибьютор воды и делаю свои выводы и как исполнитель, и как заказчик.Моя компания управляет собственным и наемным автопарком, всего около пятидесяти грузовиков, также мы работаем над созданием платформы где можно легко, быстро сделать грузовой автомобиль и получить заказы частным перевозчикам. В данной статьи я не рекламирую свои услуги, а исключительно делюсь своим опытом с начинающими предпринимателями, поэтому не буду делать ссылки и названия.
Перед тем как создать данную статью я сделал опрос, и узнал что же важно для клиента при выборе поставщика транспорта и какие проблемы возникали на разных этапах доставки груза.
— Своевременность подачи автомобиля и доставка груза.
— Адекватность водителя или представителя.
— Стоимость услуги и варианты оплаты.
— Коммуникации (быть всегда на связи с клиентом)
— Состояние транспортного средства (особенно важно когда клиент заказывает грузовое такси и сам находится в кабине как экспедитор)
Вот пожалуй основные моменты которые волнуют заказчика грузового автомобиля и сейчас я расскажу как учесть все обстоятельства и минимизировать риски в бизнесе, связанные с доставкой и логистикой. Скажу сразу что в данной статье я не буду рассматривать приобретение собственного грузовика для нужд бизнеса, т.к. это совсем другая история.
— Бортовой ( в основном предназначен для перевозки метала, кирпича, мусора и габаритных предметов)
— Тентованный (продукты питания не требующие термо-режима, товары народного потребления, мебель и быт техника, оборудование)
— Изотермический фургон (мало отличий от тентованного кузова, подходит для продуктов питания с небольшим термо-режимом по городу, также применяется для режимных объектов из соображений безопасности)
— Манипулятор (подходит для крупных, габаритных предметов с отсутствием техники для погрузки/выгрузки, строительных материалов и тяжелых грузов, а так же транспортировки автомобилей)
После того как мы определились какой автомобиль нам нужен, приступим к поиску, здесь есть всего несколько проверенных инструментов, это биржа грузоотправителей и грузоперевозчиков АТИ, наработанные контакты, специальные чаты в мессенджерах Icq и Телеграм, еще можно воспользоваться Авито. При общении с водителем или представителем ТК (диспетчером) дайте максимум информации о грузе, адресах сроках и способах погрузки и выгрузки, выведите резюме проговорив еще раз все важные детали (по возможности продублируйте в мессенджер или на почту)
Имея все необходимые документы начинаем проверку водителя, это не обязательная процедура, но начинающим я советую ее делать всегда, хотяб проверить по базе судебных приставов на судебные дела и наличие штрафов на водителя и транспортное средство ( учитывайте что все живые люди и штрафы допускаются даже самыми аккуратными и опытными перевозчиками, но когда их десятки или даже сотни — тут все понятно что за ездок) Если данные методы не развеяли ваше подозрение, попросите сделать фото АТС сейчас и фото водителя на фоне данного АТС с документами (на это соглашаются далеко не все, но можно добавить к стоимости дабы замотивировать водителя на такой шаг. Эти методы я применяю даже когда, заказываю транспорт на АТИ, где есть система балов и отзывов, т.к они не всегда отражают картину, так же обратите внимание на корректность общения самого водителя «валета» слышно из далека.
После проведения данных мероприятий переходим к оформлению заявки где указываем все исходные данные на груз, водителя, адреса, цену, способ и срок оплаты. Не поленитесь просчитать маршрут в километрах и часах, и дальше договоритесь детально о коммуникации с водителем по времени, ситуации и местоположении, чтобы линий раз не нервничать самому и не отвлекать человека от сложной и опасной работы.
Как настроить логистику с помощью цифровых инструментов и доставлять больше заказов при тех же ресурсах
директор по управлению цепями поставок Simple Group
Группа компаний Simple — один из ведущих импортеров вина, крепких спиртных и безалкогольных напитков, национальный дистрибьютор и ритейлер с собственной сетью винотек. Клиентская база группы очень широкая, поэтому в низкий сезон в день приходит около тысячи заказов, а в высокий эта цифра может доходить до 2,5–3 тысяч заказов в сутки.
Раньше все планирование здесь вели вручную, но когда были достигнуты максимальные показатели эффективности, пришлось искать новые пути для дальнейшего роста.
Справиться с растущим числом заказов помогла автоматизация логистики на базе решений от платформы «Яндекс.Маршрутизация». Как удалось это сделать, рассказывает Дмитрий Забаров, директор по управлению цепями поставок Simple Group.
Основная задача — создание новой логистической модели
Долгое время мы применяли классическую схему планирования маршрутов по зонам, которая еще называется статичным или зональным планированием.
В основе статичного планирования заложен простой смысл: к каждой территории привязываются машины, которые доставляют заказы только внутри этой зоны, не выезжая за ее пределы. Водитель хорошо знает свою территорию и точки, с которыми он работает, что позволяет ему выполнять работу с максимальной эффективностью.
Главный минус статичного планирования — это его неприспособленность к изменениям. Меняются спрос, сезонность и даже сами водители. Помимо этого, может оказаться так, что в одной зоне машина доставляет 10 заказов, а в другой — 19.
Альтернативой доставке с жесткими секторами является динамическое планирование, которое осуществляется без оглядки на зоны. Преимущество такого метода заключается в уплотнении маршрутов и повышении эффективности одной машины.
Но смену модели планирования нельзя было осуществить за один день — это потребовало времени и автоматизации целого ряда процессов.
Шаг №1. Работа с мастер-данными
В первую очередь для перехода на динамическое планирование нам было важно понять, какие данные необходимы для автоматического построения маршрутов. После этого мы проверили их наличие и правильность заполнения. Оказалось, что в наших мастер-данных встречались ошибки и неточности.
Мастер-данные — это основа любой компании, так как в них содержится информация о клиентах, адресах доставки, характеристике заказов. Так как это «подвижная» информация, данные могут вноситься разными людьми в разных местах. В результате у нас в системе могли дублироваться адреса из-за опечатки или неточности в написании.
Автоматизация невозможна без очистки мастер-данных — любой алгоритм будет работать с ошибками, если на одну компанию у нас есть три разные клиентские карточки, отличающиеся друг от друга несколькими знаками в адресе.
Шаг №2. Онлайн-мониторинг движения заказов
После подготовительного этапа работы с мастер-данными мы приступили к плавному переводу водителей на новую схему планирования.
Во время любого процесса по автоматизации нельзя забывать о самом важном — людях.
Нам предстояло перевернуть привычную схему работы водителей, поэтому мы решили сделать это постепенно. Пока мы настраивали автоматизацию построения маршрутов, машины продолжали ездить по традиционной схеме. Только теперь мы установили на телефоны курьеров мобильное приложение, которое вело мониторинг выполнения заказов по привычным для водителей маршрутам.
Сигналы от приложений водителей передаются на рабочее место логиста, где он может отслеживать статусы доставки по каждому курьеру и заказу. При этом собираются и другие ключевые метрики:
Помимо отображения статусов уже выполненных заказов, алгоритмы приложения рассчитывают потенциальные нарушения времени выполнения будущих заказов на маршруте. Это позволяет логисту занять проактивную позицию — он может заранее предупредить клиента о возможной задержке.
Шаг №3. Автоматизированное планирование маршрутов
Из-за специфики бизнеса на каждой точке доставки водитель проводит много времени, так как каждая бутылка должна быть оформлена в ЕГАИС. Поэтому вместо стандартных для B2C-доставки 30–40 точек на маршрутах у водителей бывает около 15.
Основной целью при переходе на новую схему планирования было увеличение плотности маршрутов, то есть рост числа заказов, которые может выполнить водитель за один выезд.
При традиционной схеме модели Москва была поделена на 34 маленьких сектора, за каждым из которых мы закрепляли по несколько отдельных водителей. При полном отказе от традиционной модели у нас получались маршруты, вытянутые по всему городу, а значит, экспертиза водителей в знании местности терялась.
Поэтому мы решили комбинировать зональное и динамическое планирование — вместо 34 маленьких секторов мы сделали шесть больших с «мягкими» границами.
Теперь Москва делится на шесть зон, внутри которых алгоритм автоматически просчитывает оптимальный вариант маршрута. При этом система настроена на проявление гибкости — заказ возле границы второго сектора может быть удобнее забрать водителю из первого и наоборот.
По итогам первых месяцев использования новой схемы мы видим увеличение наполняемости одной машины (это позволяет доставлять больше заказов при тех же ресурсах) и рост количества точек на маршруте на 10%.
При этом коэффициент on-time, отражающий выполнение доставок вовремя, удалось сохранить на уровне 97%, несмотря на растущее количество заказов.
Как достичь максимума при автоматизации логистических процессов
В проекте Dig(IT)al рассказываем о технологиях, которые помогут вам заработать. Переходите на цифровую сторону бизнеса.
Фото на обложке: Ondra Vacek / Shutterstock
Изображения в тексте предоставлены автором
Яндекс.Маршрутизация: как мы окунулись в логистику и решили поменять будущее
Этот текст возник благодаря появившейся в Яндексе забаве random coffee — система назначает встречу двум случайным сотрудникам, если они указали, что хотят участвовать в таких встречах. Мои собеседники находили рассказ о том, чем я занимаюсь, интересным, и вот у меня дошли руки предложить его более широкой аудитории.
До Хабра я выступил с гостевой лекцией на факультете компьютерных наук Вышки и Яндекса — рассказал студентам ФКН ровно то же самое, о чем сейчас расскажу вам (в конце поста есть видео). А именно — как путешествия с водителями, развозящими заказы из интернет-магазинов, убедили нашу команду делать новый сервис про логистику. Надеюсь, у меня получится передать вам мои ощущения от этой сферы: я поездил в «Газели» и «Ларгусе», послушал жалобы сотрудников на придирчивую «тетку из Ногинска» и стал свидетелем того, как заказ из трех самокатов для трех детей превратился в драму. А в конце поговорим про технологии.
Часть 1. Как все начиналось
Несколько лет назад, гуляя по офису в раздумьях о том, не пора ли мне поменять что-то в жизни, я практически случайно столкнулся в коридоре с коллегой, которого сильно уважал по одному из прошлых проектов. Оказалось, он перешел во внутренний стартап, и они как раз ищут аналитика. Так я очутился в подразделении под названием B2BGeo. Эта небольшая на тот момент группа должна была делать какие-то штуки для компаний на базе геосервисов Яндекса — только никто не знал, какие именно. Исторически сотрудники геосервисов делают десктопные Яндекс.Карты, мобильные приложения Карт, Навигатора и Метро. Также в это подразделение входит внушительная инфраструктура: разработка движка маршрутизации, картографическая служба, распознавание дорожных знаков, извлечение данных из спутниковых снимков и многое другое. И веб-карты, и Яндекс.Навигатор — приложения, предназначенные для массового пользователя. Из сервисов для компаний у нас был только набор картографических API: JS-виджет карт для сайтов, MapKit для приложений и REST API построения маршрутов.
Так что команде B2BGeo, прежде чем начать продавать продукты для компаний, предстояло эти продукты придумать. Некоторое время мы потратили на исследование рынка и создание прототипов. Прототипы были интересные, например карта качества сотового сигнала внутри зданий. Тогда сотовые операторы не использовали те огромные объемы данных, которые у них есть, измеряли качество в основном на улицах и довольно примитивным образом. Другой пример прототипа — универсальный кастомизируемый роутер с машинным обучением. Кстати, здесь и далее под роутером и маршрутизатором имеется в виду не сетевое оборудование, а программа построения маршрутов.
Одни прототипы не взлетели, другими бы не заинтересовалось достаточное количество компаний. Нужно было нечто более масштабное. В перспективе — переворачивающее мир и открывающее новые горизонты, а для начала приносящее значительную пользу за счет геотехнологий. Мы провели стратегическую сессию: уехали из офиса и два дня брейнштормили. По итогам сессии определили отрасль, где есть для нас достаточные перспективы. Наш выбор пал на логистику.
В России масса коммерческого транспорта, множество транспортных и курьерских компаний что-то куда-то возят. И все они, скорее всего, составляют свои маршруты либо вручную, либо с помощью программ, которые наверняка не очень хорошо работают, потому что не учитывают пробки. А у нас за спиной был целый Яндекс c большим количеством железа, пробочными данными, которые есть лишь у небольшого числа компаний (редкий пример — Google), и хорошими программистами. Компетенции в этой сфере редки и ценны: Uber в какой-то момент выкупил целую картографическую команду.
Воодушевленные этой перспективой, мы договорились с одним из агрегаторов доставки (компанией, которая развозит заказы разных интернет-магазинов), чтобы они дали нам посмотреть изнутри на их работу, «погрузиться в индустрию». Участники нашей небольшой команды поездили с курьерами, развозящими заказы, и посидели рядом с логистом, который планирует маршруты.
Часть 2. Погружение в индустрию
8 утра, одна из промзон за Третьим транспортным кольцом, где находится склад и офис агрегатора. Небольшое помещение, напоминает отделение почты: угол огорожен конторкой, внутри — компьютеры логистов, телефоны, принтеры. Засаленные стулья и компьютерные кресла с потрескавшимся дермантином. Коробка с дешевыми китайскими телефонами, на каждый наклеена бумажка с номером — их раздают водителям. Вдоль стен простенькие диванчики-банкетки, у выхода стенд с распечатками: правила перевозки, какие-то внутренние инструкции, таблица штрафов — например, за недоставленный заказ с водителя снимут 200-300 рублей. У агрегатора есть еще и нормальный офис, где за красивыми столами сидят директор, менеджеры и бухгалтерия, но ключевые для нас события происходят именно в этой маленькой комнате.
Водители курят на улице, но там прохладно, большинство стоят внутри, поэтому в помещении тесно и душно. Мат-перемат в три этажа, многие по-утреннему хмуры, кто-то хочет получить свою пачку накладных и уйти загружаться, у кого-то заминка, он недоволен. Обстановка напряженная, логистов двое, и они в мыле. Нам говорят, что это обычный день, просто утром, во время выезда на маршруты, всегда запарка. Ночью, когда шло планирование, тоже была запарка, где-то через часок напряжение спадет, и логист сможет отдохнуть.
Нескольким водителям говорят, что «с вами поедет Яндекс». Они удивлены и не особо довольны — непонятно, с чего им такое счастье и не поставили ли нас за ними следить. Мы, офисные салаги IT-работники с рюкзачками, здорово контрастируем с этим хмурыми мужиками.
Мне досталась «Газель», в ней водитель и экспедитор, я сажусь третьим с рюкзаком в обнимку и стараюсь не занимать слишком много места. Заказы уже погружены в кузов, стартуем.
Позже я узнал, что обычно предшествует выезду автомобилей на маршрут.
Допустим, сегодня среда, вы заказываете холодильник на небольшом сайте, который вы нашли на Яндекс.Маркете, у этого магазина лучшая цена и приемлемые отзывы. Доставка возможна только в пятницу, вас это устраивает. Сайт на самом деле является всего лишь витриной, у совсем мелких сайтов менеджер, подтвердивший заказ, вообще может быть единственным сотрудником. Ваш холодильник находится где-нибудь на складе под Подольском вместе с другими холодильниками той же фирмы (собственного склада у мелкого магазина нет — по сути, продажа идет со склада производителя). Менеджер бронирует этот холодильник и отправляет заказ агрегатору доставки. В течение среды агрегатор собирает заказы и в четверг отправляет большой грузовик в Подольск за вашим и другими холодильниками, заказанными в других магазинах. Все это приезжает на арендуемый агрегатором склад в московской промзоне.
Вечером в четверг, когда все товары, которые предстоит доставить в пятницу, собраны на складе, за работу садятся логисты. К 4-5 утра они должны распределить заказы по машинам, складские работники разложат товары в кучки, каждой машине своя кучка — нужно оставить им запас времени на эту работу. Кучку загрузят в машину, и она поедет радовать заказчиков.
Для распределения заказов по машинам логист использует специально купленную программу. Она интегрируется с 1С: Предприятием, в нее загружаются данные о машинах (допустимый вес и объем груза, стоимость дня работы) и о товарах (вес, объем, адрес и интервал доставки, контакты покупателя, комментарии). Часть машин принадлежит агрегатору, у этого были «каблучки» (Lada Largus) и «Газельки» (Газель/Ford Transit/Hyundai Porter). Также были наемные курьеры на личном автотранспорте, обычно на легковушках-универсалах (мы видели Ford Focus, Mitsubishi Pajero и даже какой-то старый Lexus).
Программа написана хорошими программистами, она умеет разбрасывать грузы по машинам и строить оптимальный (по времени или пробегу) маршрут объезда заказов, учитывая кучу параметров. Но логист этой функциональностью никак не пользуется. Зато он активно использует визуализацию заказов на карте. Программа позволяет нарисовать на карте многоугольники-области и выводить статистику грузов и маршрутов внутри этих областей. Логисты разбили всю Москву и Подмосковье до «Большой бетонки» (трасса А108) на зоны примерно такого вида:
В центре — какие-то небольшие районы, а дальше начинаются радиальные секторы, идущие вдоль крупных магистралей и захватывающие область.
В каждой такой зоне работают определенные водители, которые обычно хорошо с ней знакомы, знают дороги, особенности трафика, знают, где стоят гаишники, какие ограничения и знаки есть для грузовиков. Логист, в свою очередь, знает, сколько заказов может развезти экипаж. Более опытным он дает под 30 заказов, а тем, кто начал работать недавно, — 20-25 заказов. Он смотрит, сколько заказов попало в определенную зону, и если их слишком много, то перебрасывает в соседнюю. Или добавляет из соседней: скажем, с некоторыми водителями логист дружит и отдает им «легкие» заказы, которые, скорее всего, будут по дороге. А нелюбимому водителю может насолить. Например, подбросить заказ для клиента, про которого заранее известно, что он придирчив, потребует доставки строго в обозначенное время, распечатает все товары, будет их долго осматривать. Кроме того, логист может просто дать водителю меньше заказов: за каждый заказ водитель получает 200 рублей, он заинтересован в том, чтобы их было побольше.
Возможность планирования маршрутов в программе игнорируется совершенно. Эта возможность в такой системе и не имеет смысла: если логист скажет водителю, как ему надо объезжать заказы, водитель ему ответит: «Вы там в офисе сидите, а я этот район как свои пять пальцев». Так что логист лишь назначает заказы на машину, задание водителю формулируется в виде кучки на складе и стопки распечатанных накладных.
Итак, возвращаемся в «Газель». Наш район — шоссе Энтузиастов и дальше в сторону Ногинска, до МКАДа будет около 15 заказов, там я сойду. Водитель выезжает на Третье транспортное кольцо, в это время экспедитор берет пачку накладных и перекладывает их в правильном порядке. Правильный порядок такой:
— Сначала мы поедем по шоссе Энтузиастов в сторону МКАДа и возьмем все заказы, которые справа. Слева не всегда берем, могут быть пробки при пересечении шоссе, лучше их вечером взять. Потом уедем в область, там развезем. Вечером поедем обратно и развезем оставшееся.
— А вот, к примеру, первый заказ в стопке — с пожеланием «после 14 часов»? Оставите его на вечер?
— Можно и на вечер, но лучше попробуем договориться, чтобы отдать сейчас.
Процесс «договаривания» был продемонстрирован немедленно. В 9:30 экспедитор позвонил по телефону заказа «после 14 часов»:
— Здравствуйте, доставка, мы уже в вашем районе, сможете заказ принять. Мы после вашего района поедем в область, и сюда уже до вечера не вернемся. Может быть, вернемся после девяти, а может быть, совсем задержимся в области, тут дело непредсказуемое, возможно, придется на другой день доставку переносить… Хорошо, тогда через 15 минут подъедем.
Вот тут-то я и понял, откуда берутся курьеры, которые говорят: «Здравствуйте, я уже у вас!» — и совершенно игнорируют мои комментарии и интервал доставки!
Коллеги, которые поехали в других машинах, рассказывали, что у кого-то водитель или экспедитор честно звонил клиенту за час до доставки. Мои же были не очень общительны, звонили минут за пятнадцать, проговаривали комментарии клиентов вслух. Простые пожелания («не звоните в домофон, ребенок спит») учитывались, но все, что влияло на маршрут, обычно игнорировалось. Перекладывая накладные, экспедитор выудил заказ, который требовалось отвезти в поселок в нескольких километрах от Ногинска.
— О, снова эта тетка. Помнишь, у нее был заказ, потом возврат по браку? Теперь новый заказ.
— Ага, опять стиралку поднимать. Еще интересная такая: «просьба доставить с 12 до 16». Как она себе это представляет?
— Да вообще, они не понимают, что пишут. Я так считаю: если ты в Ногинске своем заказываешь стиральную машину, так сиди себе и жди спокойно, пока ее привезут. Или договорись как-то с соседями, или с работы отпросись. Мы же не можем каждый день в ее этот Ногинск ездить.
Около МКАДа я сошел, а водитель повел «Газель» дальше по Горьковскому шоссе. На самом деле, они неплохие ребята, и, несмотря на бухтение в адрес клиентов (оно составляло не менее двух третей всех разговоров), скорее всего, успели бы доставить стиралку до 16. Просто если бы не успели, то даже не побеспокоились бы.
Вторая моя поездка состоялась на машине поменьше: грузовой «Ларгус» ездил по СЗАО. Грузы были мелкие, никаких холодильников, поэтому водитель был один. Дядька попался общительный, мы с ним о многом поговорили. Он сказал, что вообще он мастер спорта по борьбе, работает тренером, но сейчас все глухо, поэтому подрабатывает курьером. Деньги небольшие, но прибавка приятная: за день получается порядка 2 тысяч. Доставлять заказы несложно, работает, когда хочет. Конечно, есть нюансы: попадаются неприятные клиенты, питаться приходится в машине припасенными бутербродами, постоянная спешка, даже в туалет не сходишь, приходится у клиентов проситься. Но в целом он вполне благополучен, для него это скорее развлечение.
Забавно: коллегам, особенно девушкам, сотрудники служб доставки тоже рассказывали истории, что «Курьерка не основная работа, а чисто для души», «Вообще я обычно на бэхе езжу» и т. п.
Помню, в районе Рублевки или Крылатского состоялся у нас такой разговор:
— Как-то в Сити привозил заказ, там у них в небоскребе апартаменты, коридоры все в мраморе, захожу в квартиру — ковры, картины в золотых рамах, шубы какие-то висят, чего только нет. Заказ на 5800, так он сдачу 200 рублей попросил, прикинь?!
— Так, может, у него шубы и картины именно из-за того, что он даже 200 рублей экономит.
После моих слов водитель крепко задумался. А еще через час мы приехали в Щукино и я «все понял» про этот бизнес.
В очередной накладной ручкой была сделана пометка, что с заказом не все в порядке: из трех купленных детских самокатов общей стоимостью 20 тысяч рублей в машине лежали только два. Водитель позвонил логисту. Оказалось, что женщина сделала заказ на три самоката в понедельник, но вчера, в среду, третий самокат по ошибке положили не в ту машину. А это была машина частника, он вечером почему-то не вернулся на склад, как делают «штатные» водители, и самокат по-прежнему ездит вместе с ним. Мы могли бы попробовать его перехватить, но он сегодня ездит по своим делам, пересечься не получается. В следующий раз он будет работать завтра (в пятницу), но это не точно. Гарантированно воссоединить все три самоката и отвезти их разом можно будет только в субботу.
Вооружившись этой информацией, водитель позвонил клиенту. Там оказалась очень недовольная женщина. Она сказала: в субботу в 10 утра у них семейный праздник, где трем ее детям хотели подарить самокаты. Поэтому они ей нужны строго в количестве трех штук, на частичный выкуп она не согласна и вообще не понимает, как так можно — она сделала заказ в понедельник, а теперь мы, магазин самокатов, так ее подставляем. Доставка в субботу в неопределенное время ее не устраивает категорически. Завтра она дома до обеда, если не можете сегодня или завтра утром, то она отменяет заказ и проклинает магазин до третьего колена (и ее можно понять).
Часть 3. Локальный минимум
Магазин покупает услугу доставки заказов у курьерской компании. За недоставленные самокаты он оштрафует курьерскую компанию на 500 рублей. Компания оштрафует своего кладовщика и водителя, который не привез самокат обратно вовремя, на 200-300 рублей. Расстроенная женщина отдаст свои 20 тысяч более расторопному магазину, а этому влепит одну звезду на Яндекс.Маркете. Магазин может оказывать самый лучший сервис, но «последняя миля» осуществляется хмурыми мужиками на «Газелях» и «Ларгусах». Если они будут нехорошо себя вести с клиентами, магазин никак не сможет на это повлиять.
В то же время магазин обычно ищет минимальную по стоимости доставку — в том смысле, что если платить водителям еще меньше, то они пойдут работать таксистами или куда-то еще. Водители оптимизируют свой дневной заработок — надо развозить побольше заказов и не быть оштрафованным. Если составить глобальную функцию стоимости, которая описывает систему в целом, то это состояние функции наверняка будет соответствовать ее локальному минимуму, «потенциальной яме».
В этой яме явно есть большие, системные проблемы. Во-первых, самая сложная работа отдана в руки самого неквалифицированного сотрудника: водитель и машиной управляет, и маршрут планирует, и с клиентом общается. А еще возит деньги. У него появляются дополнительные навыки и специализации — например, умение развезти 30 заказов за день в определенном районе. Получается, компания должна обучать неопытных водителей, а опытных не терять, потому что их (к несчастью для компании) сложно заменить.
Во-вторых, процесс доставки совершенно непредсказуем. Клиент не знает, во сколько к нему приедут. Клиенту обычно предлагают широкие окна доставки — четыре, шесть часов или больше. Это создает для него большие неудобства: не всегда можно шесть часов сидеть на одном месте. И даже в эти окна водители не всегда могут попасть. Возможность сделать более узкие окна, удобные покупателям (два часа, а лучше час), есть только у крупных компаний, которые смогли оттолкнуться посильнее и выпрыгнуть из потенциальной ямы в более оптимальное состояние. Речь идет о фирмах с собственной доставкой и курьерами. «Свои» курьеры пригодились бы всем компаниям: так можно контролировать качество их работы и даже делать какой-нибудь upsale (когда курьер предлагает человеку что-то докупить к заказу). Но держать штат курьеров очень дорого — только самые крупные фирмы вроде WildBerries или Lamoda могут себе такое позволить.
В-третьих, логисты постоянно читерят. В порядке вещей считаются такие трюки, как перегруз машин и нарушение смен водителей (вместо 8 часов они работают по 10-12). «Ничего страшного — если не влезет по объему, то он положит лишнее в кабину» — даже такое бывает. За это положены штрафы, особенно за перегруз фур: к самому штрафу (от ста тысяч рублей с компании) добавят возмещение ущерба дорожному полотну. Оно считается умножением коэффициента перегруза на расстояние и легко может достигать сотен тысяч рублей. Владельцы автопарков рады бы ездить без нарушений. Но предположим, у логиста есть выбор:
— «Впихнуть лишний паллет, немножко превысив»
— «Добавить лишнюю машину, увеличить затраты, зато без нарушений»
— «Посидеть еще полчаса и составить план как следует»
Часто он выбирает первое.
Такая удручающая картина вселила в нас большой оптимизм. Мы провели несколько интервью с компаниями в других отраслях логистики, таких как доставка крупных грузов, доставка документов. Все наши гипотезы, что мир в этом месте устроен неидеально, подтвердились. Значит, перед нами открывалось большое окно возможностей. Мы с жаром принялись за работу.
Часть 4. MVRP и пробки
Ниже будут технические подробности нашего продукта, поэтому начнем с определения. MVRP — это multiple vehicle routing problem, то есть задача, в которой нужно оптимально объехать несколько локаций, обладая автопарком из нескольких автомобилей. Мы используем терминологию, в которой аналогичная задача для одной машины называется SVRP (single VRP). От классической задачи коммивояжера (TSP, travelling salesman problem) она отличается наличием окон доставки. Единой терминологии, кажется, нет: в статье в Википедии решаемые нами задачи называются сложной аббревиатурой VRPPDTW (VRP с режимом pickup-and-delivery и окнами доставки).
Программы, решающие подобные задачи, традиционно называются «солверами». Для универсальности надо в солвер поместить еще кучу опций и ограничений:
Есть несколько видов алгоритмов, которые могут использоваться в солверах. Например, есть большая группа универсальных опенсорсных и платных constraint-солверов (Google OR-Tools, OptaPlanner, Choco-solver). Внутри каждого из них строится функционал, который оптимизируется с учетом требуемых ограничений. Такие солверы обычно умеют решать целую пачку задач: VRP-задачи, составление расписаний, оптимальное распределение ресурсов в облаке.
Также есть много коммерческих решений, заточенных именно под MVRP-задачи и готовых к интеграции с системами управления предприятием. В России известны VeeRoute, Maxoptra, Антор.
Солвер Яндекс.Маршрутизации использует комбинацию алгоритма симуляции отжига и генетического алгоритма. Мы не знаем, что используют конкуренты, но, скорее всего, что-то похожее. По нашим измерениям, на VRP-задачах constraint-солверы очень сильно проигрывают коммерческим солверам.
Решение TSP-задачи объезда штатов в Америке
Сразу оговорюсь: тема решения MVRP-задачи настолько велика, что в статье мы не будем подробно ее касаться, а лучше напишем отдельную статью.
Основные входные данные для солвера — матрица расстояний между точками, участвующими в планировании (точки заказов плюс одно или несколько депо). На самом деле это не одна матрица, а две: по километражу и по времени проезда. Именно за счет этих матриц делается оптимизация. Как уже говорилось, у Яндекса, в отличие от разработчиков остальных коммерческих решений, есть информация о пробках. То есть для нас матрица не постоянна, а меняется во времени, и мы учитываем это в солвере. Насколько нам известно, так в мире никто не делает: даже зная всё о пробках, сложно построить набор матриц расстояний с разумной дискретизацией (достаточной для того, чтобы итоговые маршруты получались хорошими). Дело в том, что число ячеек матрицы растет квадратично от числа заказов.
Предположим, мы решаем VRP-задачу по развозу 10 000 заказов при помощи парка из 500 машин. Тогда у нас получатся две огромные матрицы, меняющиеся во времени. Одно их скачивание по сети займет немало времени, а ведь их содержимое нужно сначала посчитать. Если делать это недостаточно эффективно, нам потребуется подождать пару часов, пока матрицы построятся и скачаются, и только потом можно будет запускать солвер. Здесь нам помогает алгоритм Дейкстры: вычисление больших матриц расстояний можно реализовать за почти линейное (от размера матрицы) время. Но и об этом наша команда расскажет в отдельной статье в ближайшие недели.
Итак, мы построили умный солвер, распараллелили его на кучу машин, сделали роутер со сверхбыстрыми матрицами расстояний, которые учитывают пробки, а также придумали, как эти матрицы в солвер засунуть. В итоге получили возможность за 15 минут решать задачи по объезду 3000 локаций. Результат на карте:
Часть 5. Результаты и трудности внедрения
Можно сравнить наши маршруты и маршруты, построенные логистами, которые планируют поездки вручную или (иногда) в полуавтоматическом режиме с использованием программ-конкурентов. В типичном случае наше решение позволяет обыгрывать логистов в среднем на 20% с небольшим в оптимальности маршрута. При этом время до получения готового маршрута гораздо ниже — 15 минут вместо нескольких часов. В прекрасном будущем логист должен превратиться из нервного измотанного человека, раскидывающего заказы по машинам посреди ночи, в респектабельного члена общества. Он будет пользоваться нашим автоматическим планированием и изредка поправлять руками единичные краевые случаи.
Наиболее гладко внедрение проходило, когда клиенты покупали наше решение в момент открытия своей службы доставки. Но большинство наших клиентов — не новички. У них уже есть внедренное решение для логистики, и чем крупнее клиент, тем сильнее оно обросло всевозможными особенностями процессов именно этой компании, да и просто костылями. Их разработкой и поддержкой занимается своя или наемная IT-служба. Есть мнение, что крупные фирмы (даже если преимущества нашего продукта для них очевидны) могут внедрить Маршрутизацию только вместе с крупным обновлением IT-инфраструктуры. А это обычно случается раз в несколько лет. В мае 2018 года наш новорожденный сервис был анонсирован на конференции YaC 2018 в партнерстве с ИКЕА. Спустя полгода началось внедрение, мы стали обмениваться данными, а спустя год на отраслевой конференции по логистике руководитель проектов в ИКЕА рассказал о результатах.
Результаты оказались позитивными, но немного неожиданными для нас. Например, информирование клиентов повысило их удовлетворенность и существенно снизило число обращений в кол-центр (раньше, ничего не зная о судьбе купленного дивана, люди нервничали и начинали звонить).
То есть оказалось, что наша изначальная установка не совсем верна. Мы-то думали, что будем продавать эффективный объезд точек, а оказалось, что компаниям нужны разные продукты, влияющие на разные показатели, а не только и не столько на эффективность. К счастью, вместе с основным технологическим продуктом мы поставляем еще несколько.
Небольшие компании лучше преодолевают трудности интеграции, но могут столкнуться с человеческим фактором. Очень трудно убедить водителя следовать запланированному маршруту и держать включенным телефон с трекинговым приложением. Это чем-то напоминает истории про крестьян XIX века, ломавших механизированные косилки и плуги. Всё, конечно, не так печально, но сопротивление прогрессу присутствует.
Заключение
За короткое время нам удалось выстроить продукт, который, как мы надеемся, перевернет всю логистику в стране (или хотя бы сильно на нее повлияет). В нас верят наши действующие клиенты и Яндекс. Последнее тоже немаловажно: да, внутреннему стартапу живется спокойнее, чем стартапу за пределами компании, но и нам нужно показывать результат.
Мы начинали с акцентом на крупные компании, в наших дальнейших планах — снижать порог входа в сервис. Поиграться с решением SVRP-задач можно прямо на Яндекс.Картах: при добавлении в маршрут четвертой точки появляется кнопка «Оптимизировать», которая вызывает наш солвер.
Видео этого же рассказа для студентов ФКН в Вышке: