Оптимизация доставки готовой продукции и математический аппарат для ее достижения

А. А. СМИРНОВ

Александр Анатольевич Смирнов — аспирант кафедры систем технологий и товароведения СПбГУЭФ.

В 2006 г. окончил СПбГУЭФ.

Автор 5 публикаций.

Область научной специализации — логистика в сфере распределения и транспорта.

^ ^ ^

ОПТИМИЗАЦИЯ ДОСТАВКИ ГОТОВОЙ ПРОДУКЦИИ И МАТЕМАТИЧЕСКИЙ АППАРАТ ДЛЯ ЕЕ ДОСТИЖЕНИЯ*

Одной из важнейших составляющих логистического сервиса является доставка товара. Однако в условиях мегаполиса она сопровождается рисками для эффективности бизнеса и репутации фирмы. Успешность доставки во многом зависит от правильно составленного маршрута движения транспортного средства (ТС) с учетом особенностей каждого клиента и подобранного под этот маршрут транспорта.

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

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

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

Маршруты работы подвижного состава ТС разрабатываются при соблюдении следующих требований:

— соответствие путей движения подвижного состава направлениям грузопотоков;

— полное исключение встречных и сокращение повторных перевозок;

— совместимость грузов, т. е. возможность последовательной перевозки различных грузов без предварительной подготовки ТС или порчи груза;

— движение ТС между грузопунктами по кратчайшим расстояниям, по улицам и дорогам с твердым покрытием и наименьшей интенсивностью движения;

— обеспечение возможности движения ТС с максимальной для данных условий скоростью, но с обязательным обеспечением безопасности движения;

— максимальная производительность ТС и минимальная себестоимость.

Задачи маршрутизации транспорта (Vehicle Routing Problems, VRP) относятся к широкому классу задач оптимизации, для решения которых нужно сформировать набор маршрутов для парка ТС, расположенных в одном или нескольких депо, удовлетворяющий заданному множеству заявок на перевозки и минимизирующий аддитивную функцию условной стоимости маршрутов. Заявка определяется парой отправитель-получатель и объемом перевозимого товара. Примерами VRP служат задачи развозки документов курьерами, сборки мусора, развозки товара от фабрик к магазинам и т. п.

За рубежом проводится множество исследований [1] в области задач маршрутизации. Разрабатывается классификация задач VRP [2; 3], совершенствуются подходы и приближенные методы решения [1; 2; 4]. Для решения данных задач используется математический аппарат — теория графов и линейное программирование.

Задачи VRP лежат на пересечении двух хорошо изученных задач:

— задача коммивояжера (Traveling Salesman Problem, TSP): если грузоподъемность каждого ТС принимается бесконечной (точнее, достаточной), то задача VRP сводится к множественной задаче коммивояжера (Multiple Traveling Salesman Problem, MTSP) путем добавления к исходному графу к - 1 (где к — количество маршрутов) копий нулевой вершины и ее ребер (между этими копиями ребра отсутствуют).

— задача об упаковке рюкзака (Bin Packing Problem, BPP): решение данной задачи, по сути, эквивалентно решению задачи VRP при условии, что все расстояния принимаются равными нулю (таким образом, эффективность всех подходящих решений будет одинакова).

ГРНТИ 06.71.09 © А. А. Смирнов, 2009

Статья публикуется по рекомендации кандидата технических наук, профессора М. Н. Григорьева.

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

В реальных задачах оптимизации возникает множество дополнительных ограничений и вариаций, наиболее важные из которых перечислены ниже.

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

1. Маршрутизация с ограничением по грузоподъемности (Capacitated VRP, CVRP).

Дополнительное ограничение: объем грузов на каждом маршруте не должен превышать заданной величины (одинаковый для всех машин).

2. Маршрутизация с ограничением по времени (VRP with Time Windows, VRPTW).

Дополнительное условие: для выполнения запроса каждого клиента существует известный промежуток времени.

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

Ограничения:

— решение неприемлемо, если клиент обслуживается после верхней временной границы;

— ТС, прибывшее ранее нижней временной границы, ожидает ее наступления.

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

3. Маршрутизация с несколькими депо (Multiple Depot VRP, MDVRP).

Если потребители сгруппированы вокруг каждого депо, задача может быть разбита на несколько независимых. Однако если потребители и депо расположены беспорядочно, нужно искать решение для задачи маршрутизации с множественным депо (MDVRP).

Ограничения: Каждый маршрут должен удовлетворять стандартным ограничениям VRP, а также начинаться и заканчиваться в одном и том же депо.

