Математическое моделирование: методы, алгоритмы, технологии
УДК 658.512
Е.М. Бронштейн, Р.В. Гиндуллин
Уфа, Россия
ОБ ОДНОМ КЛАССЕ ЗАДАЧ МАРШРУТИЗАЦИИ
E.M. Bronshtein, R.V. Gindullin
Ufa, Russia
ON ONE cLASS OF ROuTING PROBLEMS
Рассмотрена оптимизационная задача доставки однородного груза из некоторых пунктов производства в пункты потребления транспортным средством ограниченной вместимости c возможностью неоднократного посещения каждого пункта. Приведена формализация поставленной задачи, предложено несколько эвристических алгоритмов решения и результаты вычислительных экспериментов.
МАРШРУТИЗАЦИЯ. ОПТИМИЗАЦИЯ. ЭВРИСТИКИ.
Some problem of optimization of delivery of homogeneous cargo from some points of manufacture in points of consumption by a vehicle of the limited capacity with opportunity of multiple visitations are considered. Formalization of tasks is resulted, group algorithms of the decision and results of computing experiments are offered.
ROUTING. OPTIMIZATION. HEURISTICS.
Задачи маршрутизации - важный класс задач дискретной оптимизации. Начиная с работы Данцига и Рамцера [1], в которой исследовалась задача, названная VRP (Vehicle Routing Problem), анализировался широкий класс задач этого класса (см., в частности, обзоры [2-4, 6, 7]).
В данной статье рассматривается оптимизационная задача доставки однородного груза из некоторых пунктов производства в пункты потребления транспортным средством ограниченной вместимости c возможностью неоднократного посещения каждого пункта, приводятся и экспериментально исследуются несколько эвристических методов решения поставленной задачи. Транспортное средство (ТС) первоначально находится в депо и по окончании перевозок должно в депо вернуться. Доставку груза необходимо организовать по кратчайшему пути.
Будем считать, что все пункты пронумеро-
ваны числами 0, 1, ..., п, депо присвоен номер 0. Через а(г) обозначим объем груза в пункте производства (в этом случае а(г) > 0) или потребность в пункте потребления (тогда а(г) < 0). Мы не исключаем, что депо совпадает с пунктом производства, в противном случае а(0) = 0. Естественно
п
считать, что ^ а(г) = 0 . Задана также матрица С
г=0
расстояний между пунктами: С..(/,/' = 0, 1, ..., п) -расстояние от г-го пункта до .-го.
В [5] рассмотрен вариант задачи, в которой ТС могло посещать каждый пункт, кроме депо, только один раз.
Постановка задачи
Поскольку ТС может посещать каждый пункт неоднократно (из каждого пункта производства вывозить груз можно в несколько заходов и также в несколько заходов можно завозить груз в пункт
Научно-технические ведомости СПбГПУ 1' 2013 ^ Информатика. Телекоммуникации. Управление
потребления), то доставка возможна при любой вместимости ТС.
Формализация задачи имеет следующий вид. Необходимо найти последовательность пар (и(0), у(0)), (и(1), у(1)), ..., (п(Ы), У(Щ) (число N априори неизвестно), первый элемент которых -номер пункта, то есть и(1)е{0, 1, ..., п}, второй -вес груза, вывозимого или доставляемого при соответствующем посещении пункта
Должны выполняться следующие ограничения:
и(0)= и(Щ=0
(1)
(ТС должно начинать и заканчивать движение на базе);
0 <£г(1) < 5 (к = 0, 1, ..., N)
1=0
(ограничение на вместимость ТС);
(2)
£ {у(1 ): и (1) = Л = а (у) (у = 0, 1, ..., п) (3)
1=0
(из каждого пункта груз полностью вывозится, потребность каждого потребителя удовлетворяется);
если и(1) = У, то v(У)а(У) > 0
(4)
(из пункта производства груз только вывозится, в пункт потребления только доставляется - из условия (3) это не следует). Целевая функция:
^ (5)
£ Си (1), и (1+1)
^ Ш1П .
Для решения задачи (1)-(5) применен следующий эвристический подход.
На каждом шаге ТС выбирает пункт, куда оно отправится. Для этого ТС перебирает все возможные допустимые варианты перемещения на к последующих шагов. Из них выбирается вариант с наименьшей длиной перемещения, и ТС делает один шаг по выбранному пути. Далее ТС снова производит перебор вариантов перемещения на к последующих шагов, выбирает из них маршрут с наименьшей длиной, делает один шаг и так происходит до тех пор, пока не будут пройдены все пункты. Перед запуском алгоритма выбирается значение параметра к.
Во время перебора последующих к шагов следует следить за тем, чтобы не попадать в пункты, которые уже были полностью обслужены, а также, чтобы заполненное ТС не попадало в пункт производства или пустое ТС - в пункт потребления. При попадании в пункт производства ТС вывозит весь наличный груз (если позволяет вместимость), либо заполняется полностью. При попадании в пункт потребления ТС оставляет весь груз (если при этом не возникает избытка груза), либо полностью заполняет пункт потребления.
Следует заметить, что стратегии описанного типа (забери или оставь как можно больше) не обязательно приводят к оптимальному решению.
Пример 1. На рисунке отмечены пункты 0, 1, 2, 3 и соответствующая сеть дорог (некоторые из них с односторонним движением).
Полагаем, что длины всех отрезков равны единице. Расстояния определяются как длины кратчайших путей. Например: С12 = 1, С21 = 2,
С = 2 С = 3
0,2 2,0
Пример задачи, в которой неэффективен жадный алгоритм
,-п
4
Математическое моделирование: методы, алгоритмы, технологии^
Результаты численных экспериментов
Среднее время решения, с Среднее отношение длины маршрута
п к длине маршрута, найденного алгоритмом А
k = 1 k = 2 k = 3 1 1 4 k = 1 k = 2 k = 3 1 1 4
Группа задач I
4 0,00047 0,0012 0,0016 0,0030 1 1,031 0,986 0,959
5 0,0012 0,0019 0,0042 0,0095 1 1,058 1,010 0,974
6 0,0011 0,0028 0,0089 0,029 1 1,106 1,037 1,017
7 0,0011 0,0045 0,019 0,074 1 1,086 1,067 1,038
8 0,0025 0,0068 0,037 0,18 1 1,086 1,056 1,034
9 0,0026 0,011 0,06 0,33 1 1,083 1,073 1,032
10 0,0028 0,014 0,10 0,62 1 1,101 1,098 1,074
11 0,0031 0,020 0,15 1,1 1 1,106 1,083 1,046
12 0,0031 0,026 0,22 1,8 1 1,108 1,090 1,085
13 0,0042 0,037 0,33 3,0 1 1,092 1,060 1,036
14 0,0042 0,046 0,45 4,6 1 1,115 1,076 1,065
15 0,0053 0,058 0,66 7,1 1 1,099 1,119 1,101
16 0,0053 0,072 0,84 10,0 1 1,137 1,129 1,128
17 0,0066 0,092 1,1 14,0 1 1,101 1,110 1,081
18 0,0070 0,11 1,5 19,7 1 1,121 1,095 1,113
19 0,0073 0,13 1,8 25,5 1 1,128 1,097 1,070
20 0,0082 0,16 2,4 35,1 1 1,112 1,072 1,081
21 0,0094 0,19 3,0 46,8 1 1,099 1,090 1,099
22 0,0079 0,23 3,8 63,4 1 1,132 1,104 1,080
23 0,0089 0,26 4,6 79,8 1 1,124 1,092 1,100
24 0,011 0,31 5,8 102,1 1 1,106 1,101 1,103
25 0,011 0,36 7,0 136,5 1 1,141 1,109 1,129
Группа задач II
4 0,00077 0,0042 0,010 0,027 1 1,008 1,007 1,007
5 0,0009 0,0088 0,023 0,073 1 1,011 1,009 1,009
6 0,0014 0,014 0,047 0,17 1 1,007 1,007 1,006
7 0,0010 0,026 0,095 0,39 1 1,012 1,015 1,012
8 0,0022 0,040 0,17 0,81 1 1,009 1,009 1,012
9 0,0027 0,059 0,29 1,6 1 1,007 1,008 1,010
10 0,0027 0,081 0,41 2,4 1 1,009 1,012 1,015
11 0,0036 0,11 0,64 4,2 1 1,007 1,012 1,013
12 0,0042 0,15 0,94 6,7 1 1,010 1,013 1,015
13 0,0046 0,20 1,4 10,7 1 1,011 1,012 1,019
14 0,0044 0,26 1,9 16,3 1 1,013 1,020 1,023
15 0,0056 0,34 2,7 24,0 1 1,012 1,014 1,016
16 0,0051 0,41 3,4 31,8 1 1,016 1,020 1,026
17 0,0083 0,53 4,8 49,0 1 1,011 1,013 1,018
18 0,0078 0,81 7,8 82,3 1 1,011 1,014 1,020
19 0,0070 0,74 7,4 83,9 1 1,009 1,016 1,022
20 0,0083 0,87 9,5 114,3 1 1,011 1,018 1,024
Научно-технические ведомости СПбГПУ 1' 2013 Информатика. Телекоммуникации. Управление
21 0,011 1,4 15,4 190,9 1 1,013 1,018 1,024
22 0,011 1,5 17,6 226,0 1 1,012 1,018 1,022
23 0,010 1,6 19,6 267,2 1 1,010 1,016 1,020
24 0,012 1,7 22,1 314,7 1 1,010 1,015 1,025
25 0,013 2,1 28,6 426,0 1 1,012 1,014 1,021
Группа задач III
4 0,00077 0,0014 0,0036 0,0065 1 1,019 1,003 0,969
5 0,00093 0,0027 0,0076 0,023 1 1,033 1,013 0,991
6 0,00078 0,0047 0,018 0,059 1 1,055 1,018 0,996
7 0,0020 0,0059 0,031 0,12 1 1,025 1,012 1,014
8 0,0011 0,0129 0,056 0,27 1 1,051 1,028 1,023
9 0,0025 0,02 0,10 0,65 1 1,049 1,065 1,023
10 0,0020 0,03 0,16 0,97 1 1,034 1,027 1,025
11 0,0023 0,04 0,24 1,6 1 1,042 1,060 1,032
12 0,0035 0,05 0,34 2,5 1 1,038 1,024 1,014
13 0,0039 0,07 0,58 4,8 1 1,043 1,046 1,032
14 0,0049 0,08 0,74 6,4 1 1,024 1,041 1,045
15 0,0060 0,10 0,96 9,0 1 1,035 1,044 1,037
16 0,0053 0,14 1,4 14,0 1 1,045 1,046 1,031
17 0,0059 0,16 1,7 18,4 1 1,051 1,041 1,036
18 0,0067 0,21 2,4 28,2 1 1,044 1,050 1,033
19 0,0076 0,25 3,0 37,6 1 1,066 1,064 1,074
20 0,0086 0,31 3,9 50,7 1 1,030 1,039 1,037
21 0,0085 0,38 5,0 69,1 1 1,020 1,047 1,033
22 0,010 0,41 5,7 82,5 1 1,056 1,070 1,070
23 0,010 0,51 7,5 112,5 1 1,045 1,051 1,047
24 0,010 0,61 9,4 148,2 1 1,049 1,061 1,056
25 0,013 0,78 12,5 207,5 1 1,034 1,040 1,039
Наличие и потребности в грузе в пунктах равны соответственно 2, -2, -1, 1. Оптимальный план перевозок, очевидно, имеет вид ((0,2), (1,-1), (2,-1), (3,1), (1,-1), (0,0)). Длина маршрута при этом равна 5.
Описанная стратегия приводит к плану перевозок ((0,2), (1,-2), (3,1), (2,-1), (0,0)). Длина маршрута равна 8.
Численные эксперименты
Для заданного числа пунктов п
• генерируются с помощью датчика случайных чисел целочисленные величины а(1), ..., а(п) из заданного промежутка (см. ниже), принимаем
п-1
а(п) = -£ а(1);
1=1
• аналогично генерируются 2п вещественных чисел - координаты пунктов (х(/), у(/)) ( = 1, ..., п),
за базу принимается точка (0,0), расстояния C, принимаются равными евклидовым расстояниям между точками.
Вместимость ТС, S считается целочисленной и задается случайным образом в указанном промежутке (см. ниже).
Производилась генерация трех групп задач:
I. -2 < a(i) < 2 , S < 5 ;
II. -5 < a(i) < 5, S < 50 ;
III. -50 < a(i) < 50, S < 50 .
Для каждого n e [4; 25] в каждой группе генерировались сто примеров.
К каждой полученной задаче применялся указанный алгоритм при k равном 1, 2, 3 или 4. Длины полученных маршрутов сравниваются c результатом алгоритма при к, равном единице.
В таблице приведены результаты численных экспериментов.
4
Математическое моделирование: методы, алгоритмы, технологии
На основании полученных данных можно сделать следующие выводы:
во всех группах задач при п >= 6 алгоритм при k = 1 находит результат по длине маршрута и затраченному времени (число операций), чем при других значениях к;
средняя длина маршрута, полученная при k = 2, близка к аналогичному результату при k = 3 и k = 4, но временные затраты существенно ниже;
разница в расстояниях найденных маршрутов
в среднем находится в пределах 10 %, а у второй группы задач - в пределах 1 %. С увеличением количества пунктов эта величина сохраняется;
вторая группа задач (значительные веса потребителей при небольшой вместимости ТС) является самой трудоемкой с точки зрения затрат времени.
Рассмотрена задача маршрутизации. Приведена ее формализация. Предложены подходы к решению и проведены численные эксперименты.
СПИСОК ЛИТЕРАТУРЫ
1. Dantzig, G.B. The Truck Dispatching Problem [Text] / G.B. Dantzig, J.H. Ramser // Management Science. -1959. -Vol. 6. -№ 1. -P. 80-91.
2. Parragh, S. A survey on pickup and delivery problems. Part I: Transportations between customers and depot [Text] / S. Parragh, K. Doerner, R. Hartl // J. fur Betriebswirtschaft. -2008. -Vol. 58. -P. 21-51.
3. Parragh, S. A survey on pickup and delivery problems. Part I: Transportations between customers and depot [Text] / S. Parragh, K. Doerner, R. Hartl // J. fur Betriebswirtschaft. -2008. -Vol. 58. -P. 82-117.
4. Berbeglia, G. Static pickup and delivery problems: A classi_cation scheme and survey [Text] / G. Berbeglia,
J.F. Cordeau, I. Gnbkovskarn [et al.] // TOP. -2007. -Vol. 15. -№ 1. -P. 1-31.
5. Бронштейн, Е.М. Об одном классе задач маршрутизации [Текст] / Е.М. Бронштейн, Р.В. Гиндуллин // Математическое моделирование. -2011. -Т. 23. -№ 6. -С. 123-122.
6. Бронштейн, Е.М. Детерминированные оптимизационные задачи транспортной логистики [Текст] / Е.М. Бронштейн, Т.А Заико // Автоматика и телемеханика. -2010. -№ 10. -С. 133-147.
7. Кристофидес, Н. Теория графов. Алгоритмический подход [Текст] / Н. Кристофидес. -М.: Мир, 1978. -432 с.