Это в лекции 3. |
Деревья
Неориентированные и ориентированные деревья
Деревья являются одним из интереснейших классов графов, используемых для представления различного рода иерахических структур.
Определение 10.1. Неориентированный граф называется деревом, если он связный и в нем нет циклов.
Определение 10.2. Ориентированный граф G=(V,E) называется (ориентированным) деревом, если
- в нем есть одна вершина , в которую не входят ребра; она называется корнем дерева;
- в каждую из остальных вершин входит ровно по одному ребру;
- все вершины достижимы из корня.
На рис. 10.1 показаны примеры неориентированного дерева G1 и ориентированного дерева G2. Обратите внимание на то, что дерево G2 получено из G1 с помощью выбора вершины c в качестве корня и ориентации всех ребер в направлении "от корня ".
Это не случайно. Докажите самостоятельно следующее утверждение о связи между неориентированными и ориентированными деревьями.
Лемма 10.1. Если в любом неориентированном дереве G=(V,E) выбрать произвольную вершину в качестве корня и сориентировать все ребра в направлении "от корня ", т.е. сделать v началом всех инцидентных ей ребер, вершины, смежные с v - началами всех инцидентных им еще не сориентированных ребер и т.д., то полученый в результате ориентированный граф G' будет ориентированным деревом.
Неориентированные и ориентированные деревья имеют много эквивалентных характеристик.
Теорема 10.1.Пусть G=(V,E) - неориентированный граф. Тогда следующие условия эквивалентны.
- G является деревом.
- Для любых двух вершин в G имеется единственный соединяющий их путь.
- G связен, но при удалении из E любого ребра перестает быть связным.
- G связен и |E| = |V| -1.
- G ациклический и |E| = |V| -1.
- G ациклический, но добавление любого ребра к E порождает цикл.
Доказательство (1) => (2): Если бы в G некоторые две вершины соединялись двумя путями, то, очевидно, в G имеелся бы цикл. Но это противоречит определению дерева в (1).
(2) => (3): Если G связен, но при удалении некоторого ребра не теряет связности, то между u и v имеется путь, не содержащий это ребро. Но тогда в G имеется не менее двух путей, соединяющих u и v, что противоречит условию (2).
(3) => (4): Предоставляется читателю (см. задачу 9.4).
(4) => (5): Если G содержит цикл и является связным, то при удалении любого ребра из цикла связность не должна нарушиться, но ребер останется |E|= V -2, а по задаче 9.4(а) в связном графе должно быть не менее V -1 ребер. Полученное противоречие показывает, что циклов в G нет и выполнено условие (5).
(5) => (6): Предположим, что добавление ребра (u,v) к E не привело к появлению цикла. Тогда в G вершины u и v находятся в разных компонентах связности. Так как |E|= V -1, то в одной из этих компонент, пусть это (V1,E1), число ребер и число вершин совпадают: |E1|=|V1|. Но тогда в ней имеется цикл (см. задачу 9.4 (б) ), что противоречит ацикличности G.
(6) => (1): Если бы G не был связным, то нашлись бы две вершины u и v из разных компонент связности. Тогда добавление ребра (u,v) к E не привелобы к появлению цикла, что противоречит (6). Следовательно, G связен и является деревом.
Для ориентированных деревьев часто удобно использовать следующее индуктивное определение.
Определение 10.3. Определим по индукции класс ориентированных графов , называемых деревьями. Одновременно для каждого из них определим выделенную вершину - корень.
- Граф T0=(V,E), с единственной вершиной V={ v} и пустым множеством ребер является деревом (входит в ). Вершина v называется корнем этого дерева.
- Пусть графы T1=(V1,E1), ... , Tk= (Vk, Ek) с корнями принадлежат , а r0 - новая вершина, т.е. . Тогда классу принадлежит также следующий граф , где , . Корнем этого дерева является вершина .\\
- Других графов в классе нет.
Рис. 10.2 иллюстрирует это определение.
Теорема 10.2. Определения ориентированных деревьев 10.2 и 10.3 эквивалентны.
Доказательство Пусть граф G=(V,E) удовлетворяет условиям определения 10.2. Покажем индукцией по числу вершин |V|, что .
Если |V|=1, то единственная вершина является по свойству (1) корнем дерева, т.е. в этом графе ребер нет: . Тогда .
Предположим, что всякий граф с <= n вершинами, удовлетворяющий определению 10.2 входит в . Пусть граф G=(V,E) с (n+1) -й вершиной удовлетворяет условиям определения 10.2. По условию (1) в нем имеется вершина- корень r0. Пусть из r0 выходит k ребер и они ведут в вершины r1, ... , rk(k >= 1). Обозначим через Gi,(i=1, ..., k) граф, включающий вершины и соединяющие их ребра . Легко понять, что Gi удовлетворяет условиям условиям определения 10.2. Действительно, в ri не входят ребра, т.е. эта вершина - корень Gi . В каждую из остальных вершин из Vi входит по одному ребру как и в G . Если , то она достижима из корня ri по определению графа Gi. Так как |Vi| <= n, то по индуктивному предположению . Тогда граф G получен по индуктивному правилу (2) определения 10.3 из деревьев G1, ..., Gk и поэтому принадлежит классу .
Если некоторый граф G=(V,E) входит в класс , то выполнение условий (1)-(3) определения 10.2 для него легко установить индукцией по определению 10.2. Предоставляем это читателю в качестве упражнения.
С ориентированными деревьями связана богатая терминология, пришедшая из двух источников: ботаники и области семейных отношений.
Корень - это единственная вершина, в которую не входят ребра, листья - это вершины, из которых не выходят ребра. Путь из корня в лист называется ветвью дерева. Высота дерева - это максимальная из длин его ветвей. Глубина вершины - это длина пути из корня в эту вершину. Для вершины , подграф дерева T=(V,E), включающий все достижимые из v вершины и соединяющие их ребра из E, образует поддерево Tv дерева T с корнем v ( см. задачу 10.3). Высота вершины v - это высота дерева Tv. Граф, являющийся объединением нескольких непересекающихся деревьев, называется лесом .
Если из вершины v ведет ребро в вершину w, то v называется отцом w, а w - сыном v (в последнее время в ангоязычной литературе употребляется асексульная пара терминов: родитель - ребенок). Из определения дерева непосредственно следует, что у каждой вершины кроме корня имеется единственный отец. Если из вершины v ведет путь в вершину w, то v называется предком w, а w - потомком v. Вершины, у которых общий отец, называются братьями или сестрами.
Выделим еще один класс графов, обобщающий ориентированные деревья - ориентированные ациклические. Два вида таких размеченных графов будут использованы далее для представления булевых функций. У этих графов может быть несколько корней - вершин, в которые не входят ребра, и в каждую вершину может входить несколько ребер, а не одно, как у деревьев.