Вычислительные технологии
Том 23, № 5, 2018
Муравьиный алгоритм с ослаблением ограничений по временным окнам в решении задачи маршрутизации транспорта
О.Э. ДОЛГОВА, В. В. ПЕРЕСВЕТОВ* Вычислительный центр ДВО РАН, Хабаровск, Россия *Контактный e-mail: [email protected]
Рассмотрена задача маршрутизации транспорта с ограничениями по временным окнам. Требовалось составить план доставки товара клиентам, построив маршруты движения идентичных транспортных средств так, чтобы общая длина пройденного пути была минимальной. Для решения задачи разработан гибридный алгоритм. Он состоит из методов построения исходных решений, муравьиного алгоритма и локального поиска. В муравьином алгоритме в процессе формирования маршрутов разрешается нарушение временных ограничений при условии добавления штрафа в целевую функцию. Предложенный метод показал высокую эффективность при решении задач кластерного типа и задач с долгосрочным горизонтом планирования.
Ключевые слова: маршрутизация транспорта, временные окна, общая длина пройденного пути, гибридный алгоритм, муравьиный алгоритм, локальный поиск.
Библиографическая ссылка: Долгова О.Э., Пересветов В.В. Муравьиный алгоритм с ослаблением ограничений по временным окнам в решении задачи маршрутизации транспорта // Вычислительные технологии. 2018. Т. 23, № 5. С. 49-62. БОТ: 10.25743/1СТ.2018.23.5.005.
Введение
Целью решения задач маршрутизации транспорта (Vehicle Routing Problem — VRP) является составление маршрутов движения транспортных средств (ТС) с минимальными ценовыми затратами. Классическую VRP — задачу маршрутизации с ограничением на грузоподъемность — для расширения области ее практического использования в ряде случаев усложняют путем добавления дополнительных ограничений.
В настоящей работе рассматривается задача маршрутизации транспорта с ограничениями по временным окнам (VRP with Time Windows — VRPTW). Эта задача оптимизации принадлежит к классу сложности NP [1]. VRPTW обеспечивает математическую основу для многих возникающих на практике задач о наилучшем распределении некоторого числа работ или ресурсов. В связи с этим предложен широкий спектр различных вариаций VRPTW с разнообразными точными и приближенными алгоритмами их решения. Обзор литературных источников, опубликованных до 2000 г., представлен в [2],
© ИВТ СО РАН, 2018
а после 2000 г. — в [1]. В [3] показано, что для ряда методов (поиска с запретами, генетических алгоритмов, алгоритмов имитации отжига, эволюционных алгоритмов и др.) удается повысить эффективность решения задач VRPTW, если ослабить ограничения по временным окнам. Ослабление временных ограничений используется в методе поиска по окрестности, который предложен в [4] для решения задачи оптимизации автопарка и маршрутов ТС размерности 1000.
Временное окно представляет собой отрезок времени, в котором может начаться разгрузка товара у клиента. Если ТС прибывает к клиенту слишком рано, то появляется время ожидания, которое не добавляется к целевой функции (ЦФ). Возвращение ТС на склад должно быть в пределах заданного временного срока. Требуется составить маршруты движения ТС и доставить товар всем клиентам так, чтобы общая длина пройденного пути была минимальной. Число доступных ТС не ограничено. Такая постановка задачи, как правило, встречается в литературе по точным алгоритмам решения VRPTW.
Используя современные точные методы [5-7], можно находить решения всех описываемых далее тестовых задач размерности до 100. Для большей размерности (до 1000) также получены некоторые результаты, однако это касается в основном задач с определенной выраженной структурой и/или узкими временными окнами. Тем не менее точные методы редко используются для решения практических задач [8], так как они чувствительны к любым дополнительным ограничениям, а время решения задач большой размерности оказывается неприемлемым. Подробным исследованиям точных методов посвящены работы [9, 10] и др.
Приближенные муравьиные алгоритмы (Ant Colony Optimization — ACO) [11] успешно применяются в составе гибридных методов для решения задач маршрутизации транспорта [8, 12-15], включая задачи с ограничениями по временным окнам [14, 15]. В [13] нами предложена гибридная схема, включающая лучевой поиск с муравьиным алгоритмом и метод локальных улучшений, для решения классической задачи маршрутизации. Этот метод оказался эффективным в решении задач кластерного типа и задач небольшой размерности случайного типа. В [14] для решения VRPTW с минимизацией ЦФ затрат на доставку товара представлен минимаксный алгоритм муравьиной колонии [11] с комбинированной схемой локального поиска. В [15] предложены муравьиный алгоритм и метод локальных улучшений, для кластерных задач исследуется связь между качеством исходных решений и качеством получаемых локальных оптимумов.
В настоящей работе разработан гибридный алгоритм, включающий методы построения исходных решений, муравьиный алгоритм и локальный поиск. Если в [14, 15] и других работах ACO служит для построения только решений, не нарушающих ограничений задач, то здесь предложено построение решений с ослаблением временных ограничений по схеме returns in time [16]. На первом этапе работы алгоритма находятся несколько пробных решений, а в дальнейшем поиск решения продолжается с лучшим из них. Представлены результаты вычислительных экспериментов с часто используемыми тестовыми задачами размерностей 25, 50, 100 [17].
1. Формулировка задачи
Задача VRPTW определена на графе с множеством вершин {0,1,..., N}. Вершина 0 представляет на графе склад, где находятся транспортные средства и товар. Возвращение ТС на склад должно быть в пределах временного отрезка [е(0), /(0)]. Вершинам
г = 1, . . . , N, представляющим на графе клиентов, соответствуют спрос товара ц{г), продолжительность его разгрузки з{г) > 0 и временные окна [е{г),1{г)], в течение которых разрешается начинать разгрузку.
Имеется парк идентичных ТС с грузоподъемностью Q > шах{д{г) : г = 1,... ,М}. Транспортные средства начинают и заканчивают свои маршруты на складе. Все клиенты посещаются однократно в одном из К > 1 маршрутов. Пусть в некотором маршруте Ук посещаются щ клиентов:
^ ={ук ,ьк, ... ,< ,< + !), (1)
уо = укк+1 = 0 (первый и последний пункты посещения соответствуют складу). Длина этого маршрута находится как сумма известных расстояний между назначенными на него пунктами: У]П=0 ¿{у/к,у/к+1). В маршруте (1) не нарушается ограничение на грузоподъемность, если П= 1 д{ук) < Q.
Если все маршруты удовлетворяют ограничениям задачи, то их совокупность есть допустимое решение, которое обозначим ( = {Ук : к = 1,...,К}. В общем случае имеется множество допустимых решений Z, £ Е Z. Общая длина Р{С,) всех маршрутов решения £ является целевой функцией:
к пк
р (() = ЕЕ ^к ^к+1). к=1 j=0
Требуется найти (* = argшin2 Р{().
2. Алгоритм решения
Для решения рассматриваемой задачи предложен гибридный алгоритм (далее ИУБ), который включает методы построения исходных решений, муравьиный алгоритм и локальный поиск. В алгоритме 1 дана его общая схема.
Алгоритм 1. HYB
инициализация Ntr и других данных; for i = 1 ^ Ntr do
построить исходное решение (tr;
LocalSearch^f") — локальный поиск — см. алгоритм 2; ACO((tr) — муравьиный алгоритм — см. алгоритм 3; end for
найти (bsf = argmin =i,..., Ntr F((f);
ACO((bsf) — муравьиный алгоритм — см. алгоритм 3; return (bs?.
В алгоритме НУБ находятся > 1 пробных решений (строки 2-6), затем производится попытка улучшить решение, которое оказалось лучшим среди них. На поиск пробных решений отводится время Т^, а общее время решения задачи ограничивается значением Ттах. Пробное решение г представляет собой некоторое допустимое решение задачи; — лучшее решение, найденное на данный момент. Использование пробных решений позволяет уменьшить негативное влияние основного недостатка приближенных методов, заключающегося в частом попадании в одну из субоптимальных областей,
в которой вычислительный процесс может находиться на протяжении многих итераций. Чем больше число пробных решений, тем лучше удается исследовать наиболее перспективные области пространства поиска, что повышает надежность методов.
Для построения исходных решений (строка 3) используются два алгоритма, которые основаны на "жадной" стратегии: метод вставки II [17] (далее т1) и эвристика "ближайшего по расстоянию" (т2). Во втором случае вершины упорядочиваются по возрастанию расстояний и выбирается вершина, ближайшая к последней добавленной в текущий маршрут. Локальный поиск (строка 4) улучшает исходные решения, что для многих сложных задач позволяет сразу найти удовлетворительные начальные приближения.
Ниже представлена схема алгоритма локального поиска Ьоеа18еагеЬ(£).
Алгоритм 2. LocalSearch(£) 1: input: С;
2: Nimp ^ К; решение ( состоит из К маршрутов 3: while (Nimp = 0) do
4: выбрать случайно маршрут с номером к среди Nimp;
5: for v = v! —> vkn do
l Ufa
6: for i = 1 ^ Cis do
7: из числа Cia найти w — ближайший пункт к v;
8: поиск по окрестности Q(v,();
9: if (найдено некоторое (1 £ Z и F((< F(()) then
10: С = С1;
11: перейти на строку 2;
12: end if
13: end for
14: end for
15: Nimp Nimp 1;
16: end while 17: return (.
Локальный поиск производится из некоторого начального решения (. Когда удается найти улучшенное решение, оно запоминается, затем поиск продолжается в окрестности этого нового решения, пока локальный оптимум не будет найден. Как было предложено в [16], мы рассматриваем окрестность Q(v,() как множество решений, которые можно получить вблизи клиента v £ Vк данного маршрута Vк решения (. За основу взяты следующие операторы обмена: 2-opt* [18]; Or-Exchange, Relocation и Exchange [19].
2-opt*(^,C):
• удалить (v,v-) и (w,w+), добавить (v,w) и (v-,w+);
• удалить (v,v+) и (w,w-), добавить (v,w) и (v+,w-). Out-Relocate(w, ():
— — +
• вставить v между w и w , соединить v с v+;
• вставить v между w и w+, соединить v~ с v+. In-Relocate(w, ():
— — +
• вставить w между v и v , соединить w с w+;
• вставить w между v и v+, соединить w~ с w+.
Exchange (v, ():
• вставить v между w и (w-)-, вставить w~ между v~ и v+;
• вставить v между w и (w+)+, вставить w+ между v~ и v+.
Пункт w является ближайшим по расстоянию к v среди Cis (параметр алгоритма) соседних пунктов. Вершины v и w могут принадлежать как одному, так и разным маршрутам. Для обмена 2-opt*(f,£) принадлежность к разным маршрутам необходима. В маршруте посещений пункт v~ непосредственно предшествует пункту v, а за v следует v+ (аналогично для w~, w, w+). В случае, когда w является складом, клиент v удаляется из выбранного маршрута и вставляется в пустой маршрут — увеличивается число ТС. Множества ближайших пунктов ко всем клиентам задачи {1,... , N} формируются в начале работы программы, чтобы не расходовать процессорное время на повторные вычисления. Выбор маршрута для улучшения, как и способа изменения решения, происходит случайно. Поиск по окрестности производится по принципу первого улучшения, при котором выгодное изменение производится сразу же.
В алгоритме 3 дана схема работы муравьиного метода ACO(£).
Алгоритм 3. ACO«)
1 2
3
4
5
6
7
8 9
10 11 12
13
14
15
16 17
inPut: С;
инициализация rmax, rmin, матрицы следов феромона Т; while (не превышено время выполнения) do
построение допустимых и недопустимых решений; восстановление недопустимых решений;
локальный поиск для Nis лучших допустимых решений по алгоритму 2; if (найдено £ Z такое, что F((*) < F(()) then
С = С';
пересчет Tmax, 7"min;
end if
if (нет улучшения F(С,) на протяжении Nit итераций) then Т = т •
max
else
обновить Т; end if end while return (.
Имитируя поведение колонии муравьев в природе, муравьиные алгоритмы задействуют многоагентные системы. Искусственный муравей (агент) в АСО — это стохастический способ пошагового построения решения с учетом следов феромона. За счет скоординированного взаимодействия агентов удается исследовать наиболее перспективные области пространства решений и находить оптимальные или близкие к оптимальным маршруты за время, приемлемое для практического использования.
Совокупность следов феромона представляется в виде матрицы Т размерности (М + 1)2 с элементами т^. Значения т^ ограничиваются отрезком [ттщ, ттах], где гтах = 1/[(1 — р)Р(()], тт;п = ттах/\2(Ы +1)], р — заданный коэффициент испарения феромона, Р(£) — ЦФ решения £, N — число клиентов. Перед первой итерацией следы феромона инициализируются: Т = ттщ. Кроме того, на дугах (г,]), входящих в пробное
решение (tr, след феромона усиливается: т^ = т^ + 1/ F((tr). При вызове ACO((bsí) используется матрица Т лучшего пробного решения.
Следы феромона обновляются после каждой итерации t алгоритма ACO. В обновлении Т используется лучшее допустимое решение на данной итерации. Если в решении за вершиной i следует вершина j, то т^ (t + 1) = р Tij (t) + 1/ F((*). Для всех ребер, не принадлежащих этому решению, применяется только процедура испарения феромона: т^ (t + 1) = р Tij (t). Если на протяжении Nit итераций не было улучшения F((), то следы феромона повторно инициализируются следующим образом: Т = rmax.
На каждой итерации муравьи строят Nfs > 0 допустимых решений и Nnf > 0 недопустимых. Агент отправляется со склада и добавляет в текущий маршрут клиентов до тех пор, пока он их всех не посетит. При выборе следующего пункта для перехода учитывается текущая загруженность. При построении допустимых решений также учитываются временные ограничения: разгрузка товара у клиентов не может быть начата вне временного окна, а возвращение на склад должно быть не позже /(0). Если ни один из непосещенных клиентов не может быть добавлен в текущий маршрут из-за нарушения ограничений задачи, то начинается новый маршрут со склада.
Пусть J — список вершин, куда может перейти муравей, находясь в вершине г; р — случайное число, равномерно распределенное на отрезке [0,1], которое генерируется на каждом шаге перехода итерации t. Это число сравнивается с параметром р0, и если р < р0, то следующий пункт j Е J для посещения определяется однозначно по формуле j = argmaxheJ { Tih(t) gih}. Здесь и далее соответствующие элементы gij матрицы G размерности (N + 1)2 пересчитываются, если переходы (i, j) встретились в решении муравья. Перед каждой итерацией д^ = 1 У gij Е G. Значения д^ обновляются перед запуском следующего муравья того же типа (допустимого или недопустимого) по следующей формуле: gij = gijpa. Величина pa является параметром алгоритма. Используются две матрицы G, каждая для своего типа агентов. Если р > р0, то следующий пункт выбирается "методом рулетки". Величины Pij сопоставляются "секторам колеса рулетки" и обозначают вероятности, с которыми муравей, находясь в данный момент в пункте г, выбирает пункты j Е J для перехода: Pij = [т^(t)gijheJ[Tih(t)gih].
Для недопустимых решений, найденных муравьями, находится функция штрафа Fpen. Пусть £ — недопустимое решение задачи с нарушениями временных ограничений. Функция штрафа TW(к) маршрута (1) решения £ Е Z вычисляется по формуле [16]
Пк + 1
TW(к) = ^ max[í'(vk) - l(vk), 0], з=о
t(vk) = t (v$) = e(0), s(vk) = 0,
Г (v 4) = t(v 11) + s(v 11) + d(v 11, vk), j = 1,...,nk + 1,
-( k) i max[í (vk), e(vk)], если t (vk) < l(vk), j ' l(vk), если t'(vk) > l(vk),
а функция штрафа решения определяется как сумма штрафных функций по всем
К маршрутам: Рреп{£) = ^К=1ТШ{к). Если 1{ук) < ¿'{ук), то момент начала разгрузки товара у клиента г^ (или когда ТС возвращается на склад, если ] = щ + 1) происходит
после самого позднего срока, когда это разрешается. В этом случае будем считать, что опоздания не было и происходит "возврат" к моменту l(vk) с целью без задержки начать разгрузку или вернуться на склад, но со штрафом i' (vj) — l(vj).
Для решений с Fpen(^) > 0 используется процедура восстановления допустимости — алгоритм минимизации Fpen(£) + F(£), основанный на поиске по окрестности, который работает по похожему принципу, что и алгоритм 2 локального поиска. На вход подается недопустимое решение £. Случайным образом выбирается маршрут, в котором нарушены временные ограничения. Далее решается задача поиска лучшего решения £ в окрестности Q(v, £) при условии, что AFpen — Fpen(£ ) — Fpen(£) < 0. Рассматриваются Сгер ближайших пунктов к v. Если лучшее решение не может быть найдено (функция штрафа не уменьшается), то поиск прекращается, решение £ остается недопустимым и оно отбрасывается. Поиск производится по принципу наискорейшего спуска, когда просматривается вся окрестность и выбирается решение с наименьшей стоимостью. Допустимость восстановлена, если Fpen(£) = 0. Локальный поиск выполняется только для Nig лучших допустимых решений.
Просмотр окрестности требует больших вычислительных затрат. В работе [16] предложен способ, в котором величина штрафа для новых маршрутов находится за время 0(1) с использованием операторов 2-opt*, Out-Relocate, In-Relocate, Exchange, если изначально пункты v и w принадлежат разным маршрутам. Для операторов в пределах одного маршрута (всех из перечисленных выше, кроме 2-opt*) это условие не выполняется и временная сложность алгоритма в худшем случае равна 0(nk), где Пи — число клиентов, назначенных на маршрут с номером к. Этот же способ используется в настоящей работе.
3. Результаты вычислительных экспериментов
Для настройки параметров алгоритма HYB и оценки его эффективности решались 168 тестовых задач размерностей N = 25, 50,100 из стандартного набора [17]. Задачи каждой размерности распределены по классам. Классы C1(9), R1(12), RC1(8) включают задачи с краткосрочным горизонтом планирования, а классы C2(8), R2(11), RC2(8) — с долгосрочным. Для задач первого типа характерно посещение только нескольких клиентов одним и тем же ТС, в задачах второго типа соотношения грузоподъемности ТС, объемов заказов клиентов, предельного времени возвращения на склад позволяют назначать на один маршрут многих клиентов (до 60 в некоторых случаях). Обозначения C, R и RC указывают на соответственно кластерное, случайное и смешанное расположение клиентов; в скобках приведено число задач в каждом классе.
К 2012 г. точными методами были найдены решения всех задач из тестового набора [17]. В настоящей работе, как и в случае с точными методами [5-7], мы оперируем числовыми данными целого типа. Для этого элементы целочисленной матрицы расстояний с координатами (Xi,yi) и (xj,yj) соответствующих пунктов рассчитываются по формуле Dij = mt(10\J(xi — Xj)2 + (yi — yj)2), где int — функция преобразования к целому типу с отбрасыванием дробной части числа. Входные данные \е(г), l(i)], s(i), г = 0,... , N, преобразуются к целочисленным значениям аналогичным образом.
Для любой задачи, возникающей на практике, по координатам, временным окнам и другим входным данным можно заранее определить класс задач, к которому она относится. Вследствие этого с целью повышения эффективности решения задач целе-
сообразно найти подходящие параметры алгоритмов для каждого класса и соответствующих размерностей N = 25, 50,100.
Параметры алгоритма HYB для задач N = 25: Nfs = 3, Ninf = 7, Nis = 10, Nit =10, Ntr = 5, Ttr = 25. Значения Cis, Crep для классов указаны в скобках после их названий: C1 и RC2 (15,10); C2 (15,5); R1 (5,10); R2 (10,5); RC1 (5,5). Для построения исходных решений задач класса C1 используется алгоритм m2, для остальных — метод m1 со значениями ц.-\-а1-а2 [17]: C2 и R2 — 1-1-0-1; R1 — 1-1-1-0; RC1 и RC2 — 1-2-0-1.
Параметры алгоритма HYB для задач N = 50: Nfs = 5, Ninf = 10, Nis = 15, Nu = 30, Ntr = 5, Ttr = 500. Лучшие значения Cis и Crep следующие: C1 и RC2 (20,10); C2 (30,10); R1 (10,30); R2 (10,10); RC1 (10,20). Метод m1 применялся для классов C1, C2 и R1 с 1-1-1-0; для классов R2 и RC1 с 1-2-0-1. Для RC2 использовался алгоритм m2.
Параметры алгоритма HYB для задач N = 100: Nfs = 20, Ninf = 20, Nis = 20. По классам C1 и C2 результаты получены со значениями Nit = 50, Cis = Crep = 20, а по R1, R2, RC1, RC2 — со значениями Nit = œ, Cis = Crep = 40. Для построения исходных решений задач класса C2 применялся метод m1 с 1-1-0-1. Для всех остальных — алгоритм m2.
Одинаковыми для всех классов и размерностей N были значения параметров р = 0.1, ро = 0.9, ра = 0.9. Алгоритм HYB является стохастическим, поэтому каждая задача решалась Nrun раз. Значения Nrun = 500,500,100, 25 были выбраны соответственно для задач N = 25, N = 50, кластерных задач N = 100, для задач остальных классов размерности N = 100 (в этом случае время решения ограничивалось значением Tmax). Всюду время дано в секундах. В случае обнаружения оптимального решения поиск прекращался.
Все результаты получены на вычислительных ресурсах [20] с использованием процессора Intel Xeon E5450 3.0 ГГц 2007 г. выпуска. В дальнейшем при сравнении времени счета с опубликованными результатами других авторов применялись коэффициенты производительности процессоров, найденные по результатам тестов SPECint_base2006 и SPECint_rate_base2000 (https://www.spec.org/). В JPSP [5] использовался процессор Intel Pentium 4 3.0 ГГц, коэффициент его производительности по отношению к Intel Xeon E5450 3.0 ГГц составил С\ = 0.32. Соответственно для BMR [6] (Intel Xeon X7350 2.93 ГГц 2007 г. выпуска) — с2 = 0.89 и PCDU [7] (Intel Xeon E5-2637 v2 3.5 ГГц 2014 г. выпуска) — с3 = 2.28.
В табл. 1 приведены обобщенные результаты решения задач всех классов размерностей N = 25, 50. Все задачи в каждом запуске были решены методом HYB. Показаны максимальное tmax и среднее tavg времена решения, найденные по общему количеству
Таблица 1. Время решения задач, с
N = 25 N = 50
Класс (Np) HYB JPSP HYB JPSP BMR
tmax tavg tavgCl t max tavg tavg Cl tavg C2
C1 (9) 0.1 0.005 0.22 1.7 0.09 56 —
C2 (8) 4.2 0.07 0.85 23 0.48 25 (7) 7
R1 (12) 1.1 0.06 0.05 511 16 44 —
R2 (11) 3.7 0.16 1.20 952 28 2268 (9) 110
RC1 (8) 1.7 0.09 0.08 202 7.3 13 —
RC2 (8) 0.3 0.03 3.37 579 16 86 (7) 24
запусков всех задач Мр одного класса: Мргип = ЫрЫгип. Для сравнения в этой таблице также представлены опубликованные результаты решения этих задач точными методами ЛРБР [5] и ВМИ [6] с коэффициентами с\,с2. В тех случаях, когда не все задачи в классе были решены методом ЛРБР, число решенных указано в скобках. Из табл. 1 можно видеть, что в среднем методом ИУВ получены результаты, существенно превосходящие опубликованные в литературе для задач N = 25, 50. В настоящее время такие задачи не считаются сложными, однако необходимо уметь их быстро решать: задачи небольшой размерности часто встречаются на практике.
В табл. 2 представлены результаты решения задач всех классов размерности N = 100 приближенными методами НУВ, СОИ [21] и точными ЛРБР [5], ВМИ, [6], РСБи [7]. Для упрощения изложения методы с Ттах = 3600 помечены окончанием (1Ь), а с Ттах = 14400 — (4Ь). Для алгоритма ССН(1Ь) приведены результаты по трем запускам. Для НУВ(1Ь) выбраны = 5, = 1800; для НУВ(4Ь) использовались Ы1г = 3, 3, 5, 8,16, Т1г = 500, 900,1800, 3600, 7200 соответственно. В табл. 2 показаны ^тах и 8аг,д — максимальная и средняя относительные погрешности ЦФ, найденные по Ыргип запускам, 5 = 100 (() - ^((((*), где ^((*) — ЦФ известного оптимального решения. Для точных методов приводится среднее (по классам) время решения задач. Для метода НУВ(4Ь) указано среднее время решения только тех задач, для которых получен оптимальный результат в каждом запуске (число таких задач указано в скобках). Остальные задачи оцениваются по погрешности 8аг,д.
В табл. 3, 4 представлены результаты для отдельных задач. В этот список включены задачи, которые являются сложными для точных методов согласно [7], а также
Таблица 2. Результаты решения всех задач, N = 100
Класс (Жр) ИУБ(1Ь) ССИ(1Ь) ИУБ(4Ь) ЛРБР БЫИ РСБИ
^тах ^а-ид &агид &агид tаvд tаvдС1 tаvд tаvд С3
С1 (9) 0 0 0 0 2.2 150 22 34
С2 (8) 0 0 0.05 0 8.8 894 (7) 36 748
И1 (12) 1.6 0.16 0.6 0.09 1027 (9) 8772 223 71
И2 (11) 1.3 0.28 6.4 0.16 1618 (4) 11293 (4) 25525 (10) 14665
ИС1 (8) 1.2 0.22 0.8 0.05 2234 (3) 3521 246 119
ИС2 (8) 1.4 0.17 3.9 0.07 1889 (4) 1025 (5) 3353 768
Таблица 3. Время решения сложных задач, N = 100, с
Задача ИУБ(4Ь) ЛРБР texаctCl БЫИ ^•ехасЬ^ РСБИ ^•ехас^З
^тах ^тт tаvд
С203 58 0.3 14 4182 28 832
С204 126 11 44 — 162 3757
И201 6768 328 3909 44 160 —
И202 712 34 193 2650 3031 720
И203 527 48 177 17340 1904 1288
И204 7506 85 2194 — 192567 3409
ИС203 9068 322 3347 4773 224 —
ИС205 5091 149 1516 71 153 —
ИС206 6722 116 1516 108 202 —
ИС207 2885 95 1177 — 23944 791
Таблица 4. Погрешность решения сложных задач, Ж =100
Задача ИУБ(1Ь) СвИ(1Ь) ИУБ(4Ь)
^тах ^тт ^тт ^тт
И.205 1.2 0 0.42 2.4 3.9 0 0.28
И206 1.1 0 0.26 6.7 7.8 0 0.08
Я207 1.3 0 0.30 8.3 9.4 0 0.08
И208 1.3 0 0.39 6.1 7.9 0 0.06
Я209 0.1 0 0.11 3.9 5.6 0 0.04
И210 1.1 0.03 0.83 5.7 6.1 0 0.64
Я211 0.9 0.54 0.69 9.2 10 0 0.55
БС201 0.6 0 0.12 1.0 1.5 0 0.04
ИС202 0.4 0 0.13 2.5 4.3 0 0.01
БС204 0.5 0 0.27 3.1 4.9 0 0.21
БС208 1.4 0.05 0.63 5.7 7.0 0 0.33
те, которые вообще считаются сложными для решения — все задачи классов Я2, ИС2. Отобранные таким образом задачи разделены на 2 группы: те, что решены ИУБ(4Ь) в каждом запуске, и для них указаны максимальное £тах, минимальное £т1П и среднее 1ауд времена решения (табл. 3), и те, что не были решены в каждом запуске, и для них приведены максимальная 5тах, минимальная 5тп и средняя 5ауд погрешности (табл. 4). Время решения точными методами обозначено как 1ехасЬ. Погрешности найдены по Nгип = 25 запускам решения задач методами ИУБ(1Ь), ИУБ(4Ь) и по трем запускам — методом СОИ(1Ь).
Отметим, что без ослабления ограничений (N^1 = 0) результаты решения тестовых задач оказались в целом хуже. В случае задач размерности N = 25 среднее время решения осталось на прежнем уровне, кроме одной задачи ИС102, для которой среднее время решения возросло в 580 раз. Для задач N = 50 среднее время решения по классу С1 осталось на прежнем уровне, по классам С2 и Я2 увеличилось соответственно в 1.2 и 1.8 раза, а в классах Ш, ИС1, ИС2 при ограничении времени решения Ттах = 3600 не все задачи были решены в каждом запуске. При решении задач размерности N =100 погрешность нахождения оптимальных значений ЦФ методом ИУБ(1Ь) без ослабления ограничений увеличилась более чем в 2 раза.
т, с г, с
Зависимость погрешностей от времени решения задач классов Я1, Я2, ИС2
Включение методов локального поиска для исходных решений (строка 4 в алгоритме 1) позволило улучшить результаты решения задач N = 100 классов ИС1 и ИС2 в среднем более чем на 30%. Эффективность решения оставшихся задач размерностей N = 25,50,100 без включения локального поиска для исходных решений осталась на том же уровне.
Проведенные вычислительные эксперименты показали, что алгоритм НУВ наиболее эффективно решает задачи кластерного типа. По сравнению с результатами, полученными нами в [15], удалось улучшить среднее время решения задач N =25 классов С1 и С2 в 4 и 2.4 раза соответственно; задач N = 50 классов С1 и С2 — в 2 и 1.3 раза; задач N = 100 классов С1 и С2 — в 2 и 1.6 раза.
Задачи классов С2, И2, ИС2 с долгосрочным горизонтом планирования считаются более сложными для решения. Это подтверждается результатами многих авторов: число решенных задач из этих классов меньше и время их решения значительно хуже, чем для задач классов С1, И1, ИС1. Однако для алгоритма НУВ такого различия нет: результаты примерно на одном уровне. Отметим, что все задачи размерности N = 100 хотя бы в одном из запусков были решены методом НУВ.
На рисунке показано уменьшение погрешностей $тах, 5а1]д (найденных по результатам числа запусков Мргип при Мгип = 25) в процессе решения задач классов И1, И2, ИС2 (Щг = 8, Т^ = 3600). Временной отрезок от 0 до 7200 был разбит на интервалы по 10 с, и учитывалось ближайшее по времени к конечной точке каждого интервала одно значение 8.
Заключение
Для решения задачи маршрутизации транспорта с ограничениями по временным окнам (УИРТШ) разработан и реализован приближенный гибридный алгоритм, в котором использование пробных решений позволяет исследовать наиболее перспективные области пространства поиска и уменьшает вероятность преждевременной сходимости к субоптимальным решениям. В составе гибридного метода предложен муравьиный алгоритм с ослаблением временныо х ограничений: при построении решений некоторыми муравьями эти ограничения не учитываются. Метод восстановления недопустимых решений основан на поиске по окрестности с эффективной процедурой ее просмотра.
Результаты проведенных вычислительных экспериментов показали следующее.
1. Все 112 задач размерностей 25 и 50 были решены в каждом запуске. Из всех 56 задач размерности 100 решены в каждом запуске 66 %, а оставшиеся решены хотя бы в одном. Относительные погрешности нахождения оптимальных значений целевой функции для самых сложных задач уменьшаются с увеличением времени решения.
2. По отдельным задачам имеются большие различия с результатами, полученными другими авторами. Многие задачи решены предложенным в настоящей работе алгоритмом существенно быстрее.
3. Предложенный алгоритм оказался наиболее эффективным для кластерных задач.
4. Эффективность решения задач с краткосрочным и долгосрочным горизонтами планирования оказалась примерно на одном уровне. Этот результат отличается от опубликованных данных других авторов: их результаты решения задач с долгосрочным горизонтом планирования значительно хуже, чем с краткосрочным.
5. Предложенный метод может рассматриваться в качестве дополнительного или альтернативного для решения задач УИРТШ кластерного типа и задач с долгосрочным горизонтом планирования.
Благодарности. Для численных экспериментов использованы вычислительные ресурсы ЦКП "Центр данных ДВО РАН" (http://lits.ccfebras.ru/).
Список литературы / References
[1] Desaulniers, G., Madsen, O.B.G., Ropke, S. The vehicle routing problem with time windows // Vehicle Routing: Problems, Methods, and Applications. 2nd Edition / P. Toth, D. Vigo (Eds). SIAM: MOS-SIAM Series on Optimization, 2014. P. 119-159.
[2] Cordeau, J.-F., Desaulniers, G., Desrosiers, J. VRP with time windows // The Vehicle Routing Problem / P. Toth, D. Vigo (Eds). SIAM: MOS-SIAM Series on Optimization, 2002. P. 157-193.
[3] Vidal, T., Crainic, T.G., Gendreau, M., Prins, C. Time-window relaxations in vehicle routing heuristics // J. of Heuristics. 2015. Vol. 21, No. 3. P. 329-358.
[4] Хмелев А.В. Трехфазный алгоритм оптимизации автопарка и маршрутов транспортных средств // Дискретный анализ и исследование операций. 2015. Т. 22, № 6. С. 55-77. Khmelev, A.V. A three-phase heuristic for the vehicle fleet and route optimization // Diskretnyi Analiz i Issledovanie Operatsii. 2015. Vol. 22, No. 6. P. 55-77. (In Russ.)
[5] Jepsen, M., Petersen, B., Spoorendonk, S., Pisinger, D. Subset-row inequalities applied to the vehicle-routing problem with time windows // Operations Research. 2008. Vol. 56(2). P. 497-511.
[6] Baldacci, R., Mingozzi, A., Roberti, R. New route relaxation and pricing strategies for the vehicle routing problem // Operations Research. 2011. Vol. 59(5). P. 1269-1283.
[7] Pecin, D., Contardo, C., Desaulniers, G., Uchoa, E. New enhancements for the exact solution of the vehicle routing problem with time windows // INFORMS J. on Computing. 2017. Vol. 29, No. 3. P. 489-502.
[8] Сластников С.А. Применение метаэвристических алгоритмов для задачи маршрутизации транспорта // Экономика и матем. методы. 2014. Т. 50, № 1. С. 117-126. Slastnikov, S.A. Application of metaheuristic algorithms for the vehicle routing task // Economics and Math. Methods. 2014. Vol. 50, No. 1. P. 117-126. (In Russ.)
[9] Baldacci, R., Mingozzi, A., Roberti, R. Recent exact algorithms for solving the vehicle routing problem under capacity and time window constraints // Europ. J. of Operational Res. 2012. Vol. 218. P. 1-6.
[10] Kallehauge, B. Formulations and exact algorithms for the vehicle routing problem with time windows // Computers & Operations Res. 2008. Vol. 35. P. 2307-2330.
[11] Dorigo, M., Stutzle, T. Ant colony optimization. Cambridge, MA: MIT Press, 2004. 306 p.
[12] Кажаров А.А., Курейчик В.М. Муравьиные алгоритмы для решения транспортных задач // Изв. РАН. Теория и системы управления. 2010. Т. 49, № 1. С. 32-45. Kazharov, A.A., Kureichik, V.M. Ant colony optimization algorithms for solving transportation problems // J. of Comput. and Syst. Sci. Intern. 2010. Vol. 49, No. 1. P. 30-43.
[13] Долгова О.Э., Пересветов В.В. Лучевой поиск и муравьиный алгоритм в решении задачи маршрутизации транспорта // Информатика и системы управления. 2016. Т. 48, № 2. С. 47-57.
Dolgova, O.E., Peresvetov, V.V. Beam search with ant colony optimization algorithm for solving the vehicle passage problem // Informatika i Sistemy Upravleniya. 2016. Vol. 48, No. 2. P. 47-57. (In Russ.)
[14] Долгова О.Э., Пересветов В.В. Задача маршрутизации транспортных средств с временными окнами // Матер. Всерос. науч.-практ. конф. "Информ. технологии и высокопроизводительные вычисления". Хабаровск, 2013. С. 119-124.
Dolgova, O.E., Peresvetov, V.V. The vehicle routing problem with time windows // Information Technologies and High Performance Computations: Proc. All Russ. Sci. and Appl. Conf. Khabarovsk, 2013. P. 119-124. (In Russ.)
[15] Долгова О.Э., Пересветов В.В. Муравьиный алгоритм и метод локальных улучшений в решении задач маршрутизации транспорта с временными окнами кластерного типа // Тр. IV Всерос. науч.-практ. конф. "Информ. технологии и высокопроизводительные вычисления". Хабаровск: ТОГУ, 2017. С. 50-54.
Dolgova, O.E., Peresvetov, V.V. An ant colony optimization algorithm and local search in solving vehicle routing problems of the cluster type with time windows // Information Technologies and High Performance Computations: Proc. All Russ. Sci. and Appl. Conf. Khabarovsk: TOGU, 2017. P. 50-54. (In Russ.)
[16] Nagata, Y., Braysy, O., Dullaert, W. A penalty-based edge assembly memetic algorithm for the vehicle routing problem with time windows // Computers and Operations Res. 2010. Vol. 37. P. 724-737.
[17] Solomon, M.M. Algorithms for the vehicle routing and scheduling problem with time window constraints // Operations Res. 1987. Vol. 35. P. 254-265.
[18] Potvin, J.-Y., Rousseau, J.-M. An exchange heuristic for routeing problems with time windows //J. of the Operational Res. Soc. 1995. Vol. 46. P. 1433-1446.
[19] Kindervater G.A.P., Savelsbergh M.W.P. Vehicle routing: handling edge exchanges // Local Search in Combinatorial Optimization / E.H. Aarts, J.K. Lenstra (Eds). Chichester, U.K.: John Wiley & Sons, 1997. P. 311-336.
[20] Центр коллективного пользования "Центр данных ДВО РАН". Адрес доступа: http:// lits.ccfebras.ru (дата обращения 08.11.2017).
Shared Facility Center "Data Center of FEB RAS" Available at: http://lits.ccfebras.ru (accessed 08.11.2017) (In Russ.)
[21] Alvarenga, G.B., Mateus, G.R., de Tomi, G. A genetic and set partitioning two-phase approach for the vehicle routing problem with time windows // Computers & Operations Res. 2007. Vol. 34. P. 1561-1584.
Поступила в редакцию 19 января 2018 г., с доработки — 18 июня 2018 г.
An ant colony optimization algorithm with time window constraints relaxation for solving the vehicle routing problem
Dolgova, Olga E., Peresvetov, Vladimir V.*
Computing center of Far Eastern Branch of the RAS, Khabarovsk, 680000, Russia * Corresponding author: Peresvetov, Vladimir V., e-mail: [email protected]
The purpose of this paper is to improve the performance of a hybrid method based on ant colony optimization (ACO) that finds approximate solutions of the vehicle routing problem with time windows (VRPTW). In order to solve this problem it is required
© ICT SB RAS, 2018
to design a plan for goods delivery to the customers generating the routes of identical vehicles so that the total travelled distance is minimal.
For the VRPTW solving, the hybrid method is developed in which a usage of trial solutions makes it possible to explore the most promising parts of the search space. The initial methods for solution construction, an ant colony optimization (ACO) algorithm and local search are proposed in the framework of the hybrid method. In the ACO algorithm, when generating the routes, it is allowed to violate the time window constraints. A method to restore the feasibility of solutions is implemented within the relaxation scheme under "returns in time" principle.
Numerical results for solving all problems with 25, 50 and 100 customers from the Solomon test set are obtained. We provide the results on the time and deviation of the solution of these problems in comparison with the results of other authors. Some problems and their classes were solved much faster by the algorithm proposed in this paper. Relative deviations from optimal values of the objective function for the most complex tasks decrease with increasing decision time.
The proposed approach can be considered to be an additional or an alternative algorithm for solving the cluster type and the long-term planning horizon problems of the VRPTW.
Keywords: vehicle routing, time windows, total travelled distance, hybrid algorithm, ant colony optimization, local search.
Cite: Dolgova, O.E., Peresvetov, V.V. An ant colony optimization algorithm with time relaxed window constraints for solving the vehicle routing problem // Comput. Technologies. 2018. Vol. 23, No. 5. P. 49-62. (In Russ.) DOI: 10.25743/ICT.2018.23.5.005.
Acknowledgements. The resources of the Shared Facility Center "Data Center of FEB RAS" (http://lits.ccfebras.ru/) were used for numerical experiments.
Received 19 January 2018 Received in revised form 18 June 2018