Главная » Просмотр файлов » Диссертация

Диссертация (1149246), страница 4

Файл №1149246 Диссертация (Алгоритмы поиска максимальных независимых множеств графа и экспериментальная оценка их эффективности) 4 страницаДиссертация (1149246) страница 42019-06-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Эта оценка доказывала тот факт, что N P -сложную задачу можно решить быстрее, чем методомполного перебора.В работе Хука [44] изучалась взаимосвязь максимального независимого множества и специального класса двудольных графов. На основе этого был представлен способ определения начального решения для задачи о наибольшемнезависимом множестве.19Одним из наиболее успешных алгоритмов поиска наибольшей клики сталалгоритм Балаша (Balas). Он реализовал подход, отличающийся от другихалгоритмов того времени. Идея заключается в следующем.

Для начала находится индуцированный триангулированный подграф исследуемого графа. Внайденном подграфе определяется наибольшая клика. Эта клика представляетсобой потенциальное решение задачи о наибольшей клики, а так же обеспечивает нижнюю границу для других возможных решений. Далее используeтсяпроцедуру окраски с целью расширения найденного подграфа. Преимуществоподхода, предложенного Балашем, заключается в том, что он позволяет уменьшить количество подзадач, полученных от каждого узла дерева поиска, что всвою очередь позволяет уменьшить само дерево поиска. В результате сравненияс другими алгоритмами было установлено, что дерево поиска, порожденноеалгоритмом Балаша, действительно меньше, чем у других алгоритмов [57].Затем в 1986 году Робсон (Robson) [60] модифицировал рекурсивный алгоритм Тарьяна–Трояновски.

Его алгоритм стал намного компактнее своегопредшественника. Кроме этого Робсону удалось провести тщательную процедуру теоретической оценки сложности предложенного алгоритма. Согласно анализу рекуррентных соотношений, приведенных в [60], сложность его алгоритма:O(2 0.276n ). В основе этого алгоритма лежит соотношение:ms(G) = max(1 + ms(G − N (B)), ms(G − B)).Основная идея заключается в том, что любое максимальное независимое множество в графе G либо содержит некоторую вершину B (и, значит, не содержитсоседей этой вершины N (B)), либо нет (тогда поиск максимального независимого множества проводится в подграфе G−B).

Вся процедура поиска искомогомножества базируется на детальном рассмотрении конструкций максимальныхнезависимых множеств в зависимости от степени вершин графа.20В 1990 году Пардалос и Филлипс (Phillips) [56] представили алгоритм, основанный на постановке задачи поиска максимума клик в виде задачи глобальнойоптимизации.В 2001 году Робсон [61] несколько модифицировал свой алгоритм 86-го года,рассмотрев детально конструкции искомых множеств в зависимости от болеевысоких степеней (>3) вершин исследуемого графа.

Вслед за этим, Фоминв своей работе [36] 2006 года представил алгоритм, который базируется насоотношении, представляющим собой несколько модифицированное соотношение Робсона:mis(G) = max{mis(G − v − M (v)), 1 + mis(G − N [v])},где M (v) – это множество отражений вершины v. Ему, как и Робсону, удалосьпровести анализ теоретической оценки сложности разработанного алгоритма.Согласно расчетам Фомина оценка временной сложности его алгоритма:O(2 0.288n ).п.

1. Метод полного перебора и метод поиска свозвращением (алгоритм Брона-Кербоша)В силу того, что количество всевозможных вариантов подмножеств вершинграфа конечно, хоть и очень велико для графов больших размерностей, самымпростым и очевидным способом построения максимальных независимых множеств является метод полного перебора.Например, наибольшее независимое множество можно найти с помощьюследующего алгоритма [9]:Вход: граф G(V, E)Выход: наибольшее независимое множество Xm := 0 {наилучшее известное значение мощности искомогонезависимого множества}21construct S(V ) {множество всевозможных подмножеств V }for Y ∈ S(V ) doif Y : ∀ u, v ∈ Y (u, v) ∈/ E & |Y | > m thenm := |Y |; X := Y {наилучшее известное значение X}end ifend forВ случае нахождения всех максимальных независимых множеств каждоенайденное множество Y : ∀ u, v ∈ Y (u, v) ∈/ E, необходимо проверять намаксимальную независимость.

