Локальный поиск с чередующимися окрестностями

Идея этого подхода предложена Н. Младеновичем и П. Хансеном в 1997 г. [35]. Она состоит в систематическом изменении функции окрестности и соответствующем изменении ландшафта в ходе локального поиска. Существует много вариантов ее реализации, особенно для задач большой размерности. Легкость адаптации к различным моделям и высокая эффективность, особенно в сочетании с другими метаэвристиками, объясняет ее конкурентоспособность при решении NP-трудных задач.

Обозначим через Локальный поиск с чередующимися окрестностями - student2.ru , конечное множество функций окрестностей, предварительно выбранных для локального поиска. Предлагаемый алгоритм опирается на следующие три тезиса.

- Локальный минимум для одной окрестности не обязательно является локальным минимумом для другой.

- Глобальный минимум является локальным минимумом относительно любой окрестности.

- Для многих задач дискретной оптимизации локальные минимумы относительно одной или нескольких окрестностей расположены достаточно близко друг к другу.

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

Алгоритм VNS

1. Выбрать окрестности Локальный поиск с чередующимися окрестностями - student2.ru , и начальное решение Локальный поиск с чередующимися окрестностями - student2.ru .

2. Повторять, пока не выполнен критерий остановки.

2.1. Положить Локальный поиск с чередующимися окрестностями - student2.ru

2.2. Повторять, пока Локальный поиск с чередующимися окрестностями - student2.ru :

(a) Выбрать Локальный поиск с чередующимися окрестностями - student2.ru случайным образом.

(b) Применить локальный поиск с начального решения Локальный поиск с чередующимися окрестностями - student2.ru . Полученный локальный оптимум обозначим Локальный поиск с чередующимися окрестностями - student2.ru . (c) Если Локальный поиск с чередующимися окрестностями - student2.ru то Локальный поиск с чередующимися окрестностями - student2.ru иначе Локальный поиск с чередующимися окрестностями - student2.ru

3. Предъявить наилучшее найденное решение Локальный поиск с чередующимися окрестностями - student2.ru

В качестве критерия остановки может использоваться максимальное время счета или число итераций без смены лучшего найденного решения. Наряду с последовательным порядком смены окрестностей могут использоваться различные групповые стратегии. Случайный выбор на шаге 2.2 (a) применяется во избежание зацикливания. На шаге 2.2 (b) локальный поиск может использовать различные алгоритмы SA, TS и др.

Существует много вариантов этой схемы. Например, на шаге 2.2 (c) переход осуществляется только при уменьшении значения целевой функции. Это условие можно заменить по аналогии с алгоритмом имитации отжига и разрешать движение в точку с большим значением целевой функции с некоторой вероятностью, зависящей от этого ухудшения. Идею наискорейшего спуска можно осуществить путем следующих изменений. Вместо шага 2.2, на котором выполняется переход согласно k-й окрестности, следует выбрать наилучший переход по всем рассматриваемым окрестностям. Другой способ состоит в модификации шага 2.2 (a) и выборе не случайного решения, а наилучшего в k-й окрестности. Порядок смены окрестностей тоже может варьироваться.

На рис. 5.23 показано типичное поведение алгоритма VNS. Высокие пики на последних итерациях соответствуют переходам на шаге 2.2 (a), где выбирается случайным образом соседнее решение. Несмотря на заметное ухудшение по целевой функции, локальный поиск на шаге 2.2.(b) быстро возвращается к хорошим решениям. Тенденция к последовательному улучшению рекорда хорошо видна на этом рисунке.

Итерации
Локальный поиск с чередующимися окрестностями - student2.ru
Локальный поиск с чередующимися окрестностями - student2.ru

Рисунок-5.23. Поведение алгоритма VNS

Генетические алгоритмы

Идея генетических алгоритмов заимствована у живой природы и состоит в организации эволюционного процесса, конечной целью которого является получение оптимального решения сложной комбинаторной задачи. Разработчик генетических алгоритмов выступает в данном случае как «создатель», который должен правильно установить законы эволюции, чтобы достичь этой цели. Впервые эти нестандартные идеи были применены к решению оптимизационных задач в середине 70-х гг. прошлого столетия. Примерно через десять лет появились первые теоретические обоснования этого подхода. На сегодняшний день генетические алгоритмы доказали свою конкурентоспособность при решении многих NP-трудных задач, особенно в приложениях, где математические модели имеют сложную структуру, а применение стандартных методов типа ветвей и границ, динамического или линейного программирования крайне затруднено.

