Деревья являются одним из интереснейших классов графов, используемых для представления различного рода иерахических структур.
Определение 10.1.
Определение 10.2. G=(V,E) называется
На рис. 10.1 показаны примеры G1 и G2. Обратите внимание на то, что дерево G2 получено из G1 с помощью
выбора вершины c в качестве
(рис 10.1) Неориентированное и ориентированное деревьяЭто не случайно. Докажите самостоятельно следующее утверждение о связи между
Лемма 10.1. Если в любом G=(V,E) выбрать
произвольную вершину $$v \in V$$ в качестве 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) \in E$$
не теряет 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} и пустым множеством ребер $$E=\varnothing$$ является деревом (входит в $$\mathcal{D}$$ ). Вершина v называется T1=(V1,E1), ... , Tk= (Vk, Ek) с r0 - новая вершина, т.е. $$r_0 \notin \bigcup_{i=1}^k V_i$$. Тогда классу $$\mathcal{D}$$ принадлежит также следующий граф $$T = (V, E)$$, где $$V= \{ r_0\} \cup \bigcup_{i=1}^k V_i$$, $$E = \{ (r_0, r_i)\ |\ i=1, \ldots , k\} \cup \bigcup_{i=1}^k E_i$$. Рис. 10.2 иллюстрирует это определение.
(рис 10.2) Индуктивное определение ориентированных деревьевТеорема 10.2. Определения
Доказательство $$\Rightarrow$$ Пусть граф G=(V,E) удовлетворяет условиям определения 10.2.
Покажем |V|, что $$G \in \mathcal{D}$$.
Если |V|=1, то единственная вершина $$v \in V$$ является по свойству (1)
Предположим, что всякий граф с <= n вершинами, удовлетворяющий определению
10.2 входит в $$\mathcal{D}$$. Пусть граф G=(V,E)
с (n+1) -й вершиной удовлетворяет условиям определения 10.2.
По условию (1) в нем имеется вершина- r0. Пусть из r0 выходит k ребер и они ведут в вершины r1, ... , rk(k >= 1). Обозначим через Gi,(i=1, ..., k) граф, включающий вершины $$V_{i} =\{ v\in V|v \ достижима \ из \ r_{i} \}$$
и соединяющие их ребра $$E_{i} \subseteq E$$. Легко понять, что Gi удовлетворяет
условиям условиям определения 10.2. Действительно, в ri не входят ребра,
т.е. эта вершина - Gi . В каждую из остальных вершин из Vi входит по одному
ребру как и в G . Если $$v \in V_{i}$$, то она достижима из ri по определению графа Gi. Так как |Vi| <= n, то по индуктивному предположению $$G_i \in \mathcal{D}$$.
Тогда граф G получен по индуктивному правилу (2) определения 10.3 из
деревьев G1, ..., Gk и поэтому принадлежит классу $$\mathcal{D}$$.
$$\Leftarrow$$ Если некоторый граф G=(V,E) входит в класс $$\mathcal{D}$$,
то выполнение условий (1)-(3) определения 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. Вершины, у которых общий отец, называются братьями
или сестрами.
Выделим еще один класс графов, обобщающий
Напомним, что в главе 2 было введено общее понятие формулы над системой функций $$\mathcal{B}$$ (определение 3.2), которое применимо для произвольных функций, а не только булевых.
В главе 4 аналогичные синтаксические объекты для
Итак, пусть формула над множеством функций $$F$$, множеством констант C и множеством переменных Var определяется индуктивно по следующим правилам.
Var есть формула.C есть формула.g1, ..., gk - формулы, а f(k) - k -местная функция из F, то f(g1, ..., gk) - это формула.Обозначим множество всех таких формул через $$\mathcal{F}({\bf F},{\bf C},{\bf Var})$$.
Рассмотрим класс упорядоченных размеченных деревьев $$\mathcal{T}({\bf F},{\bf C},{\bf Var})$$, F, причем, если вершина помечена символом k -местной функции из F, то у нее имеется k сыновей.
(рис 10.3) Индуктивное определение связи между формулами и деревьямиПредложение 10.1. Между множеством формул\ $$\mathcal{F}({\bf F},{\bf C},{\bf Var})$$ и множеством деревьев $$\mathcal{T}({\bf F},{\bf C},{\bf Var})$$ имеется взаимно однозначное соответствие.
Доказательство Это соответствие легко устанавливается
Пример 10.2.
Рассмотрим, например, класс обычных арифметических формул над множеством функций F = { +, -, *, : }, целочисленных констант C = {0, 1, 2,... } и переменных Var = {x,y,z, ... }. Пусть формула $$\Phi = +( \times (5, +(x,7)),(:(y,+(x, 7)))$$ (ее обычное представление $$\Phi = 5 \times (x+7) + y :(x + 7)$$ )
Тогда в соответствии с предложением 10.1 эта формула представляется деревом $$T_{\Phi }$$, изображенном на рис. 10.4.
(рис 10.4) Дерево TНа этом рисунке не указаны явно номера ребер, выходящих из внутренних
вершин дерева, которые идентифицируют порядок +, * это
несущественно, а для некоммутативных, таких, как :, первый аргумент расположен
левее второго.
Заметим, что у деревьев, представляющих арифметические или логические
(булевские) формулы,
Определение 10.4. + - - и т.п.)
Ориентированные v5 и v7 дерева $$T_{\Phi }$$, представляющих подформулу (x+7).
(рис 10.5) Ациклический граф GНа рис.10.5 явно указаны номера ребер, выходящих из вершины v3,
которые определяют порядок аргументов приписанной этой вершине операции :.
Ясно, что при отсутствии такого
указания и использовании порядка " по умолчанию" - первый аргумент слева -
граф представлял бы другое выражение.
Часто при обработке представленной в дереве информации требуется обойти некоторым регулярным способом все его вершины. Имеется два естественных стандартных способа обхода деревьев. Каждый из них позволяет линейно упорядочить вершины дерева и тем самым представить его "двумерную структуру" в виде линейной последовательности вершин.
T в определении 10.3 его прямое представление ПР(T) следующим образом.
ПР(T0)= v.T получено из деревьев T1, ..., Tk и нового r0 по пункту (2) определения 10.3 то ПР(T)= r0\, ПР(T1)... ПР(Tk).ОБР(T0)= v.T получено из деревьев T1, ..., Tk и нового r0 по пункту (2) определения 10.3, то ОБР(T)= ОБР(T1)... ОБР(Tk)\, r0.Для
ИНФ(T0)= v.T получено из деревьев T1, T2 и нового r0 по пункту (2) определения 10.3, то ИНФ(T)= ИНФ(T1) r0 ИНФ(T2)(Если одно из деревьев T1, T2 пусто, то соответствующее ему инфиксное представление тоже пусто).
Пример 10.2. Построим в соответствии с этими определениями три разных обхода
Для упорядоченного размеченного дерева T из класса $$\mathcal{T}({\bf F},{\bf C},{\bf Var})$$ по любому из указанных обходов ПР(T), ОБР(T) и, если дерево ИНФ(T) можно однозначно восстановить само дерево T (см. задачу 10,6).
Замечание. Для вычислительных приложений особенно интересен обратный обход, иногда называемый обратной польской записью. По нему компилятор легко строит программу вычисления соответствующего выражения.
Задача 10.1. Докажите, что если в связном
Задача 10.2. Пусть G=(V, E) - u к w, если им заканчивается путь из v в w, и ориентацию от w к u, если им заканчивается путь из v в u, то полученный v. Используйте это утверждение
для доказательства следующего факта:
если в G=(V, E) имеется вершина степени d >1,
то в нем имеется по крайней мере d вершин степени 1.
Задача 10.3.
Пусть T=(V,E) - это Tv=(Vv, Ev)
следующим образом: Vv - это v в T, а Ev - это множество ребер из E, оба конца которых
входят в Vv. Доказать, что
Tv является деревом с v ;v и u имеют одинаковую Tv и Tu не пересекаются.Задача 10.4.
Пусть G=(V,E) - n >1 вершинами.
Докажите, что G является G нет циклов, имеется одна вершина r, в которую не входят ребра,
а в каждую из остальных вершин $$v \in V \setminus \{ r\}$$ входит ровно одно ребро.
Задача 10.5.
Пусть
Задача 10.6. Для каждого из обходов деревьев ПР(T), ОБР(T) и ИНФ(T) предложите процедуру, восстановления соответствующего дерева $$T \in \mathcal{T}({\bf F},{\bf C},{\bf Var})$$.
Задача 10.7. Докажите по
Задача 10.8. Определите число h.
Задача 10.9. Постройте дерево, представляющее следующую логическую формулу
$$\Psi = ((X \vee \neg Y) \wedge \neg( Z \rightarrow (X \wedge Y))) \vee (\neg Z + Y)$$Для полученного дерева определите
Задача 10.10. Постройте дерево и
Сколько вершин удалось сократить?
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.