machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Как решить загадку логистики последней мили?

Дата публикации Oct 29, 2018

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

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

Коммивояжер и NP трудные проблемы

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

Задача коммивояжера

Решение задачи коммивояжера - сложная задача для NP, а это означает, что «быстрого» решения не существует (быстрое значение - алгоритм полиномиального времени). Точный алгоритм будет включать в себя поиск всех перестановок и комбинаций маршрутов и сравнение каждого из них, чтобы извлечь кратчайший маршрут. Алгоритм «Хелд-Карп» может быть использован для точного решения проблемы коммивояжера, с использованием подпутей и методов динамического программирования. Даже тогда такой алгоритм может решить только небольшое количество точек за разумный период времени. Любое увеличение количества точек приведет к экспоненциальному увеличению времени вычислений. Таким образом, при практическом использовании в реальных условиях мы используем комбинацию приближенных алгоритмов для аппроксимации наилучшего пути с точностью до 1% от оптимального точного решения.

Проблема с маршрутизацией автомобиля

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

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

Алгоритм сбережений Кларка Райта

Алгоритм Clarke и Wright Savings очень популярен для аппроксимации решений проблемы маршрутизации транспортных средств. Решающей переменной этого алгоритма является количество используемых транспортных средств. Основная идея алгоритма состоит в том, что если два маршрута могут быть осуществлены с возможностью объединения и обеспечить экономию расстояния, то мы идем с объединенным путем. Алгоритм работает следующим образом:

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

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

Алгоритм оптимизации колонии муравьев

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

Google OR-Tools

Как мы можем создать программное приложение, которое решает проблему маршрутизации транспортных средств и использует широкий спектр алгоритмов оптимизации? Оказывается, мы можем использоватьGoogle OR-инструментыпакет, чтобы решить нашу последнюю проблему логистики мили.

В нашем примере проблемной области мы создадим несколько пунктов получения и склад в непосредственной близости от центра Сиднея. Затем наши транспортные средства будут отправляться со склада, посещать каждое из этих мест и забирать грузы с определенным весом. В нашей задаче мы ограничиваем грузоподъемность каждого транспортного средства до 15 кг, и у нас есть максимальный автопарк из 10 грузовиков.

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

Этот проект будет состоять из простого внутреннего сервера Django и внешнего интерфейса, созданного с помощью React.js. Здесь у нас есть 2 конечных точки. Первая конечная точка просто генерирует количество адресов, а вторая конечная точка запускает алгоритм маршрутизации с использованием транспортных средств в Google OR-tools. Мы решили использовать алгоритм экономии, описанный выше, известный своим относительно быстрым вычислительным временем. Входные данные для такого алгоритма включают в себя матрицу расстояний, которая рассчитывается с использованием API матрицы расстояний Google, другие параметры включают в себя список требований к весу для каждого заданного местоположения (генерируется случайным образом) и ряд ограничений, включая максимальное количество транспортных средств и максимальная вместимость каждого автомобиля.

В качестве внешнего интерфейса мы просто используем библиотеку JavaScript Карт Google для отображения местоположений и маршрутов. Мы просто наносим на карту места доставки, а затем рассчитываемые маршруты отображаются с использованием цветных полилиний. Мы также можем увидеть маршруты для каждого отдельного транспортного средства и их вместимость в каждом месте. Поскольку мы добавляем все больше и больше точек к проблеме, решение может быть найдено только в том случае, если мы также увеличим размер парка транспортных средств. Например, если мы ограничим автопарк до 3 транспортных средств, мы не сможем разработать оптимальные маршруты для более 20 мест с грузоподъемностью 15 кг.

Оптимальные маршруты транспортных средств, построенные с использованием полилиний с использованием библиотеки Google Maps Javascript.

Код этого проекта можно найтиВота такжеВот,

Улучшение кластеризации

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

Будущие приложения

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

Оригинальная статья

Footer decor

© machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map