Алгоритмы локального поиска для задач маршрутизации

реклама
Алгоритмы локального поиска
для задач маршрутизации
транспортных средств
Хмелев Алексей Владимирович
Новосибирский государственный университет
Диссертация на соискание ученой степени кандидата физико-математических наук
15.13.18 - Математическое моделирование, численные методы и комплексы программ
Научный руководитель – д. ф.-м. н. Кочетов Ю. А.
Новосибирск - 2015
Структура диссертации
• Введение
• Глава 1. Гибридный локальный поиск для задачи
маршрутизации транспортных средств с
распределенными поставками
• Глава 2. Гибридный алгоритм локального поиска для
задачи маршрутизации разнородного
ограниченного автопарка
• Глава 3. Трехфазный алгоритм оптимизации
автопарка и маршрутизации транспортных средств.
• Заключение
• Список литературы
2/43
Постановка задачи маршрутизации
• Неограниченный однородный
автопарк транспортных средств
вместимости Q
• n клиентов с запросами 𝒅𝒊
Маршрут 1
• Целевая функция:
• минимизировать
суммарную величину проезда
• Ограничения:
• Все клиенты должны быть
обслужены
• ТС не должны быть перегружены
• Каждый клиент обслуживается
ровно одним ТС
Маршрут 2
Склад
Маршрут 3
3/43
Известные исследования
• Базовая задача маршрутизации
(Vehicle Routing Problem)
• Данциг и Рамсер, 1959,
•
•
•
•
•
•
Кристофидес, 1985,
Лапорте и др., 1987,
Виго и др., 2002,
Голден и др., 2008,
Бронштейн и др., 2011,
Гимади и др. 2014.
4/43
Известные исследования
• Задача маршрутизации с разделенными поставками
(Split Delivery Vehicle Routing Problem)
• Дрор и Трудо, 1990,
• Аркетти и Сперанза, 2008,
• Берботто и др., 2014.
• Задача маршрутизации с временными окнами
(Vehicle Routing Problem with Time Windows)
•
•
•
•
Голден и др., 2008,
Нагата и др., 2009,
Валеева и др., 2013,
Видал и др., 2013.
• Задача маршрутизации с перерывами
(Vehicle Routing Problem with Pauses)
• Гоел, 2009,
• Гаглиарди и др., 2014,
• Видал и др., 2014.
5/43
Глава 1
Гибридный локальный поиск для задачи
маршрутизации транспортных средств с
разделёнными поставками
1.
2.
3.
4.
5.
6.
7.
Постановка задачи
Основная идея алгоритма
Кодирование решений
Общая схема алгоритма
Спуск по чередующимся окрестностям
Процедура поиска с запретами
Численные эксперименты
6/43
Постановка задачи маршрутизации
• Однородный автопарк
транспортных средств
вместимости Q
• n клиентов с запросами 𝒅𝒊
Маршрут 1
• Целевая функция:
• минимизировать суммарную
величину проезда
• Ограничения:
• Все клиенты должны быть
обслужены
• ТС не должны быть перегружены
• Каждый клиент обслуживается
ровно одним ТС может быть
обслужен несколькими ТС
Маршрут 2
Склад
Маршрут 3
7/43
Постановка задачи маршрутизации
с разделёнными поставками
• Однородный автопарк
транспортных средств
вместимости Q
• n клиентов с запросами 𝒅𝒊
Маршрут 1
• Целевая функция:
• минимизировать суммарную
величину проезда
• Ограничения:
Маршрут 2
Склад
Маршрут 3
• Все клиенты должны быть
обслужены
• ТС не должны быть перегружены
• Каждый клиент обслуживается
ровно одним ТС может
7/43
Математическая модель
• 𝒙𝒊𝒋𝒌 = 1 если ТС k
едет напрямую от
клиента i до
клиента j
• 𝒚𝒊𝒌 - количество
единиц запроса,
поставленного
клиенту i
транспортным
средством k
• 𝒖𝒊𝒌 - позиция
клиента i в
маршруте для ТС k
8/43
Математическая модель
• 𝒙𝒊𝒋𝒌 = 1 если ТС k
едет напрямую от
клиента i до
клиента j
• 𝒚𝒊𝒌 - количество
единиц запроса,
поставленного
клиенту i
транспортным
средством k
• 𝒖𝒊𝒌 - позиция
клиента i в
маршруте для ТС k
8/43
Математическая модель
• 𝒙𝒊𝒋𝒌 = 1 если ТС k
едет напрямую от
клиента i до
клиента j
• 𝒚𝒊𝒌 - количество
единиц запроса,
поставленного
клиенту i
транспортным
средством k
• 𝒖𝒊𝒌 - позиция
клиента i в
маршруте для ТС k
8/43
𝑅𝜋 =
𝜋 𝑖1 … 𝜋 𝑖𝑚
∶ 0 < 𝑖1 < 𝑖2 < ⋯ < 𝑖𝑚 ≤ 𝑛, 0 < 𝑚 ≤ 𝑛
Свойство оптимальных решений
Пусть π - перестановка клиентов.
𝑅𝜋 - множество всех возможных маршрутов,
полученных из перестановки π:
маршрут 𝑟 = с1 , … , с𝑙 ∈ 𝑅𝜋 ,
если 𝜋(𝑐𝑖 ) < 𝜋(𝑐𝑗 ) при 𝑖 < 𝑗.
Теорема 4. Пусть матрица расстояний удовлетворяет
неравенству треугольника. Тогда для любого
оптимального решения 𝑅 ∗ = 𝑟1 … 𝑟 𝐹 существует
такая перестановка π, что для всех 𝑟 ∈ 𝑅∗ − 𝑟 ∈ 𝑅𝜋 .
9/43
Теорема 5. Пусть матрица расстояний удовлетворяет
неравенству треугольника. Тогда для фиксированной
перестановки
π
задача
маршрутизации
с
разделенными поставками является NP-трудной.
10/43
Идея гибридного алгоритма
1. Просмотр перестановок посредством локального
поиска
2. Для каждой перестановки применять
приближенный алгоритм для получения набора
маршрутов
11/43
Расширенная перестановка
с повторениями
Клиенты:
536214
Запросы 𝑑𝑖 : 9 5 7 4 8 6
536632114
Разделенные запросы: 9 1 6 1 4 4 5 3 6
Клиенты:
Разработано два метода декодирования решения по
такой перестановке: Greedy() и DP() с временной
сложность 𝑶(𝒏) и 𝑶 𝒏𝟐 соответственно.
12/43
Общая схема алгоритма
Генерируем стартовую
последовател ьность
Смена декодера:
Greedy DP
Поиск с запретами
Смена декодера:
DP Greedy
НЕТ
Превысили
максимальное число
итераций?
Спуск по чередующимся
окрестностям
ДА
Возвращаем наилучшее найденное решение
13/43
Локальный спуск
по чередующимся окрестностям
• Регулярная смена окрестности с целью нахождения общего
локального оптимума для всех окрестностей:
• shift, swap, 2-opt, exchange, k-split (полиномиальной мощности),
• ejection chains (экспоненциальной мощности).
• Использует метод динамического программирования в
качестве процедуры декодирования (трудоемкость
процедуры 𝑂(𝑛2 )).
14/43
Окрестности
• Shift
56326336142124
51133621132456
5 6 3 2 3 3 6 1 426 1 2 4
5 1 1 3 6 2 1 1 323 4 5 6
• Swap
56326336142124
51133621132456
563223361461 24
511326211334 56
• 2-Opt
56326336142124
51133621132456
56316336242124
51111263332456
15/43
Процедура поиска с запретами
• Применяется для диверсификации поиска с целью сменить
район поиска.
• Используются рандомизированные shift, swap и 2-opt
окрестности.
• В качестве запретов применяются пары клиентов.
• Используется жадный метод декодирования
последовательностей c трудоемкостью 𝑂(𝑛).
• Критерий остановки – максимальное число итераций.
16/43
Численные эксперименты
• Алгоритм разработан на языке программирования
Java и протестирован на 95 известных примерах:
• Archetti и др. (2006), 49 примеров
• Belenguer и др. (2000), 25 примеров
• Chen и др. (2007), 21 пример
17/43
Численные эксперименты
• Алгоритм сравнивался с наиболее эффективными
эвристиками для данной задачи:
• Scatter Search (SS) (Mota и др., 2007),
• Memetic algorithm (MA—PM) (Boudia и др., 2007),
• Tabu search with vocabulary building approach (Aleman и др., 2010),
• Heuristic with limited fleet and unlimited fleet (HUL) (Archetti и др., 2011),
• Randomized Granular Tabu Search (RGTS) (Berbotto и др., 2014).
18/43
Численные эксперименты
Пример Запросы
a-01-050
a-05-199
a-06-120
a-07-100
a-04-150
a-05-199
a-06-120
a-07-100
a-06-120
a-01-050
a-06-120
a-07-100
[0.1-0.9]
[0.1-0.9]
[0.1-0.9]
[0.1-0.9]
[0.3-0.7]
[0.3-0.7]
[0.3-0.7]
[0.3-0.7]
[0.1-0.3]
[0.1-0.5]
[0.1-0.5]
[0.1-0.5]
MA|PM
Z
1467,06
4941,22
6318,37
3113,72
4045,87
5155,36
6424,71
3155,69
2720,38
988,31
3934,39
1994,59
T
21
726
196
52
245
750
271
91
144
12
163
51
Z
1461,64
4890,86
6227,87
3105,25
4037,89
5134,9
6349,54
3142,46
2718,23
988,05
3925,04
1989,4
Hybrid
T
54
608
173
143
395
745
253
153
146
25
147
99
ε(%)
0,37
1,02
1,43
0,27
0,20
0,40
0,78
0,42
0,08
0,03
0,24
0,26
Наилучшее
известное
1467,06
4941,22
6308,76
3113,72
4045,87
5155,36
6399,42
3155,69
2720,38
988,31
3934,39
1994,59
Получено 21 новое рекордное решение из 95.
Средняя погрешность – -0.68 %
19/43
Численные эксперименты
Решение для
примера
с-SD10-064.
Суммарное
расстояние
2684,88.
20/43
Глава 2
Гибридный алгоритм локального
поиска для задачи маршрутизации
разнородного ограниченного
автопарка
1.
Постановка задач
2.
Задача разбиения последовательности
3.
Метод лагранжевых релаксаций
4.
Локальный поиск с чередующимися окрестностями
5.
Численные эксперименты
21/43
Постановка задачи маршрутизации
с разнородными автопарком
• Неоднородный и ограниченный
автопарк транспортных средств
• n клиентов с запросами 𝒅𝒊
Маршрут 1
• Целевая функция:
• минимизировать суммарную
стоимость проезда
• Ограничения:
• Все клиенты должны быть
обслужены
• ТС не должны быть перегружены
• Каждый клиент обслуживается
ровно одним ТС
Маршрут 2
Склад
Маршрут 3
22/43
Неоднородность и ограниченность
автопарка
• Есть k типов
транспортных средств.
• Каждый тип имеет
вместимость 𝑸𝒌 .
• Число ТС каждого типа
фиксировано: 𝒎𝒌 .
• Каждый имеет
фиксированную
стоимость запуска и
расход на километр.
23/43
Математическая модель
𝑘
𝑥𝑖𝑗
= 1, если ТС типа k
от клиента i едет к
клиенту j
𝑦𝑖𝑗 ≥ 0 — количество
груза в ТС при переезде
от клиента i к клиенту j.
24/43
Задача разбиения
последовательности клиентов
Дана фиксированная последовательность. Необходимо эту
последовательность разрезать на маршруты. При этом каждому
маршруту необходимо назначить тип транспортного средства.
25/43
Метод лагранжевых релаксаций
𝑘
• 𝑧𝑖𝑗
= 1 если ТС типа k посещает клиентов от i до j в
заданной последовательности
• 𝑚𝑘 - максимальное число ТС типа k
•
26/43
Метод лагранжевых релаксаций
𝑘
• 𝑧𝑖𝑗
= 1 если ТС типа k посещает клиентов от i до j в
заданной последовательности
• 𝑚𝑘 - максимальное число ТС типа k
•
26/43
Метод лагранжевых релаксаций
𝑘
• 𝑧𝑖𝑗
= 1 если ТС типа k посещает клиентов от i до j в
заданной последовательности
• 𝑚𝑘 - максимальное число ТС типа k
•
+
𝑘
𝑧𝑖𝑗
− 𝑚𝑘
𝜆𝑘
𝑘∈𝐾
𝑖,𝑗 ∈𝐸
26/43
Итеративный локальный поиск
• Основан на методе чередующихся окрестностей
(VNS, Mladenovic, 1997)
• Использует конструктивную эвристику для
построения стартового решения
• Использует стандартные окрестности для
локального поиска Shift, Swap, 2-Opt, а также
новую окрестность экспоненциальной мощности
типа ejection chains
• После нахождения локального оптимума
применяются механизмы интенсификации и
диверсификации
27/43
Экспоненциальная окрестность
типа ejection chains
𝑟1
𝑟2
𝑟3
𝑟1
𝑟2
𝑟3
28/43
Численные эксперименты
• Алгоритм разработан на языке программирования
Java и тестировался на 96 тестовых примерах
размерностью до 256 клиентов основанных на
реальных данных (Duhamel и др., 2011).
• Сравнение проводилось с двумя наиболее
эффективными алгоритмами:
• Duhamel и др. (2013): GRASP and an Evolutionary Local
Search;
• Penna и др. (2013): ILS with a random neighborhood
ordering VND and Simple Fleet Reassignment procedure.
29/43
Численные эксперименты
n
HVRP_DLP_01
HVRP_DLP_81
HVRP_DLP_07
HVRP_DLP_48
HVRP_DLP_03
HVRP_DLP_26
HVRP_DLP_89
HVRP_DLP_73
HVRP_DLP_66
HVRP_DLP_76
HVRP_DLP_57
HVRP_DLP_33
HVRP_DLP_91
HVRP_DLP_27
HVRP_DLP_32
91
105
107
110
123
125
133
136
149
151
162
188
195
219
243
HLS
MS-ILS-SFR GRASP
9175
9210
9210
10678
10690
10715
8074
8089
8130
21316
21330
21318
10707
10730
11321
6393
6423
6481
7101
7105
7135
10195
10196
10243
12790
12828
13319
12007
12018
12098
43600
44850
45152
9419
9437
9543
6374
6381
6437
8417
8436
8520
9378
9412
9537
Z*
9210
10690
8089
21318
10730
6423
7105
10196
12848
12018
44818
9421
6377
8436
9412
%
-0,38
-0,11
-0,19
-0,01
-0,21
-0,47
-0,06
-0,01
-0,45
-0,09
-2,72
-0,02
-0,05
-0,23
-0,36
• Найдено 15 новых рекордов для 96 примеров.
• Средняя погрешность составила - 0.65%
30/43
Глава 3
Трехфазный алгоритм оптимизации
автопарка и маршрутов транспортных
средства
1.
2.
3.
4.
Постановка задачи
Расстановка перерывов
Процедура распределения клиентов
Трехфазный алгоритм
• Построение допустимого решения
• Минимизация числа маршрутов
• Минимизация стоимости проезда
5. Численные эксперименты
31/43
РАБОЧИЕ
СМЕНЫ
АВТОПАРК
КЛИЕНТЫ
• Есть N
• Есть M клиентов,
• Есть m типов
транспортных
которым
рабочих смен.
средств.
необходимо
• Каждая смена u
доставить груз.
должна начинать и • Каждое ТС имеет
параметры:
• Каждый клиент
заканчивать свою
имеет следующие
работу во
• Вместимость 𝑸𝒌
требования:
временном окне
• Рабочую
𝐸𝑢 , 𝐿𝑢 .
• Запрос 𝒒𝒊
смену u
• Временное
• В каждой смене u
• Фиксированную
стоимость
окно 𝒆𝒊 , 𝒍𝒊 .
должны быть
запуска 𝒇𝒌
распланированы
• Время
𝒕𝒖 перерывов
• Удельную
обслуживание
имеющих
стоимость
𝒔𝒊
проезда 𝒄𝒌
длительность и
временное окно.
32/43
Математическая модель
33/43
Расстановка перерывов
Для вставки одного перерыва в
последовательность σ, нужно найти
наилучшее разбиение σ на 𝝈𝟏 и 𝝈𝟐 (𝝈𝟏 ⨁𝝈𝟐 = σ)
со вставленным перерывом между ними.
перерыв
Теорема 6. Оптимальное время начала перерыва между
последовательностями 𝝈𝟏 и 𝝈𝟐 находится с трудоемкостью O(1).
34/43
Расстановка перерывов
𝑡𝑢
1
2
{𝑝𝑢 , 𝑝𝑢 , … , 𝑝𝑢 }
Вставка набора перерывов Pu =
в
склейку последовательностей 𝜎1 и 𝜎2 осуществляется
процедурой динамического программирования (ДП):
𝜎1 ⨁𝜎2
𝑃𝑢
=
min
′
2
𝑃𝑢1 ∪𝑃𝑢 ∪𝑃𝑢 =𝑃𝑢
(𝜎1
𝑃𝑢1
⨁ 𝑃𝑢′ ⨁ 𝜎2
Теорема 7. Сложность процедуры ДП для вставки 𝑡𝑢
перерывов в конкатенацию 𝜎1 и 𝜎2 равна 𝑂 𝜎1 2 + 𝜎2
2
𝑃𝑢2 }
𝑡𝑢3 .
35/43
Трёхфазный алгоритм
1. ПОСТРОЕНИЕ ДОПУСТИМОГО РЕШЕНИЯ
• Применяется
жадная
процедура
маршрутов.
• Проверяется задача на разрешимость.
построения
2. МИНИМИЗАЦИЯ ЧИСЛА МАРШРУТОВ
• На каждой итерации удаляем маршрут и применяем
процедуру распределения клиентов из удаленного
маршрута.
3. МИНИМИЗАЦИЯ СТОИМОСТИ ПРОЕЗДА
• На каждой итерации релаксируем ограничения на
временные окна и грузоподъемность с целью
минимизации проезда после чего восстанавливаем
допустимость решения.
36/43
37/43
38/43
Численные эксперименты
Число ТС в автопарке = 30
Число клиентов = 1000
39/43
Основные результаты
1. Для
задачи
маршрутизации
с
разделенными
поставками доказано существование кодировки
оптимального решения в виде перестановки клиентов
без повторений. Доказана NP-трудность задачи
декодирования решения по перестановке. Разработан
новый гибридный алгоритм локального поиска.
2. Для решения задачи маршрутизации разнородного
автопарка
разработан
алгоритм
итеративного
локального
поиска
с
новой
окрестностью
экспоненциальной
мощности.
Для
подзадачи
декодирования последовательности предложен метод
лагранжевых
релаксаций.
Разработаны
новые
процедуры интенсификации и диверсификации поиска.
40/43
Основные результаты
3. Для задачи маршрутизации транспортных средств с
временными окнами и перерывами разработана
математическая модель в терминах целочисленного
линейного программирования. Предложен новый
метод расстановки перерывов в маршруте основанный
на
идее
динамического
программирования.
Разработан трехфазный алгоритм локального поиска с
новой
эффективной
процедурой
просмотра
окрестности.
4. Все алгоритмы были реализованы на языке
программирования Java и протестированы на
известных тестовых примерах либо на реальных
данных и продемонстрировали свою эффективность в
сравнении с существующими эвристиками.
41/43
Основные публикации
1.
2.
3.
4.
5.
Кочетов Ю.А., Сивых М. С., Хмелёв А. В., Яковлев А. В. Методы
локального поиска для одной задачи о перестановке столбцов
бинарной матрицы // Вестник НГУ. Серия: Математика,
механика, информатика. — 2011. — Т. 11, вып. 4. — C. 30–41;
Khmelev A., Kochetov Y. A hybrid VND method for the split delivery
vehicle routing problem. // Electronic Notes in Discrete
Mathematics. — 2015. — Vol. 47. — P. 5–12;
Khmelev A., Kochetov Y. A hybrid local search for the split delivery
vehicle routing problem. // International Journal of Artificial
Intelligence. — 2015. — Vol. 13, № 1. — P. 147–164;
Хмелев А. В., Кочетов Ю. А. Гибридный алгоритм локального
поиска для задачи маршрутизации транспортных средств с
неоднородным автопарком // Дискрет. анализ и исслед.
операций. — 2015. — Т. 22, вып. 5. — C. 5–29;
Хмелев А. В. Трехфазный алгоритм оптимизации автопарка
и маршрутов транспортных средств // Дискрет. анализ и
исслед. операций. — 2015. — Т. 22, вып. 6. — C. 55–77. 42/43
Апробация работы
1.
Российская конференция "Дискретный анализ и исследование
операций", Алтай, Россия, 2010;
2.
Российская конференция "Дискретный анализ и исследование
операций", Новосибирск, Россия, 2013;
3.
Международная конференция по маршрутизации и
логистики VeRoLog, Саутгемптон, Великобритания, 2013;
4.
Всероссийская конференция "Методы оптимизаций и их
приложения", о. Ольхон, Байкал, Россия, 2014;
5.
Азиатская международная школа-семинар "Проблемы
оптимизации сложных систем", Иссык-Куль, Киргизия, 2014;
6.
Всероссийская конференция "Проблемы оптимизации и
экономические приложения", Омск, Россия, 2015;
7.
Международная конференция по исследованию операций
OR2015, Вена, Австрия, 2015.
43/43
Благодарю
за внимание!
51
Кодирование решений
Перестановка U без распределения поставок
Посещаемые клиенты:
536214
Число единиц запроса:
957486
Перестановка V с 3 разделениями запроса
Посещаемые клиенты:
533662114
Число единиц запроса:
914614536
Перестановка E с фиктивными вершинами
Посещаемые клиенты:
5 3 3 6 -- 6 2 1 -- 1 4
Число единиц запроса:
91465145736
52
Процедура декодирования:
Метод ДП (Prins 2004)
Перестановка S = (a, b, c, d, e) и оптимальное разбиение для задачи VRP
ab:55
cd:95
Вспомогательный граф возможных маршрутов Q=10 и кратчайший путь в нем
53
Процедура декодирования:
Жадный метод
2 5 3 6 3 -- 6 4 2 1 -- 2 4
1 6 1 4 6 5 1 2 2 5 6 3 6
63
36
6421
1221
Итоговое разбиение
1
4
24
36
Q=10
запросы
2536
1711
Получили разбиение
2536
1711
клиенты
6 3 -- -- 6 4 2 1
361 41221
1 -- 2 4
46 36
Переместили крайних
клиентов в наилучшие позиции
5632
7111
63
36
6142
1122
1
4
24
36
54
Окрестности разбиения (Boudia 2007)
55
Цепи извлечений (Ejection chains)
56
Случай с разнородным
ограниченным автопарком
Допустимая
последовательность
Недопустимая
последовательность
57
Метод Лагранжевых релаксаций
В релаксированной задаче
каждое ребро,
соответствующее типу v
увеличивается на 𝜆𝑣
58
Метод субградиентной оптимизации
𝜆𝑖+1
=
𝑣
𝑖
𝜆𝑣
𝑖
− 𝛼∗𝑡 ∗
𝑖
𝑖
𝑓𝑣
𝑡 =
ПАРАМЕТРЫ:
+ 1−𝛼 ∗𝑡
𝜃
𝑖−1
∗𝐹
𝑖−1
𝑖−1
∗
+
𝑖−1
𝑓𝑣
∗ 𝛾
𝑖−1 2
(𝑓
)
𝑣 𝑣
𝛼
0.74
𝜃0
1.8
(делится на 1.1
каждые 4 итерации)
𝛾
0.3
59
ПРОСТРАНСТВО РЕШЕНИЙ
𝝈 – некоторая последовательность обхода клиентов
D(𝝈) - длительность обхода последовательности 𝜎
TW(𝝈) – плата за то, чтобы приехать к концу временного окна
E(𝝈), L(𝝈) – ранее и позднее время посещения первой вершины
𝐹𝑝𝑒𝑛𝑎𝑙𝑡𝑦 𝜎 =
𝒄𝒅 max 𝐷 𝜎 − 𝐿𝑢 + 𝐸𝑢 , 0 + 𝒄𝒒 max 𝑄 𝜎 − 𝑄𝑘 , 0 + 𝒄𝒕𝒘 𝑇𝑊(σ)
60
СКЛЕЙКА ПОСЛЕДОВАТЕЛЬНОСТЕЙ
(T. Vidal et al. 2013)
61
РАССТАНОВКА ПЕРЕРЫВОВ
Для вставки одной паузы в конкатенацию 𝝈𝟏 и 𝝈𝟐
нужно рассмотреть 3 случая:
PAUSE
Случай 1:
𝝈𝟏
⨁
𝝈𝟐
PAUSE
Случай 2:
Случай 3:
𝝈𝟏
𝝈𝟏
⨁
⨁ PAUSE ⨁
𝝈𝟐
𝝈𝟐
62
Случай
с
двумя
перерывами
P1
P2
𝝈𝟏
⨁
𝝈𝟐
P2
𝝈𝟏
P1
𝝈𝟏
⨁
𝝈𝟐
⨁
P1
𝝈𝟏
P2
P1
𝝈𝟏
P2
𝝈𝟐
⨁ P1 ⨁
𝝈𝟐
Характеристики 𝝈𝟏 и 𝝈𝟐
с перерывами должны
быть посчитаны
в препроцессинге
⨁ P2 ⨁
𝝈𝟐
63
РАССТАНОВКА ПЕРЕРЫВОВ
𝑡𝑢
1
2
{𝑝𝑢 , 𝑝𝑢 , … , 𝑝𝑢 }
Для вставки набора перерывов Pu =
конкатенацию 𝜎1 и 𝜎2 делаем следующее:
в
1. Найти наилучшее разбиение Pu на три набора
𝑃𝑢1 , 𝑃𝑢′ , 𝑃𝑢2 таких, что 𝑃𝑢1 ∪ 𝑃𝑢′ ∪ 𝑃𝑢2 = 𝑃𝑢 и 𝑃𝑢′ ≤ 1
2. Все перерывы из 𝑃𝑢1 и 𝑃𝑢2
должны быть в 𝝈𝟏 и 𝝈𝟐 соответсвенно
3. Если 𝑃𝑢′ ≠ ∅, он должен быть вставлен между 𝝈𝟏 и 𝝈𝟐
Лемма. Сложность процедуры ДП для вставки 𝑡𝑢 перерывов
в конкатенацию 𝜎1 и 𝜎2 равна 𝑂( 𝜎1 2 + 𝜎2 2 𝑡𝑢3 )
64
РАСПРЕДЕЛЕНИЕ КЛИЕНТОВ
ВХОД: Множество клиентов C и частичное решение S
While (𝐸𝑃 ≠ ∅ or 𝑇 < 𝑇max ) do
Берем первого клиента 𝑣𝑖𝑛 из очереди EP
Вставляем 𝑣𝑖𝑛 в S минимизируя 𝐹𝑝𝑒𝑛𝑎𝑙𝑡𝑦 ;
If S недопустимо do
S ← RVND(S); //минимизируем функцию штрафа
If S остается недопустимым do
Извлекаем множество клиентов 𝑁𝑒𝑗 из S
так, чтобы оно стало допустимым;
Добавляем 𝑁𝑒𝑗 в конец очереди EP;
Диверсифицируем S;
EJECTION
POOL
𝐸𝑃 ← 𝐶; //Инициализируем очередь
If (𝐸𝑃 ≠ ∅) do возвращаем S в исходное состояние;
Return S;
65
1. ПОСТРОЕНИЕ ДОПУСТИМОГО РЕШЕНИЯ
• Применяем последовательное заполнение
транспортных средств с сохранением
допустимости решения.
• Для полученного частичного решения S и
множества необслуженных клиентов C
применяем процедуру распределения клиентов
c ограниченным временем работы 𝑻𝒎𝒂𝒙 .
• Если в течении заданного времени алгоритм не
находит допустимого решения, останавливаемся.
66
2. МИНИМИЗАЦИЯ ЧИСЛА МАРШРУТОВ
• Пока 𝑡𝑖𝑚𝑒 < 𝑇max
• Выбираем случайный маршрут r,
• Удаляем его из решения S,
• Применяем процедуру распределения
для клиентов из r в решение 𝑺/𝒓.
67
3. МИНИМИЗАЦИЯ СТОИМОСТИ ПРОЕЗДА
𝐹𝑝𝑒𝑛𝑎𝑙𝑡𝑦 𝑟 = 𝒄𝒅 max 𝐷 𝑟 − 𝐿𝑢 + 𝐸𝑢 , 0 + 𝒄𝒒 max 𝑄 𝑟 − 𝑄𝑘 , 0 + 𝒄𝒕𝒘 𝑇𝑊(𝑟)
𝐹𝑝𝑒𝑛𝑎𝑙𝑡𝑦 𝑆 =
𝑟∈𝑆
𝐹𝑝𝑒𝑛𝑎𝑙𝑡𝑦 (𝑟)
𝐹𝑒𝑥𝑡𝑒𝑛𝑑𝑒𝑑 𝑆 = 𝐹𝑐𝑜𝑠𝑡 𝑆 + 𝐹𝑝𝑒𝑛𝑎𝑙𝑡𝑦 𝑆
• While 𝑡𝑖𝑚𝑒 < 𝑇max do
0
• 𝑐𝑑 , 𝑐𝑞 , 𝑐𝑡𝑤 ← 𝑐𝑑0 , 𝑐𝑞0 , 𝑐𝑡𝑤
𝑚𝑎𝑥
• While (S недопустимо or 𝑐𝑑 , 𝑐𝑞 , 𝑐𝑡𝑤 = 𝑐𝑑𝑚𝑎𝑥 , 𝑐𝑞𝑚𝑎𝑥 , 𝑐𝑡𝑤
) do
• S ← RVND(S, 𝐹𝑒𝑥𝑡𝑒𝑛𝑑𝑒𝑑 );
• S ← RVND(S, 𝐹𝑝𝑒𝑛𝑎𝑙𝑡𝑦 );
• If (𝐹𝑝𝑒𝑛𝑎𝑙𝑡𝑦 𝑆 ≠ 0.0) do
• Увеличиваем 𝑐𝑑 , 𝑐𝑞 , 𝑐𝑡𝑤 ;
• Диверсифицируем S
• Return S
68
ЧИСЛЕННЫЕ ЭКСПЕРИМЕНТЫ
69
Скачать