Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Рабочий учебник. Комбинаторика, графы и сети. 3346.02.01;РУ.01;1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.08 Mб
Скачать

2.3. Деревья

Ребро е произвольного графа G называется циклическим, если оно принадлежит хотя бы одному элементарному циклу в графе, и ациклическим в противном случае. Примером ациклического ребра является концевое, т.е. инцидентное вершине степени 1. На рис. 2.7 ребра b, d, f – циклические, ребра е, i – ациклические.

Рис. 2.7

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

Теперь введем основное определение этого раздела. Связный граф без циклов называется деревом. Иначе говоря, дерево – это граф, все ребра которого ациклические. Имеется несколько эквивалентных определений дерева, устанавливающих ряд его характеристических свойств:

1) дерево – это связный граф, который становится несвязным при удалении любого ребра;

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

3) дерево – это граф без циклов, в котором после добавления ребра, связывающего две любые вершины, появляется цикл;

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

Пример дерева (рис. 2.8, а); выделены ребра единственной цепи [, ] между вершинами и .

а б

Рис. 2.8

2. Рассмотрим теперь специальное представление деревьев. Выберем в дереве произвольную вершину 0 и назовем ее корнем, или вершиной нулевого яруса. Соседние вершины назовем вершинами первого яруса и т.д., а именно вершины, соседние вершинам (i – 1)-го яруса, не отнесенные еще ни к одному ярусу, назовем вершинами i-го яруса. Каждая вершина дерева принадлежит ровно одному ярусу. Очевидно, что номер яруса совпадает с расстоянием между его вершинами и корнем дерева. В силу свойства (3) каждая вершина i-го яруса связана ребром ровно с одной вершиной (i –1)-го яруса и не связана ребром ни с какой вершиной i-го яруса. Иначе говоря, если S(, β) – антисимметричное отношение между вершиной и подчиненной ей вершиной β, то инверсия S-1 отношения S – однозначное соответствие.

Пример см. на рис. 2.8, а. Выбранная (в качестве корня) вершина выделена; для остальных вершин проставлены их расстояния до корня. На рис. 2.8, б наглядное представление того же дерева с расположением вершин по ярусам. Оно показывает, в частности, что в конечном дереве всегда существуют концевые вершины (например, вершины последнего яруса, но, возможно, и другие).

Выделение корня в дереве D определяет на множестве его вершин частичный порядок: < , если и элементарная цепь из корня в вершину содержит (при этом ярус вершины меньше яруса вершины ). Каждая вершина однозначно определяет корневое поддерево D , натянутое на множество таких вершин , что . Поддерево D получается из своих ветвей склеиванием в корне (рис. 2.9).

Рис. 2.9

Если каждой вершине, кроме концевых, подчинены ровно две вершины следующего яруса, то дерево называется дихотомическим. Так, турнир по олимпийской системе (с выбыванием проигравшего) изображается корневым дихотомическим деревом: корень соответствует победителю.

Замечание. Так называемое генеалогическое дерево не является, вообще говоря, деревом, так как множества предков по отцовской и материнской линиям могут пересекаться.

В п. 2.1 рассматривался ориентированный граф, изображающий отношение строгого частичного порядка на конечном множестве. Если для отношения R(X, Y) в множестве имеется наибольший элемент хнаиб, то такому отношению можно следующим образом сопоставить корневое дерево. Удалим из графа, представляющего отношение R(X, Y) транзитивные связки, т.е. дуги (X, Y), если есть промежуточный элемент Z такой, что выполнены отношения R(X, Z) и R(Z, Y); будем считать, что недостающие звенья подразумеваются «по транзитивности» (именно так строилась в п. 4.4 Юниты 1 схема отношения X Y на множестве целых чисел и изоморфная ему схема отношения st на булеане). Оставшиеся дуги связывают каждую вершину только с непосредственно «подчиненными» вершинами.

Элементу хнаиб сопоставим корень дерева, соседние ему вершины расположим на 1-м ярусе, соседние (подчиненные) каждой из них – на 2-м ярусе, причем если элемент непосредственно подчинен нескольким элементам 1-го яруса, то в дереве ему будут соответствовать несколько отдельных вершин 1, 2,..., каждая из которых связана дугой с одной из вершин 1-го яруса, которой она подчинена. Можно назвать эту процедуру расщеплением вершины . Поддерево D будет построено таким же образом и продублировано, т.е. каждой из вершин 1, 2,… подчинена своя копия поддерева D.

Пример. На рис. 2.10 граф G и соответствующее корневое дерево D.

В связном графе G удалим какое-нибудь циклическое ребро е. В результате этой операции все ациклические ребра останутся ациклическими; некоторые циклические ребра могут стать ациклическими (если они входили в единственный цикл, который разрушен удалением ребра е). Будем теперь последовательно удалять циклические ребра до тех пор, пока это возможно, т.е. пока не останется ни одного циклического ребра. Мы придем к связному подграфу графа G с тем же множеством вершин, но без элементарных циклов, т.е. к дереву, называемому остовом графа G. Остов выбирается, вообще говоря, неоднозначно, однако все ациклические ребра обязательно входят в любой остов. Относительно остова D все ребра подграфа G \ D называются хордами. Каждая хорда связывает две вершины остова.

Рис. 2.10

На рис. 2.11, а - пример остова (его ребра выделены) графа с 11 вершинами и 18 ребрами. Последовательность циклов и удаляемых из них ребер представлены в таблице 2.1. Оставшиеся ребра, образующие остов: 2, 3, 4, 7, 10, 11, 12, 15, 17, 18.

Рис. 2.11

Таблица 2.1

Цикл

Удаляемое ребро

[1,9,14]

1

[6,7,10]

6

[5,13,14]

5

[4,12,13]

13

[8,11,12]

8

[2,9,14,4,3]

9

[14,10,11,4]

14

[16,17,18]

16

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

Для того же графа на рис.2.11, б - остов, построенный таким способом. Последовательность присоединяемых ребер, составляющих в конечном счете остов, - в первом столбце табл. 2.2. Во втором столбце - ребра, не включаемые в остов на данном этапе построения: комментарий - в третьем столбце. Обратите внимание на то, что ребра, первоначально не присоединенные, могут впоследствии войти в остов (таковы ребра 5, 6, 7). Ребро 8 отвергается дважды по разным причинам. Ребра 4, 8, 10, 11, 12, 13, 14, 18 - хорды.

Таблица 2.2.

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

Обратно, пусть связный граф G с b вершинами содержит (b - 1) ребер. Докажем, что G - дерево в соответствии с характеристическим свойством (2). Действительно, в противном случае, удалив некоторое число q циклических ребер, мы получили бы остов с b вершинами и (b - 1 - q) ребрами, что невозможно (так как остов - дерево).

Если к дереву D добавить ребро (α, β), где α, β D, то в графе появится (единственный!) элементарный цикл, составленный из этого ребра и (единственной) элементарной цепи [α, β]  D. Если удалить из дерева D произвольное ребро (γ, δ), не удаляя вершин, то получится несвязный граф (так как любое ребро дерева - ациклическое), состоящий ровно из двух компонент связности (так как восстановление этого ребра превращает граф в связный). Любой подграф Н дерева не содержит элементарных циклов, поэтому все компоненты связности подграфа Н - деревья.