4. Маршрутизация с доставкой и возвратом товаров (VRP with Pick-Ups and Deliveries, VRPPD).

Данная задача расширяет стандартную VRP тем, что требуется доставка некоторого количества товаров

назад от потребителей в депо.

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

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

5. Маршрутизация с возвратом товаров (VRP with Backhauls, VRPB).

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

Цель: минимизировать общее пройденное расстояние.

Ограничения: возврат товаров происходит только после того, как завершена доставка. Объем товаров при доставке и при возврате не должен превышать грузоподъемности.

6. Маршрутизация с различным транспортом (Split Delivery VRP, SDVRP).

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

Ограничения: в отличие от классической VRP в задачах SDVRP снимается ограничение на то, что клиент должен быть обслужен только одной машиной. Кроме того, парк транспорта включает машины различной вместимости.

SDVRP сводится к VRP разбивкой каждого заказа на несколько неделимых заказов.

7. Периодическая маршрутизация (Periodic VRP, PVRP).

В классической задаче VRP обычный период планирования — один день. В задачах PVRP VRP обобщается расширением периода планирования до нескольких дней.

Ограничения: машина может вернуться в депо не в тот же день. По истечении n-дневного периода каждый клиент должен быть посещен как минимум один раз.

Постановка задачи: запросы каждого клиента должны быть выполнены за один визит одним автомобилем. Если период планирования n = 1, задача сводится к классической VRP. PVRP можно рассматривать как задачу компоновки группы маршрутов на каждый день, причем общая стоимость задачи должна быть минимальной.

8. Маршрутизация со случайными данными (Stochastic VRP, SVRP).

В такой VRP один или несколько компонентов могут иметь случайное поведение.

Случайные клиенты: каждый клиент существует с вероятностью p и отсутствует с вероятностью p - 1.

Случайные запросы: запрос каждого клиента — случайная величина.

Случайные времена: времена поездок (расстояния между потребителями) — случайные.

Решение SVRP имеет два этапа. Первый этап дает решение без учета случайных переменных. На втором этапе, когда становятся известными случайные значения, происходит коррекция ранее полученного решения.

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

9. Маршрутизация с возможностью дозагрузки (VRP with Satellite Facilities, VRPSF).

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

Цель: минимизировать расходы на доставку товаров за определенный срок (возможно, что, учитывая расходы на вспомогательные машины, общая стоимость решения задачи в краткосрочной перспективе будет выше, чем при решении классической задачи VRP).

Ограничения: товар на складе клиента не должен заканчиваться.

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

1. Простейшие методы.

— Полный лексический перебор.

— Случайный перебор.

— Жадные алгоритмы:

а) метод ближайшего соседа (Nearest Neighbor);

б) метод включения ближайшего города (Nearest Town);

в) метод самого дешевого включения (Most Cheap Inclusion).

— Метод минимального остовного дерева (Minimum Spanning Tree).

— Алгоритм Свира.

— Алгоритм Дейкстры.

2. Точные подходы.

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

— Метод ветвей и границ (алгоритм Литтла).

— Метод ветвей с отсечением (Branch and cut).

3. Эвристические методы.

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

— Конструктивные методы.

Постепенно строят подходящее решение, принимая во внимание получающуюся общую стоимость. К ним можно отнести механизм сбережений Кларка — Райта; метод, основанный на совпадениях (Matching Based); эвристики улучшения многих маршрутов (Multi-route Improvement Heuristics).

— Двухфазный алгоритм.

Задача разделяется на две части: организация вершин в группы и построение маршрута по каждой группе.

4. Метаэвристики.

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

— Эволюционные методы:

а) генетические алгоритмы (Genetic Algorithms);

б) алгоритмы муравьиной колонии (Ant Algorithms);

в) алгоритм поведения «толпы» (Particles Swarm Optimization).

— Имитации отжига (Simulated Annealing).

— Алгоритм всемирного потопа (Great deluge algorithm).

— Поиск с запретами (Tabu Search).

— Программирование в ограничениях (Constraint Programming).

ЛИТЕРАТУРА

1.. Моделирование цепи поставок / пер. с англ..; под ред. В. С. Лукинского. СПб.: Питер, 2006. 720 с. 2. The VRP Web. URL: http://neo.lcc.uma.es/radi-aeb/WebVRP/

3.. Vehicle Routing and Travelling Salesperson Problems. URL: http://www.sintef.no/static/am/opti/projects/top/vrp/index.html 4.. Vehicle Routing Problems. URL: http://www.idsia.ch/~monaldo/vrp.html