Деревья для симметричных матриц

Вес минимального остовного дерева, как мы уже знаем, дает оценку снизу, но ее можно улучшить. Остовное дерево состоит из Деревья для симметричных матриц - student2.ru ребра, а гамильтонов цикл содержит Деревья для симметричных матриц - student2.ru ребер. Добавление одного ребра к остовному дереву порождает так называемые
1-деревья. Они тоже дают нижние оценки. Итак, мы хотим найти гамильтонов цикл минимального веса, т. е. ровно Деревья для симметричных матриц - student2.ru ребер, которые:

- покрывают все вершины и образуют связный граф,

- имеют минимальный суммарный вес,

- каждая вершина инцидентна ровно двум ребрам.

Ослабим последнее условие, заменив его следующим:

- одна заданная вершина инцидентна ровно двум ребрам.

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

Задача о назначениях

Рассмотрим следующую задачу о назначении рабочих на станки [16, 21]. Дано: Деревья для симметричных матриц - 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 для всех Деревья для симметричных матриц - student2.ru

Теорема 5.8. Пусть для некоторого вектора Деревья для симметричных матриц - student2.ru существует набор Деревья для симметричных матриц - student2.ru -минимальных элементов Деревья для симметричных матриц - student2.ru по одному в каждой строке и каждом столбце. Тогда этот набор является оптимальным решением задачи о назначениях.

Доказательство. Решение Деревья для симметричных матриц - student2.ru является допустимым, и Деревья для симметричных матриц - student2.ru

В правой части равенства первая сумма является минимальной среди всех допустимых назначений. Вторая сумма является константой. Значит, полученное решение является оптимальным. ∎

Определение 5.1. Для вектора Деревья для симметричных матриц - student2.ru выделим в каждой строке по одному Деревья для симметричных матриц - student2.ru -минимальному элементу и назовем его Деревья для симметричных матриц - student2.ru -основой. Другие Деревья для симметричных матриц - student2.ru -минимальные элементы будем называть альтернативными
Деревья для симметричных матриц - student2.ru -основами. Число столбцов матрицы Деревья для симметричных матриц - student2.ru без Деревья для симметричных матриц - student2.ru -основ назовем дефектом.

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

Описание одного этапа

1. Выберем столбец без Деревья для симметричных матриц - student2.ru -основы и обозначим его Деревья для симметричных матриц - student2.ru .

2. Увеличим Деревья для симметричных матриц - student2.ru на максимальное Деревья для симметричных матриц - student2.ru так, чтобы все
Деревья для симметричных матриц - student2.ru -минимальные элементы остались Деревья для симметричных матриц - student2.ru -минимальными (возможно Деревья для симметричных матриц - student2.ru ). Получим для некоторой строки Деревья для симметричных матриц - student2.ru новый Деревья для симметричных матриц - student2.ru -минимальный элемент Деревья для симметричных матриц - student2.ru , назовем его альтернативной основой для строки Деревья для симметричных матриц - student2.ru (рис. 5.13).

Деревья для симметричных матриц - student2.ru
Деревья для симметричных матриц - student2.ru

Рисунок-5.13. Появление альтернативной основы

3. Для строки Деревья для симметричных матриц - student2.ru столбец Деревья для симметричных матриц - student2.ru с Деревья для симметричных матриц - student2.ru -основой пометим меткой Деревья для симметричных матриц - student2.ru . (рис. 5.14).

Деревья для симметричных матриц - student2.ru
Деревья для симметричных матриц - student2.ru
Деревья для симметричных матриц - student2.ru

Рисунок-5.14. Выбор второго столбца

4.

Деревья для симметричных матриц - 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 . Пометим столбец Деревья для симметричных матриц - student2.ru меткой Деревья для симметричных матриц - student2.ru (рис. 5.15) и будем продолжать этот процесс до тех пор, пока не встретим столбец с двумя или более основами.

Рисунок-5.15. Получение новой основы

