Игрушки для логиста




Задача (Vehile Routing problem — VRP) была сформулирована более 40 лет назад и сейчас является одной из наиболее трудных и интересных комбинаторных задач. Она заключается в построении оптимальных маршрутов, чтобы удовлетворить условия поставки для некоторого количества покупателей.

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

  • вместимость каждой машины
  • время доставки товара покупателю
  • количество точек доставки
  • время работы водителя

Оптимизировать пробег машин для экономии времени и топлива.

Предлагаем вашему вниманию программу Optaplanner для оптимизации маршрутов доставки.

OptaPlanner — это модуль планирования, написанный на Java™. Модуль совмещает набор эврестических и метаэвристических алгоритмов с эффективной оценкой результатов.

OptaPlanner — open source software, распространяется под лицензией Apache Software License.

Выгрузка для 1С Предприятия 7.7

Предлагаем воспользоваться обработкой для выгрузки точек доставки из 1С Предприятие 7.7 Комплексная в формате СVRP и CVRPTW

  • CVRP — Capaсity Vehile Routing Problem — Задача оптимизации маршрутов с ограниченной вместимостью
  • CVRPTW — Capaсity Vehile Routing Problem with Time Windows — Задача оптимизации маршрутов с ограниченной вместимостью и временем доставки

Координаты точек доставки предлагается определять по адресу доставки с помощью Yandex maps api

Алгоритм работы:

  1. В 1С Предприятии 7.7 запустить обработку Конструктор логиста
  2. Заполнить отгрузки за один день
  3. Установить координаты для всех точек доставки
  4. Установить последнюю версию Optaplanner
  5. Запустить ..optaplanner-distribution-6.0.1.Finalexamples
    unExamples.bat
  6. Пункт Vehile Routing
  7. Import — для CVRP, Open — для CVRPTW

Дополнительная информация

16 Comments

  1. MadHead

    На мой взгляд самое сложное в данной задаче легально получить матрицу расстояний между точками, а лучше время проезда с учетом пробок. Если брать по прямой, то толку от такой оптимизации крайне мало

    Reply
  2. ShtomBY

    с учетом пробок? это было бы интереснее)

    Reply
  3. ildarovich

    Ссылки интересные приведены

    Reply
  4. monkbest

    (1) MadHead, собственно да. Мало того, что нужно раздобыть полный граф карты города. Всем ветвям графа нужно как-то проставить вес. Следующая проблема, что граф рельного города настолько большой, что вычисления оптимального маршрута — задача для мощного сервака, а не десктопа.

    И тут получается вывод, что нужен сервис типа Яндекса, в котором есть средние скорости по каждому отрезку пути, есть все карты и есть огромные вычислительные мощности

    Reply
  5. natarezn

    100 процентов не коммуникативно ?

    Reply
  6. ildarovich

    (4) monkbest, никаких огромных мощностей не нужно: http://habrahabr.ru/post/211388/ там у них получилось от 60 до 250 ms на на Core i7 3.4 Ghz.

    Reply
  7. phsin

    (1) MadHead, город можно сравнить с сильно связным графом

    если вы ставите вопрос о том, что с реальными расстояниями будет точнее, то я с вами соглашусь.

    в статье Vehicle routing with real road distances проводится сравнение вычислений с матрицей расстояний «по прямой» и «реальными» расстояниями, выигрыш составляет 5%

    Если же сравнивать алгоритмы кластеризации (или деление по районам, как все обычно делают) с оптимизацией с расстояниями «по прямой», то думаю что выигрыш будет больше — порядка 20-30% , хотя с такими исследованиями пока не сталкивался.

    Reply
  8. phsin

    Geoffrey De Smet предлагает воспользоваться Java библиотекой GraphHopper, основанной на OpenStreetMap, Загрузка всей сети дорог Северной Америки занимает около 6GB.

    Reply
  9. phsin

    (4) monkbest, вы можете опробовать Optaplanner на своём компьютере, думаю, вы будете приятно удивлены

    Reply
  10. pt_olga

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

    Reply
  11. ildarovich

    (10) pt_olga, будущее уже совсем рядомнаступило — DHL запускает беспилотную доставку в Германии(Ссылка)

    А вот еще на ту же тему: Создателя Copter Express оштрафовали за доставку пиццы дронами. В последнем случае дело происходило в Сыктывкаре.

    Reply
  12. mdmdvd

    Можно попробовать сервис от Гугл Матрица Расстояний называется

    Reply
  13. phsin

    (12) mdmdvd, спасибо за интересную ссылку.

    Reply
  14. ildarovich

    (12) mdmdvd, но там только 25 точек (входов и выходов суммарно) или 100 связей ограничение. То есть получится только 10 точек реально считать. Да и с лицензией как то мутно. С чего бы Гугл задарма такой сервис десктопным приложениям раздавало? Это для сайтов, как и у Яндекса, чтобы рекламу доставлять.

    Reply
  15. zarius

    С момента публикации прошло более 3 лет.

    Просьба к автору поделится опытом практического применения. Используется ли где нибудь на текущий момент времени данный расчет маршрутов? Если используется, то насколько оптимально решается задача и как часто логисты вносят изменения в конечные маршруты? Сколько машин и адресов доставки обычно участвует в расчетах?

    Сам optaplanner пока еще развивается, судя по дате последнего релиза: 7.4.1.Final от 24.10.2017.

    Reply
  16. phsin

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *