Маршрут транспортного средства

Одной из наиболее распространенных задач оптимизации является маршрутизация транспортных средств , цель которой — найти наилучшие маршруты для парка транспортных средств, посещающих набор локаций. Обычно под «лучшими» подразумеваются маршруты с наименьшим общим расстоянием или стоимостью. Вот несколько примеров проблем с маршрутизацией:

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

Самая известная задача маршрутизации — это задача коммивояжера (TSP): найти кратчайший маршрут для продавца, которому необходимо посетить клиентов в разных местах и ​​вернуться в исходную точку. TSP можно представить в виде графа, в котором узлы соответствуют местоположениям, а ребра (или дуги) обозначают прямое перемещение между местоположениями. Например, на графике ниже показан TSP всего с четырьмя точками, обозначенными A, B, C и D. Расстояние между любыми двумя точками определяется числом рядом с ребром, соединяющим их.

чайная ложка анимации

Подсчитав расстояния всех возможных маршрутов, можно увидеть, что кратчайшим маршрутом является ACDBA, для которого общее расстояние равно 35 + 30 + 15 + 10 = 90 .

Проблема усложняется, когда локаций становится больше. В приведенном выше примере всего шесть маршрутов. Но если локаций десять (не считая начальной точки), количество маршрутов равно 362880. Для 20 локаций число подскакивает до 2432902008176640000. Перебор всех возможных маршрутов гарантированно приведет к нахождению кратчайшего, но это вычислительно трудноразрешима для всех, кроме небольших наборов локаций. Для более крупных задач необходимы методы оптимизации, позволяющие разумно искать пространство решений и находить оптимальное (или близкое к оптимальному) решение.

Более общая версия TSP — это задача маршрутизации транспортных средств (VRP), в которой имеется несколько транспортных средств. В большинстве случаев VRP имеют ограничения: например, транспортные средства могут быть рассчитаны на максимальный вес или объем предметов, которые они могут перевозить, или водители могут быть обязаны посещать места в определенные временные интервалы, запрошенные клиентами.

OR-Tools может решить многие типы VRP, включая следующие:

Ограничения на решение задач выбора маршрута транспортных средств

Проблемы маршрутизации транспортных средств по своей сути неразрешимы: время, необходимое для их решения, растет экспоненциально с размером проблемы. Для достаточно больших проблем OR-Tools (или любому другому программному обеспечению для маршрутизации) могут потребоваться годы, чтобы найти оптимальное решение. В результате OR-Tools иногда возвращает хорошие, но не оптимальные решения. Чтобы найти лучшее решение, измените параметры поиска решателя. Пример см. в разделе Изменение стратегии поиска .