5. Строим новый набор Деревья для симметричных матриц - student2.ru -основ. Заменой основы в строке назовем следующую операцию: альтернативная основа становится основой, а старая перестает быть основой. Произведем замену основ в строке, где лежит последняя альтернативная основа (строка Деревья для симметричных матриц - student2.ru ). Тогда в столбце Деревья для симметричных матриц - student2.ru число основ уменьшится на 1, но останется положительным (рис. 5.16).

Деревья для симметричных матриц - student2.ru
Деревья для симметричных матриц - student2.ru
Деревья для симметричных матриц - student2.ru
Деревья для симметричных матриц - student2.ru
Деревья для симметричных матриц - student2.ru

Рисунок-5.16. Замена основы

В столбце, где появилась новая основа, возьмем старую основу и в этой строке тоже проведем замену основ и так будем переходить от одного столбца к другому, пока не доберемся до столбца Деревья для симметричных матриц - student2.ru . В итоге, столбец Деревья для симметричных матриц - student2.ru получит основу, а число основ в столбце Деревья для симметричных матриц - student2.ru уменьшится на 1 (рис. 5.17).

Деревья для симметричных матриц - student2.ru
Деревья для симметричных матриц - student2.ru
Деревья для симметричных матриц - student2.ru
Деревья для симметричных матриц - student2.ru
Деревья для симметричных матриц - student2.ru

Рисунок-5.17. Новое распределение основ

Посчитаем трудоемкость одного этапа. Мы последовательно рассматриваем сначала один столбец Деревья для симметричных матриц - student2.ru , затем два столбца Деревья для симметричных матриц - student2.ru и т. д. Всего шагов может быть не больше n. На каждом шаге надо выбрать Деревья для симметричных матриц - student2.ru , что требует Деревья для симметричных матриц - student2.ru операций. Значит, всего требуется Деревья для симметричных матриц - student2.ru операций для одного этапа и Деревья для симметричных матриц - student2.ru операций для всего алгоритма.

Локальный поиск

Идеи локального поиска при решении задач дискретной оптимизации являются, по-видимому, наиболее естественными и наглядными. Первые шаги их реализации относятся к началу 50-х, началу 60-х годов XX столетия. Они связаны, в основном, с задачей коммивояжера. Позднее эти идеи использовались для задач размещения, построения сетей, расписаний и др. Однако, довольно быстро выяснилось, что методы локального улучшения не гарантируют нахождения глобального оптимума, и отсутствие концептуального прогресса ослабило интерес к данному направлению. В последние 20 лет наблюдается возрождение этого подхода. Оно связано как с новыми алгоритмическими схемами, построенными на аналогиях с живой и неживой природой, так и с новыми теоретическими результатами в области локального поиска. Изменился общий взгляд на построение локальных алгоритмов. Требование монотонного улучшения по целевой функции больше не является доминирующим. Наиболее мощные алгоритмы допускают произвольное ухудшение, и многие из них могут рассматриваться как способ порождения конечных неразложимых цепей Маркова на подходящем множестве состояний. В данном разделе приводится краткое введение в эту бурно развивающуюся область дискретной оптимизации.

5.4.1. Основные определения

Пусть тройка Деревья для симметричных матриц - student2.ru задает задачу дискретной оптимизации с множеством входов Деревья для симметричных матриц - student2.ru (исходных данных), конечным множеством допустимых решений Деревья для симметричных матриц - student2.ru и целевой функцией Деревья для симметричных матриц - student2.ru
Деревья для симметричных матриц - student2.ru Для определенности будем считать, что требуется найти минимум функции f на множестве Деревья для симметричных матриц - student2.ru и само решение Деревья для симметричных матриц - student2.ru , на котором этот минимум достигается. Решение Деревья для симметричных матриц - student2.ru будем называть глобальным минимумом и множество глобальных минимумов будем обозначать через Деревья для симметричных матриц - student2.ru . Для каждого Деревья для симметричных матриц - student2.ru определим функцию окрестности Деревья для симметричных матриц - student2.ru которая для каждого допустимого решения задает множество соседних решений, в некотором смысле близких к данному. Множество Деревья для симметричных матриц - student2.ru будем называть окрестностью решения Деревья для симметричных матриц - student2.ru в множестве Деревья для симметричных матриц - student2.ru . Функция окрестности может быть достаточно сложной, и отношение соседства не всегда симметрично.

