Алгоритмы локального поиска для задач маршрутизации транспортных средств Хмелев Алексей Владимирович Новосибирский государственный университет Диссертация на соискание ученой степени кандидата физико-математических наук 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