Стандартный генетический алгоритм начинает свою работу с формирования начальной популяции – конечного набора допустимых решений задачи. Эти решения могут быть выбраны случайным образом или получены с помощью конструктивных алгоритмов. Выбор начальной популяции не имеет значения для сходимости процесса в асимптотике, однако формирование «хорошей» начальной популяции (например, из множества локальных оптимумов) может заметно сократить время достижения глобального оптимума.

На каждом шаге эволюции с помощью вероятностного оператора селекции выбираются два решения, родители Локальный поиск с чередующимися окрестностями - student2.ru . Оператор скрещивания по этим решениям строит новое решение Локальный поиск с чередующимися окрестностями - student2.ru , которое затем подвергается небольшим случайным модификациям. Их принято называть мутациями. Затем решение добавляется в популяцию, а решение с наименьшим значением целевой функции удаляется из популяции. Общая схема такого алгоритма может быть записана следующим образом.

Алгоритм GA

1. Выбрать начальную популяцию.

2. Повторять, пока не выполнен критерий остановки.

2.1. Выбрать родителей Локальный поиск с чередующимися окрестностями - student2.ru из популяции.

2.2. Построить новое решение Локальный поиск с чередующимися окрестностями - student2.ru по решениям Локальный поиск с чередующимися окрестностями - student2.ru .

2.3. Модифицировать Локальный поиск с чередующимися окрестностями - student2.ru .

2.4. Обновить популяцию Локальный поиск с чередующимися окрестностями - student2.ru

3. Предъявить наилучшее решение в популяции Локальный поиск с чередующимися окрестностями - student2.ru

Остановимся подробнее на основных операторах этого алгоритма: селекции, скрещивании и мутации. Среди операторов селекции наиболее распространенными являются два вероятностных оператора: пропорциональной и турнирной селекции. При пропорциональной селекции вероятность выбрать решение в качестве одного из родителей зависит от качества этого решения: чем меньше значение целевой функции, тем выше вероятность, а сумма вероятностей равна 1. При турнирной селекции формируется случайное подмножество из элементов популяции, и среди них выбирается один элемент с наименьшим значением целевой функции. Турнирная селекция имеет определенные преимущества. Она не теряет своей избирательности, когда в ходе эволюции все элементы популяции становятся примерно равными по значению целевой функции. Операторы селекции строятся таким образом, чтобы с ненулевой вероятностью любой элемент популяции мог бы быть выбран в качестве одного из родителей. Более того, допускается ситуация, когда оба родителя представлены одним и тем же элементом популяции. Возвращаясь к алгоритму VNS, представляется разумным брать в качестве одного из родителей наилучший элемент популяции.

Как только два решения выбраны, к ним применяется вероятностный оператор скрещивания (crossover). Существует много различных версий этого оператора, среди которых простейшим, по-видимому, является однородный оператор. По родительским решениям он строит новое решение, присваивая каждой координате этого вектора с вероятностью 0,5 соответствующее значение одного из родителей. Если родительские вектора совпадали, скажем, по первой координате, то новый вектор «унаследует» это значение. Геометрически, для булевых векторов, оператор скрещивания случайным образом выбирает в гиперкубе вершину Локальный поиск с чередующимися окрестностями - student2.ru , которая принадлежит минимальной грани, содержащей вершины Локальный поиск с чередующимися окрестностями - student2.ru . Можно сказать, что оператор скрещивания старается выбрать новое решение где-то между родительскими, полагаясь на удачу. Более аккуратная процедура могла бы выглядеть таким образом. Новое решение выбирается как оптимальное решение исходной задачи на соответствующей грани гиперкуба. Если расстояние между Локальный поиск с чередующимися окрестностями - student2.ru достаточно велико, то задача оптимального скрещивания может совпадать с исходной. Тем не менее, даже приближенное решение этой задачи вместо случайного выбора заметно улучшает работу генетического алгоритма.

Оператор мутации с заданной вероятностью Локальный поиск с чередующимися окрестностями - student2.ru меняет значение каждой координаты на противоположное. Например, вероятность того, что Локальный поиск с чередующимися окрестностями - student2.ru вектор Локальный поиск с чередующимися окрестностями - student2.ru в ходе мутации перейдет в вектор Локальный поиск с чередующимися окрестностями - student2.ru равна Локальный поиск с чередующимися окрестностями - student2.ru Таким образом, с ненулевой вероятностью новое решение Локальный поиск с чередующимися окрестностями - student2.ru может перейти в любое другое решение, что и объясняет асимптотические свойства алгоритма. Отметим, что модификация решения Локальный поиск с чередующимися окрестностями - student2.ru может состоять не только в случайной мутации, но и в частичной перестройке решения алгоритмами локального поиска. Применение локального улучшения позволяет генетическому алгоритму сосредоточиться только на локальных оптимумах. Множество локальных оптимумов может оказаться экспоненциально большим, и на первый взгляд такой вариант алгоритма не будет иметь преимуществ. Однако экспериментальные исследования распределения локальных оптимумов свидетельствуют о высокой концентрации их в непосредственной близости от глобального оптимума. Это наблюдение отчасти объясняет работоспособность генетических алгоритмов. Если в популяции собираются локальные оптимумы, которые сконцентрированы в одном месте, и очередное решение Локальный поиск с чередующимися окрестностями - student2.ru выбирается где-то между двумя произвольными локальными оптимумами, то такой процесс имеет много шансов найти глобальный оптимум.

расстояние
Локальный поиск с чередующимися окрестностями - student2.ru
Локальный поиск с чередующимися окрестностями - student2.ru

Рисунок-5.24. Распределение локальных оптимумов

На рис. 5.24 показаны результаты численных экспериментов для задачи коммивояжера при Локальный поиск с чередующимися окрестностями - student2.ru . Каждая точка на рисунке соответствует локальному оптимуму по окрестности 2-замена. Ось Локальный поиск с чередующимися окрестностями - student2.ru показывает значение целевой функции для локальных оптимумов.

По оси Локальный поиск с чередующимися окрестностями - student2.ru откладывается расстояние от локального оптимума до глобального. Максимально возможное расстояние равно 532. Однако среднее расстояние не превышает 200. Это означает, что все локальные оптимумы имеют более 300 общих ребер с глобальным оптимумом. Они все достаточно близки друг к другу [36].

В заключение этой главы хочется еще раз подчеркнуть тот факт, что разработка численных методов для решения NP-трудных задач дискретной оптимизации дает широкий простор для творчества. Учет специфики решаемой задачи может подсказать структуру окрестностей, выбор схемы и идею самого алгоритма, но единого наилучшего для всех задач метода построить не удастся, и теоремы о небесплатных завтраках (No Free Lunch Theorems) – ясное тому подтверждение.

Упражнения

Упражнение 5.1. При построении примитивной нижней оценки для задачи коммивояжера можно сначала вычислять плату за въезд, в потом плату за выезд, но можно и наоборот (сначала плату за выезд, а потом плату за въезд). Покажите, что эти два варианта могут давать разные нижние оценки.

Упражнение 5.2.Покажите, что нижняя оценка линейного программирования из раздела 5.3.2 не хуже оптимального значения
в целочисленной задаче о назначениях.

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

Упражнение 5.4.Усовершенствуйте полиномиальный алгоритм для задачи о назначениях, понизив его трудоемкость до O(n3).

Упражнение 5.5.Приведите пример неотрицательной матрицы расстояний, для которой разница между оптимумом в задаче коммивояжера и длиной минимального 1-дерева была бы сколь угодно велика.

Упражнение 5.6.Покажите, что минимальные 1-деревья дают нижнюю оценку для задачи коммивояжера, которая не больше оптимума задачи о назначениях.

Упражнение 5.7.Докажите, что оценка 3/2 для алгоритма Кристофидеса – Сердюкова является неулучшаемой.

Упражнение 5.8.Известно, что выбор наилучшего эйлерова цикла при построении приближенного алгоритма с оценкой 3/2 по Кристофидесу и Сердюкову является NP-трудной задачей. Постройте для ее решения генетический алгоритм, алгоритм поиска с запретами и алгоритм имитации отжига.

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

Упражнение 5.10.Постройте генетический алгоритм и алгоритм поиска с чередующимися окрестностями для задачи Штейнера.

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

Упражнение 5.12.Покажите, что открытая задача коммивояжера является NP-трудной.

Упражнение 5.13.Сформулируйте задачу обхода конем всех полей шахматной доски как открытую задачу коммивояжера.

Упражнение 5.14.В задаче коммивояжера на узкое место требуется минимизировать длину максимального ребра вместо суммы длин ребер. Запишите эту задачу в терминах целочисленного линейного программирования.

Упражнение 5.15.Покажите, что задача коммивояжера на узкое место является NP-трудной.

Упражнение 5.6.Предположим, что коммивояжер должен посетить город Локальный поиск с чередующимися окрестностями - student2.ru сразу (не обязательно сразу) после города Локальный поиск с чередующимися окрестностями - student2.ru . Запишите эту задачу в терминах целочисленного линейного программирования.

Упражнение 5.17.Предположим, что коммивояжер должен посещать город i не раньше момента времени Локальный поиск с чередующимися окрестностями - student2.ru и не позже Локальный поиск с чередующимися окрестностями - student2.ru
Локальный поиск с чередующимися окрестностями - student2.ru Если он приезжает раньше срока, то вынужден ждать. Запишите эту задачу в терминах целочисленного линейного программирования.

Упражнение 5.18.Предположим, что коммивояжер посещает города с целью доставки грузов. В городе Локальный поиск с чередующимися окрестностями - student2.ru находится склад.

В каждый город Локальный поиск с чередующимися окрестностями - student2.ru требуется доставить Локальный поиск с чередующимися окрестностями - student2.ru единиц груза, Локальный поиск с чередующимися окрестностями - student2.ru . У коммивояжера имеется транспортное средство грузоподъемностью Локальный поиск с чередующимися окрестностями - student2.ru и Локальный поиск с чередующимися окрестностями - student2.ru для всех Локальный поиск с чередующимися окрестностями - student2.ru . Коммивояжер может возвращаться на склад, брать груз и снова направляться в непосещенные города. Его цель ­­­– минимизировать пройденное расстояние, посетить все города и вернуться на склад. Запишите эту задачу в терминах целочисленного линейного программирования.

Упражнение 5.19.В условиях предшествующей задачи будем предполагать, что коммивояжер может посещать любой город много раз и условие Локальный поиск с чередующимися окрестностями - student2.ru может нарушаться. Запишите эту задачу
в терминах частично-целочисленного линейного программирования.

Упражнение5.20.Покажите, что задача коммивояжера с экспоненциальной окрестностью из раздела 5.4.4 принадлежит классу PLS.

Упражнение 5.21.Приведите пример задачи распознавания,
которая не принадлежит классу NP (в предположении, что P ≠ NP).

Упражнение 5.22.Приведите пример задачи распознавания,
которая не принадлежит классу co-NP (в предположении, что P ≠ NP).

Упражнение 5.23.Приведите пример задачи распознавания, которая не принадлежит классам NP и co-NP (в предположении, что P ≠ NP).

Упражнение 5.24.Покажите, что если оптимизационная задача является NP-трудной, то существование для нее точной полиномиально проверяемой окрестности влечет совпадение классов NP и co-NP.

Упражнение 5.25.Покажите, что если оптимизационная задача является NP-трудной в сильном смысле, то существование для нее точной полиномиально проверяемой окрестности влечет совпадение классов P и NP.

Библиографический список

1. Кузнецов Ю.Н., Кузубов В.И. и Волощенко А.Б. Математическое программирование. – М.: Высшая школа, 1980. 40-55 с.

2. Калижанова А.У., Айткулов Ж.С. Моделирование систем управления. – Алматы.: КазНТУ им.К.И.Сатпаева. 2003. –32 с.

3. Калижанова А.У., Айткулов Ж.С. Методы теории систем. – Алматы.: КазНТУ им.К.И.Сатпаева. 2003. –37 с.

4. Кристофидес Н. Теория графов. Алгоритмический подход. М: Мир, 1978.

5. Wichmann B. A. Ackermann’s function: a study in the efficiency of calling procedures // BIT. 1976. Vol. 16. P.103–110.

6. Monma C., Suri S. Transitions in geometric minimum spanning trees // Discrete ans Computational Geometry. 1992. Vol. 8, N 3. P. 265–293.

7. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982.

8. Дементьев В. Т., Ерзин А. И., Ларин Р. М. и др. Задачи оптимизации иерархических структур. Новосибирск: Изд-во Новосибирского ун-та, 1996.

9. Robins G., Zelikovsky A. Improved Steiner tree approximation in graphs // Proc. 10th Ann. ACM-SIAM Symp. on Discrete Algorithms, ACM-SIAM, 2000. P. 770–779.

10. Hanan M. On Steiner’s problem with rectilinear distance // SIAM J. Applied Math. 1966. Vol. 14. P. 255–265.

11. Hwang F. K. On Steiner minimal trees with rectilinear distance // SIAM J. Applied Math. 1976. Vol. 30, N 1. P. 104–114.

12. Zelikovsky A. Z. An 11/8-approximation algorithm for the Steiner problem on networks with rectilinear distance // Janos Bolyai Mathematica Societatis Conf.: Sets, Graphs, and Numbers, 1992.
P. 733–745.

13. Erzin A. I., Cho J. D. A Deep-Submicron Steiner Tree // Mathematical and Computer Modeling. 2000. Vol. 31. P. 215–226.

14. Ерзин А. И., Чо Д. Д. Задача построения синхронизирующего сигнального дерева // Автоматика и телемеханика. Vol. 2003. № 3. С. 163–176.

15. Ерзин А. И. Введение в исследование операций: учеб. пособие. Новосибирск: НГУ, 2006.

16. Korte B, Vygen J. Combinatorial optimization. Berlin: Springer, 2007.

17. Кормен Т., Лейзерсон Ч., Ривест Р. и др. Алгоритмы. Построение и анализ. 2 издание. М.: Вильямс, 2009.

18. Deineko V., Tiskin A. Fast minimum-weight double-tree shortcutting for metric TSP: is the best one good enough? // ACM Journal on Experimental Algorithmics. 2009. Vol. 14. N 4.6.

19. Сигал И. Х., Иванова А. П. Введение в прикладное дискретное программирование: модели и вычислительные алгоритмы. М.: ФИЗМАТЛИТ, 2007.

20. Пападимитриу Х., Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность. М.: Мир, 1985.

21. Алексеева Е. В. Построение математических моделей целочисленного линейного программирования. Примеры и задачи. Новосибирск: НГУ, 2012.

22. Yannakakis M. Computational complexity. In: Aarts E., Lenstra J. (Eds.) Local search in combinatorial optimization. NY: Wiley, 1997.

23. Кочетов Ю. А. Методы локального поиска для дискретных задач размещения Модели и алгоритмы. Saarbrucken: Lambert Academic Publishing, 2011.

24. Кочетов Ю. А. Вычислительные возможности локального поиска в комбинаторной оптимизации // Журнал вычислительной математики и математической физики. 2008. Т. 48, № 5. С. 788–807.

25. Grover L. K. Local search and the local structure of NP-complete problems // Operations Research Letters. 1992. Vol. 12, N 4. P. 235–244.

26. Angel E., Zissimopoulos V. On the classification of NP-complete problems in terms of their correlation coefficient // Discrete Appl. Math. 2000. Vol. 99. P. 261–277.

27. Burkard R. E., Deineko V. G., Woeginger G. J. The traveling salesman problem and the PQ-tree // Lecture Notes in Computer Science, Vol. 1084. Berlin: Springer, 1996. P. 490–504.

28. Gutin G. Exponential neighborhood local search for the traveling salesman problem // Comput. Oper. Res. 1999. Vol. 26. P. 313–320.

29. Gutin G., Yeo A. Small diameter neighborhood graphs for the traveling salesman problem: four moves from tour to tour // Comput. Oper. Res. 1999. Vol. 26. P. 321–327.

30. Talbi El-G. Metaheuristics: From Design to Implementation (Wiley Series on Parallel and Distributed Computing). Wiley, 2009.

31. Charon I., Hudry H. The noising methods. A survey. In: Ribeiro C. C., Hansen P. (eds.) Meta-heuristics: Advances and Trends in Local Search Paradigms for Optimization. Boston: Kluwer. Acad. Publ., 1998. P. 245–262.

32. Kirkpatrick S., Gelatt C. D., Vecchi M. P. Optimization by simulated annealing // Science. 1983. Vol. 220. P.671–680.

33. Кемени Дж., Снелл Дж. Конечные цепи Маркова. М.: Наука, 1970.

34. Glover F., Laguna M. Tabu Search. Dordrecht: Kluwer Acad. Publ., 1997.

35. Mladenović N., Hansen P. Variable neighbourhood search // Computers and Operations Research, 1997. Vol. 24. P. 1097–1100.

36. Boese K. D., Kahng A. B., Muddu S. A new adaptive multi-start technique for combinatorial global optimizations // Oper. Res. Lett. 1994. Vol. 16, N 2. P.101–114.

37. Wolsey L. A. Integer Programming. N. Y.: John Wiley & Sons, Inc, 1998.

38. Дасгупта С., Пападимитриу Х., Вазирани У. Алгоритмы (Перевод с английского А. С. Куликова под редакцией А. Шеня) М.: МЦНМО, 2014. – 320 с.

Учебное издание

Наши рекомендации