Для этого нужно определять, является ли множество Y подмножеством какого-либо другого найденного независимого множества.С учетом того, что число всевозможных вариантов подмножеств множествавершин V графа G равно 2n , где n = |V |, вычислительная сложность полногоперебора есть O(2n ).Основным способом уменьшения количества рассматриваемых вариантовявляется поиск с возвращением, именно этот метод лежит в основе алгоритмаБрона-Кербоша [27]. Ниже представлен псевдокод этого алгоритма [9].Вход: граф G(V, E), заданный списками смежности H(v){∀v ∈ V H(v) = {r ∈ V | (v, r) ∈ E}}Выход: последовательность максимальных независимых множествk := 0 {количество элементов в текущем независимом множестве}S[k] := ∅ {S[k] – независимое множество из k вершин}Q− [k] := ∅ {Q− [k] – множество вершин, использованных длярасширения S[k]}Q+ [k] := V {Q+ [k] – множество вершин, которые можно использоватьдля расширения S[k]}M1 : {шаг вперед}select v ∈ Q+ [k] {расширяющая вершина}S[k + 1] := S[k] ∪ {v} {расширенное множество}22Q− [k + 1] := Q− [k] \ H(v) {вершина v использована для расширения}Q+ [k + 1] := Q+ [k] \ (H(v) ∪ {v}) {все вершины, смежные с v, не могутбыть использованы для расширения}k := k + 1M2 : {проверка}for u ∈ Q− [k] doif H(v) ∩ Q+ [k] = ∅ thengoto M3 {можно возвращаться}end ifend forif Q+ [k] = ∅ thenif Q− [k] = ∅ thenyield S[k] {множество S[k] максимально}end ifgoto M3 {можно возвращаться}elsegoto M1 {можно идти вперед}end ifM3 : {шаг назад}v = last(S[k]) {последний добавленный элемент}k := k − 1S[k] := S[k + 1] − {v}Q− [k] := Q− [k] ∪ {v} {вершина уже добавлялась}Q+ [k] := Q+ [k] \ {v}if k = 0 & Q+ [k] = ∅ thenstop {перебор завершен}elsegoto M2 {переход на проверку}end if23Программная реализация метода полного перебора для поиска наибольшегонезависимого множества и для перечисления всех максимальных независимыхмножеств представлена в приложении 1 и приложении 2.