Определение 5.2.Решение Деревья для симметричных матриц - student2.ru называется локальным минимумом по отношению к функции Деревья для симметричных матриц - student2.ru , если Деревья для симметричных матриц - student2.ru для всех Деревья для симметричных матриц - student2.ru .

Множество локальных минимумов обозначим через Деревья для симметричных матриц - student2.ru . Это множество, очевидно, зависит от выбора функции Деревья для симметричных матриц - student2.ru

Определение 5.3.Функция окрестности Деревья для симметричных матриц - student2.ru называется точной, если Деревья для симметричных матриц - student2.ru .

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

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

1. Линейное программирование. Геометрически алгоритм симплекс метода можно интерпретировать как движение по вершинам многогранника допустимой области. Вершина не является оптимальной, если и только если существует смежная с ней вершина с меньшим значением целевой функции. Алгебраически, предполагая невырожденность задачи, базисное допустимое решение не является оптимальным, если и только если оно может быть улучшено локальным изменением базиса, т. е. заменой одной базисной переменной на небазисную. Получающаяся таким образом окрестность является точной и имеет полиномиальную мощность.

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

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

На каждом шаге локального улучшения функция окрестности задает множество возможных направлений движения. Часто это множество состоит из нескольких элементов и имеется определенная свобода в выборе следующего решения. Правило выбора может оказать существенное влияние на трудоемкость алгоритма и результат его работы. Например, в задаче о максимальном потоке алгоритм Форда – Фалкерсона (который тоже можно рассматривать как вариант локального улучшения) имеет полиномиальную временную сложность при выборе кратчайшего пути для увеличения потока и экспоненциальную временную сложность без гарантии получить глобальный оптимум при произвольном выборе пути. Таким образом, при разработке алгоритмов локального поиска важно не только правильно определить окрестность, но и верно задать правило выбора направления спуска.

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

Определение 5.4.Графом соседства Деревья для симметричных матриц - student2.ru будем называть взвешенный ориентированный граф, вершинами которого являются допустимые решения задачи, а дугами – упорядоченные пары Деревья для симметричных матриц - student2.ru если Деревья для симметричных матриц - student2.ru Веса в этом графе приписаны вершинам и равны соответствующим значениям целевой функции.

Граф соседства Деревья для симметричных матриц - student2.ru (neighborhood graph) иногда называют ландшафтом целевой функции или просто ландшафтом (landscape, fitness landscape). При определении функции окрестности важно следить за тем, чтобы получающийся граф был строго связен, то есть для каждой пары вершин Деревья для симметричных матриц - student2.ru существовал путь из Деревья для симметричных матриц - student2.ru в Деревья для симметричных матриц - student2.ru Это свойство является важным при анализе асимптотического поведения алгоритмов, например, вероятностных метаэвристик, о которых пойдет речь ниже. Если же это свойство не выполняется, то стараются получить хотя бы свойство вполне связности, когда из любой вершины существует путь в вершину Деревья для симметричных матриц - student2.ru . Если же и этого свойства нет, то теряется уверенность в достижении глобального оптимума локальными методами. Приходится ограничиваться локальными оптимумами, либо переопределять функцию окрестности.

Анализ эффективности локального поиска условно можно разделить на два направления: эмпирические и теоретические исследования. Как это ни странно, но они дают разные оценки возможностям этого подхода [19, 20].

