Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
флеров.doc
Скачиваний:
109
Добавлен:
25.11.2018
Размер:
2.4 Mб
Скачать
    1. Связность

Пусть граф G - неориентированный. Две вершины a и b называются связанными, если существует путь S с начальной вершиной a и конечной вершиной b, S=< a , a1 , ... , an , b >. Если S проходит через какую-нибудь вершину ai более одного раза, то можно, очевидно, удалить его циклический участок и при этом остающиеся ребра будут составлять путь S из a в b. Отсюда следует, что связанные путем вершины связаны и простым путем. Граф называется связным, если любая его пара вершин связана. Для всякого графа существует такое разбиение множества его вершин

на попарно непересекающиеся подмножества вершин Vi, что вершины в каждом Vi связаны, а вершины из различных Vi не связаны.

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

Пусть V -подмножество вершин графа G = < V, E >, V V. Подграф G(V,E), определяемый множеством V, есть такая часть графа G, множеством вершин которой является V, а ребрами - все ребра из G, оба конца которых лежат в V:

= .

Тогда в соответствии с разбиением мы получаем прямое разложение

графа G на непересекающиеся связные подграфы G(Vi). Эти подграфы называются связными компонентами (или компонентами связности) графа G.

Теорема 3.2. Если в конечном неориентированном простом графе G ровно две вершины a0 и b0 имеют нечетную локальную степень, то они связаны.

Доказательство. По теореме 3.1, каждый конечный граф имеет четное число вершин нечетной степени. Так как это условие выполняется и для той компоненты G, которой принадлежит a0 , то b0 принадлежит той же компоненте связности.

Теорема 3.3. Если неориентированный простой граф G имеет n вершин и k связных компонент, то максимальное число ребер в G равно

.

Доказательство. Пусть в графе G связная компонента Gi имеет ni вершин. Тогда максимальное число ребер в G равно . Это число достигается, когда каждый из графов Gi полный и имеет ni вершин. Допустим, что среди графов Gi найдутся хотя бы два, которые имеют более одной вершины, например n2  n1 > 1. Построим вместо G другой граф G с тем же числом вершин и компонент, заменяя G1 и G2 полными графами G1 и G2 соответственно с n1-1 и n2+1 вершинами. Легко видеть, что это увеличит число ребер. Таким образом максимальное число ребер должен иметь граф, состоящий из k -1 изолированных вершин и одного полного графа с n - k + 1 вершинами.

Из теоремы 3.3 следует для случая k = 2 следующее утверждение.

Теорема 3.4. Простой неориентированный граф с n вершинами и с числом ребер, большим, чем

связен.

    1. Деревья

Связный неориентированный граф называется деревом, если он не имеет циклов.

В частности, дерево не имеет петель и кратных ребер. Граф без циклов есть граф, связные компоненты которого являются деревьями; иногда такой граф называется лесом. Любая часть такого графа также будет графом без циклов.

Теорема 3.5. В дереве любые две вершины связаны единственным простым путем.

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

Наглядное представление для произвольного дерева T = <V, E> можно получить при помощи следующей конструкции.

Выберем произвольную вершину a0 и будем рассматривать ее как корень дерева или вершину нулевого уровня.

U0 = {a0}.

От a0 проведем все ребра к вершинам, находящимся на расстоянии 1 от вершины a0. Вершины, смежные с a0 составят множество вершин первого уровня:

.

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

.

Из вершины ai(n) находящейся на расстоянии n от a0 , выходит одно ребро к единственной предшествующей вершине , а также некоторое семейство ребер к вершинам , находящимся на расстоянии n +1.

.

Ни для какой из этих вершин a(n) не может быть ребер, соединяющих ее с вершинами с тем же или меньшим расстоянием, кроме { a(n-1), a(n)}. Таким образом, дерево может быть представлено в следующей форме:

Будем называть вершину a дерева концевой, если (a) = 1.

Будем называть ребро концевым, если хотя бы одна инцидентная ему вершина является концевой.

Утверждение 3.6. Любое нетривиальное конечное дерево имеет хотя бы две концевые вершины и хотя бы одно концевое ребро.

Доказательство совершенно просто может быть проведено, например, индукцией по числу вершин.

Утверждение 3.7. Каждое дерево с n вершинами имеет n-1 ребро.

Доказательство. Доказательство легко проводится индукцией по числу вершин. Для n =1 утверждение, очевидно, справедливо. Пусть n>1. Тогда в дереве существует концевая вершина v. Удаляя из дерева v и ребро (u, v), инцидентное v, получим дерево с n-1 вершиной, которое в силу индуктивного предположения имеет n-2 ребра. Следовательно, первоначальное дерево имеет n-2+1=n-1 ребро.

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

Пример. Пусть количество вершин n равно 4. Тогда на этом множестве вершин могут быть построены следующие различные деревья.

Первый класс таких деревьев составляют деревья следующего вида:

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

Второй класс деревьев имеет вид:

Центральная вершина может быть выбрана 4 способами, что дает 4 различных дерева в этом классе.

Других деревьев с 4 вершинами, отличных от указанных в первом и втором классах, нет. Таким образом, существует 16 деревьев, имеющих 4 фиксированные вершины.

Обратимся теперь к общему результату.

Теорема 3.8. Число различных деревьев, которые можно построить на заданном множестве V, содержащем n вершин, равно

tn = nn-2.

Доказательство. Обозначим элементы данного множества V, расположенные в некотором фиксированном порядке, числами

V = {1,2, ... ,n} (3.1)

Для любого дерева T, определенного на V, введем некоторый символ, характеризующий его однозначно. В T существуют концевые вершины. Обозначим через b1 первую концевую вершину в последовательности (3.1), а через e1 = {a1 , b1} - соответствующее концевое ребро. Удалив из T ребро E1 и вершину b1, мы получим новое дерево T1 . Для T1 найдется первая в списке (3.1) концевая вершина b2 с ребром e2 = {a2 , b2 }. Эта редукция повторяется до тех пор, пока после удаления ребра en-2 = (an-2 , bn-2) не останется единственное ребро en-1 = (an-1 , bn-1), соединяющее две оставшиеся вершины.

Тогда список

(T) = [a1 , a2 , ... , an-2 ] (3.2)

однозначно определяются деревом T и двум различным деревьям T и T, очевидно, соответствуют разные символы такого вида. Каждая вершина ai появляется в (3.2) (ai) - 1 раз.

Для ясности приведем несколько примеров деревьев и соответствующих им последовательностей (T).

Примеры.

1.

2.

3.

Наоборот, каждая последовательность (3.2) определяет дерево T с помощью обратного построения. Если дана последовательность (3.2), то находится первая вершина b в списке (3.1), которая не содержится в (3.2). Это определяет ребро e1 = {a1 , b1}. Далее удаляем вершины a1 из последовательности (3.2) и b1 из списка (3.1) и продолжаем построение для оставшихся элементов.

Получающийся в результате построения граф является деревом, что может быть установлено, например, по индукции. После удаления e1 последовательность (3.2) будет содержать n - 3 элемента. Если она соответствует дереву T1 , то граф T, получаемый из него добавлением e1 , также есть дерево, так как вершина b1 не принадлежит T1 .

B (3.2) каждая вершина может принимать все n возможных значений. Все они соответствуют различным деревьям, откуда и получается формула tn = nn-2.