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




Задача (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 не будет опубликован. Обязательные поля помечены *