Алгоритм БронаКербоша реализован без goto и явной рекурсии, с ним можно ознакомитьсяв приложении 3.п. 2. Алгоритм Робсона и его модификацияВ своей работе [60] Робсон представил алгоритм, предназначенный для вычисления мощности наибольшего независимого множества. Псевдокод алгоритма содержит комментарии, используя которые можно модифицировать этоталгоритм для нахождения наибольшего независимого множества, а не толькоего мощности. В представленном ниже алгоритме Робсона цифрами отмеченыстрочки, которые необходимо изменить.Рассмотрим основные обозначения в алгоритме:– d(v) – степень вершины v;– N (v) – множество соседей вершины v (соседями называются смежныевершины);– N (v) = N (v) + v;– N 2 (v) – множество соседей вершин из N (v), за исключением самой вершины v;– вершина A доминирует над вершиной B, если N (A) ⊂ N (B).Основная функция ms(G):function ms(G : graph) : integer;beginif not connected (G) thenbeginC := smallest connected component of G;(1) return ms(G − C) + (if |C| ≤ 2 then 1 else ms(C))24end;(2) if |G| ≤ 1 then return |G|;choose A, B vertices of G such that(i) d(A) is minimal and(ii) (A, B) is an edge of G and d(B) is maximal over all neighbors ofvertices with degree d(A);(3) if d(A) = 1 then return 1 + ms(G − N (A));if d(A) = 2 thenbeginB ′ := N (A) − B; {the other neighbor of A}(4) if edge(B, B ′ ) then return 1 + ms(G − N (A));(5) return max(2 + ms(G − N (B) − N (B ′ )), 1 + ms2 (G − N (A), N 2 (A)))end;(6) if d(A) = 3 then return max(ms2 (G − A, N (A)), 1 + ms(G − N (A)))if A dominates B then return ms(G − B);(7) return max(ms(G − B), 1 + ms(G − N (B)))end;Вспомогательная функция ms1 (G, S):function ms1 (G : graph; S : vertexset): integer;{S = {s1 , s2 | d(s1 ) ≤ d(s2 )}}beginif d(s1 ) ≤ 1 then return ms(G);if edge(s1 , s2 ) thenif d(s1 ) ≤ 3 then return ms(G)(8) else return max(ms(G − N (s1 )), ms(G − N (s2 ))) + 1;if N (s1 ) ∩ N (s2 ) ̸= ∅ then return ms1 (G − N (s1 ) ∩ N (s2 ), S);if d(s2 ) = 2 thenbegin25E, F :=the elements of N (s1 );{independent sets to be considered contains s1 or (s2 , E and F )}(9) if edge(E, F ) then return 1 + ms(G − N (s1 ));(10) if N (E) + N (F ) − s1 ⊂ N (s2 )then return 3 + ms(G − N (s1 ) − N (s2 )){N (s1 ) + N (s2 ) has no 4 element independent set containing s1 or s2and [E, F, s2 ] dominates every other 3 element independent set}(11) elsereturn max(1 + ms(G − N (s1 )), 3 + ms(G − N (E) − N (F ) − N (s2 )))end;(12) return max(ms(G − N (s2 )), ms2 (G − N (s1 − s2 , N (s2 ))) + 1{independent set contains s2 or (s1 and two element of N (s2 ))}end {of ms1 };Вспомогательная функция ms2 (G, S)function ms2 (G : graph; S : vertexset): integer;begin {ms2 .

The elements of S are s1 , s2 , . . . with d(si ) ≤ d(si+1 )}(13) if |S| ≤ 1 then return 0;(14) if |S| = 2 then if edge(s1 , s2 ) then return 0(15) else return 2 + ms(G − N (s1 ) − N (s2 ));if |S| = 3 thenbegin(16) if d(s1 ) = 0 then return 1 + ms1 (G − s1 , S − s1 );(17) if edge(s1 , s2 ) and edge(s2 , s3 ) and edge(s3 , s1 ) then return 0;if edge(si , sj ) and edge(si , sk ) (j ̸= k) then(18) return 2 + ms(G − N (sj ) − N (sk ));if edge(si , sj ) then(19) return 1 + ms1 (G − N (sk ), [si , sj ])(i ̸= k ̸= j) :{independent set cannot contain si and sj and so contains one26of them and sk .}if vertex v ∈ N (si ) ∩ N (sj )(i ̸= j) then return ms2 (G − v, S);{independent set contains si and sj and so not v.}(20) if d(s1 ) = 1 then return 1 + ms1 (G − N (s1 ), S − s1 );(21) returnmax(1 + ms1 (G − N (s1 ), S − s1 ), 2 + ms2 (G − N (s2 ) − N (s3 ) − s1 , N (s1 )))end {|S| = 3};if |S| = 4 thenif G has a vertex of degree ≤ 3 then return ms(G)(22) else return max(1 + ms(G − N (s1 )), ms2 (G − s1 , S − s1 ));return ms(G)end {of ms2 }Ниже представлен модифицированный алгоритм Робсона, позволяющий определить элементы наибольшего независимого множества, а не только его мощность.

Приведены только измененные строки псевдокода.Основная функция ms(G : graph) : vertexset(1) return ms(G − C) ∪ (if |C| ≤ 2 then {v | v ∈ C} else ms(C));В случае, если наименьшая компонента связности C состоит из двух и менеевершин, в независимое множество включается одна любая вершина v ∈ C.(2) if |G| ≤ 1 then return {G};(3) if d(A) = 1 then return {A} ∪ ms(G − N (A));Мощность независимого множества увеличивается на единицу за счет добавления к нему вершины A.

Дальнейший поиск максимального независимогомножества осуществляется в графе G − N (A).(4) if edge(B, B ′ ) then return {A} ∪ ms(G − N (A));(5) max1 := 2 + |ms(G − N (B) − N (B ′ ))|;max2 := 1 + |ms2 (G − N (A), N 2 (A))|;if max(max1 , max2 ) = max127then return {B, B ′ } ∪ ms(G − N (B) − N (B ′ ));else return {A} ∪ ms2 (G − N (A), N 2 (A));(6) if d(A) = 3 then max1 := |ms2 (G − A, N (A))|;max2 := 1 + |ms(G − N (A))|;if max(max1 , max2 ) = max1 then return ms2 (G − A, N (A));else return {A} ∪ ms(G − N (A))(7) max1 := |ms(G − B)|; max2 := 1 + |ms(G − N (B))|;if max(max1 , max2 ) = max1 then return ms(G − B);else return {B} ∪ ms(G − N (B));end {of ms}Вспомогательная функция ms1 (G : graph, S : vertexset) : vertexset(8) else max1 := |ms(G − N (s1 ))|; max2 := |ms(G − N (s2 ))|;if max(max1 , max2 ) = max1 then return {s1 } ∪ ms(G − N (s1 ));else return {s2 } ∪ ms(G − N (s2 ));(9) if edge(E, F ) then return {s1 } ∪ ms(G − N (s1 ));(10) if N (E) + N (F ) − s1 ⊂ N (s2 )then return {E, F, s2 } ∪ ms(G − N (s1 ) − N (s2 ));(11) max1 := 1 + |ms(G − N (s1 ))|;max2 := 3 + |ms(G − N (E) − N (F ) − N (s2 ))|;if max(max1 , max2 ) = max1 then return {s1 } ∪ ms(G − N (s1 ));else return {E, F, s2 } ∪ ms(G − N (E) − N (F ) − N (s2 ));(12) max1 := |ms(G − N (s2 ))|;max2 := |ms2 (G − N (s1 ) − s2 , N (s2 ))|;if max(max1 , max2 ) = max1 then return {s2 } ∪ ms(G − N (s2 ));else return {s1 } ∪ ms2 (G − N (s1 ) − s2 , N (s2 ));end {of ms1 }Вспомогательная функция ms2 (G : graph, S : vertexset) : vertexsetbegin {ms2 .

Характеристики

Список файлов диссертации

Алгоритмы поиска максимальных независимых множеств графа и экспериментальная оценка их эффективности
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7021
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее