Нижегородский государственный университет им. Н.И.Лобачевского
Опубликован: 27.09.2006 | Доступ: свободный | Студентов: 3534 / 125 | Оценка: 4.44 / 4.11 | Длительность: 13:45:00
Специальности: Программист, Математик
Лекция 11:

Рационализация переборных алгоритмов

< Лекция 10 || Лекция 11: 123 || Лекция 12 >
Аннотация: Рационализация поиска наибольшего независимого множества. Хордальные графы. Рационализация алгоритма для задачи о раскраске вершин.

Рационализация поиска наибольшего независимого множества

Известны различные приемы сокращения перебора при использовании описанной стратегии исчерпывающего поиска. Один из них основан на следующем наблюдении. Допустим, в графе G, для которого нужно найти наибольшее независимое множество, имеются две вершины a и b, такие, что каждая вершина, отличная от b и смежная с вершиной a, смежна и с вершиной b. Иначе говоря, V(a)-\{b\} \subseteq V(b). Будем говорить в этом случае, что вершина b поглощает вершину a. Если при этом вершины a и b смежны, то скажем, что вершина b смежно поглощает вершину a. Вершину b в этом случае назовем смежно поглощающей. Например, в графе, изображенном на рис. 11.1, вершина 2 смежно поглощает вершины 1 и 3. Вершины 5 и 6 в этом графе тоже являются смежно поглощающими.


Рис. 11.1.

Теорема 1. Если вершина b является смежно поглощающей в графе G, то \alpha (G-b)=\alpha (G).

Доказательство. Допустим, вершина b смежно поглощает вершину a в графе G. Пусть X - наибольшее независимое множество графа G. Если X не содержит вершину b, то оно является наибольшим независимым множеством и в графе G-b, так что в этом случае \alpha (G-b)=\alpha (G). Предположим, что множество X содержит вершину b. Тогда ни одна вершина из множества V(b) не принадлежит X. Значит, X не содержит вершину a и ни одну вершину из множества V(a). Но тогда множество (X-\{ b\})\cup \{ a\} тоже будет независимым, причем оно целиком содержится в графе G-b, а число элементов в нем такое же, как в множестве X. Значит, и в этом случае \alpha (G-b)=\alpha(G).

Итак, если мы удалим из графа смежно поглощающую вершину b, то получим граф с тем же числом независимости. Так как новый граф является порожденным подграфом исходного графа G, то каждое наибольшее независимое множество нового графа будет наибольшим независимым множеством исходного. Этот прием называется "сжатием по включению". Исследование применимости и применение операции сжатия по включению к каждому встречающемуся подграфу требуют, конечно, дополнительных расходов времени (каких?), но могут привести к существенному сокращению дерева подзадач. Для некоторых графов задача о независимом множестве может быть решена с помощью одних только сжатий по включению. Таков, например, граф pK_{2}, и вообще любой лес. Действительно, любая вершина, смежная с листом, поглощает этот лист. Рассмотрим более широкий класс графов, для которых этот прием эффективен.

< Лекция 10 || Лекция 11: 123 || Лекция 12 >
Петр Петров
Петр Петров

произведение графов К(2)*О(4) фактически 4 отдельных графа К(2)?

Александр Лаврентьев
Александр Лаврентьев

много инструкций вида if - then - else

Например Procedure DFS(a) опишите каким образом следует понимать вложенность инструкций. Как в языке С ? 

т.е. следующее 

if (...) then (...)

if (...) then (...)

else(...)

 

раскрывается как 

if (...) then (...)

if (...) then (...)

         else(...)

или так :

if (...) then

 {  (...)

     if (...) then (...)

              else(...)

}

обьясните пожалуйста.

 

 

Андрей Колосов
Андрей Колосов
Россия, Севастополь, ЧВВМУ им. П.С. Нахимова, 1989
Антон Дмитриев
Антон Дмитриев
Россия, Великий Новгород, НовГУ, 2007