Эмпирические результаты. Для многих NP-трудных задач локальный поиск позволяет находить приближенные решения, близкие по целевой функции к глобальному оптимуму. Трудоемкость алгоритмов часто оказывается полиномиальной, причем степень полинома достаточно мала. Так, для задачи о разбиении множества вершин графа на две равные части разработаны алгоритмы локального поиска минимизации разреза со средней трудоемкостью Деревья для симметричных матриц - student2.ru , которые дают всего несколько процентов погрешности.

Для задачи коммивояжера алгоритмы локального поиска являются наилучшими с практической точки зрения. Один из таких алгоритмов с окрестностью Лина – Кернигана в среднем имеет погрешность около 2 %, и максимальная размерность решаемых задач достигает 1 000 000 городов. На случайно сгенерированных задачах такой колоссальной размерности итерационная процедура Джонсона позволяет находить решения с отклонением около 0,5 % за несколько минут на современных компьютерах.

Для задач теории расписаний, размещения, покрытия, раскраски графов и многих других NP-трудных задач алгоритмы локального поиска показывают превосходные результаты. Более того, их гибкость при изменении математической модели, простота реализации и наглядность превращают локальный поиск в мощное средство для решения практических задач.

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

1) минимальная точная окрестность может иметь экспоненциальную мощность;

2) число шагов для достижения локального оптимума может оказаться экспоненциальным;

3) значение локального оптимума может сколь угодно сильно отличаться от глобального оптимума.

Эти результаты подталкивают к более пристальному рассмотрению задачи нахождения локального оптимума, ее трудоемкости в среднем и худшем случаях. Абстрактная (массовая) задача локального поиска Деревья для симметричных матриц - student2.ru задается множеством ее индивидуальных примеров, каждый из которых однозначно определяет целевую функцию, функцию окрестности и множество допустимых решений.

Определение 5.5. Задача Деревья для симметричных матриц - student2.ru принадлежит классу PLS (polynomial time local search), если за полиномиальное время от длины записи исходных данных можно выполнить следующие три операции:

1) Для произвольного примера Деревья для симметричных матриц - student2.ru проверить его корректность и, если Деревья для симметричных матриц - student2.ru , найти некоторое допустимое решение.

2) Для любого решения проверить, является ли оно допустимым и, если да, вычислить значение целевой функции для него.

3) Узнать, является ли данное решение локальным оптимумом и, если нет, найти в его окрестности решение с лучшим значением целевой функции.

Грубо говоря, в классе PLS содержатся все задачи локального поиска, для которых проверка локальной оптимальности может быть осуществлена за полиномиальное время. Этот класс не пуст, так как задача коммивояжера с окрестностью 2-замена содержится в нем. Следующая теорема говорит о том, что, скорее всего, в этом классе нет NP-трудных задач.

Теорема 5.9.Если задача Деревья для симметричных матриц - student2.ru из класса PLS является NP-трудной, то NP = co-NP.

В классе PLS содержатся полиномиально разрешимые задачи, то есть задачи, для которых можно найти локальный оптимум за полиномиальное время. Многие NP-трудные задачи без весовых функций с любой полиномиально проверяемой окрестностью относятся к таковым: задачи о клике, о покрытии, о независимом множестве и др. Задача коммивояжера с матрицей Деревья для симметричных матриц - student2.ru , состоящей из 1 и 2, будет таковой при любой полиномиально проверяемой окрестности. Однако, в общем случае вопрос о вычислительной сложности нахождения локального оптимума пока остается открытым. Так же, как и для задач распознавания, в классе PLS можно определить сведение одной задачи к другой и доказать теорему о существовании PLS-полных задач. Это наиболее трудные задачи в этом классе. Существование полиномиального алгоритма хотя бы для одной из них влечет полиномиальную разрешимость для всех задач из класса PLS. Задача коммивояжера с окрестностью k-замена является PLS-полной при Деревья для симметричных матриц - student2.ru . Более того, удается показать, что стандартный алгоритм локального улучшения для этой задачи требует в худшем случае экспоненциального числа итераций независимо от того, какое правило замещения будет применяться. Более подробно с теорией PLS-полных задач можно познакомиться в [23, 25].

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