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

Важнейшие классы графов

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >
Аннотация: Деревья. Центр дерева. Корневые деревья. Каркасы. Двудольные графы. Планарные графы.

Деревья

Деревом называется связный граф, не имеющий циклов. В графе без циклов, таким образом, каждая компонента связности является деревом. Такой граф называют лесом.

Из теоремы 2 "Маршруты, связность, расстояния" следует, что во всяком дереве, в котором не меньше двух вершин, имеется вершина степени 1. Такие вершины называют висячими вершинами, или листьями. В действительности легко доказать, что в каждом дереве не меньше двух листьев, а цепь P_{n} - пример дерева, в котором точно два листа.

В следующих двух теоремах устанавливаются некоторые свойства деревьев.

Теорема 1. Граф с n вершинами и m ребрами является деревом тогда и только тогда, когда он удовлетворяет любым двум из следующих трех условий:

  • (1) связен;
  • (2) не имеет циклов;
  • (3) m=n-1.

Доказательство.

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

(1) и (2) \Rightarrow (3). Индукция по числу вершин. При n=1 утверждение очевидно. При n\ge 2 в дереве имеется хотя бы один лист. Если из дерева удалить лист, то снова получится дерево, так как циклов не появится, а связность, очевидно, сохранится. В этом новом дереве n-1 вершин и, по предположению индукции, n-2 ребра. Следовательно, в исходном дереве было n-1 ребро.

(2) и (3) \Rightarrow (1). Пусть в графе, не имеющем циклов, n-1 ребро, а его компонентами связности являются G_{1} ,G_{2}\ldots
G_{k}, причем G_{i} состоит из n_{i} вершин, i=1\ldots k. Каждая компонента является деревом, поэтому, как доказано выше, число ребер в G_{i} равно n_{i} -1, а всего ребер в графе \suml_{i=1}^{k}\left(n_{i} -1\right) =n-k=n-1. Значит, k=1 и граф связен.

(1) и (3) \Rightarrow (2). Рассмотрим связный граф с n-1 ребром. Если бы в нем был цикл, то, удалив любое цикловое ребро, мы получили бы связный граф с меньшим числом ребер. Можно продолжать такое удаление ребер до тех пор, пока не останется связный граф без циклов, то есть дерево. Но ребер в этом дереве было бы меньше, чем n-1, а это противоречит доказанному выше.

Теорема 2. Если G - дерево, то

  1. в G любая пара вершин соединена единственным путем;
  2. при добавлении к G любого нового ребра образуется цикл;
  3. при удалении из G любого ребра он превращается в несвязный граф.

Доказательство.

Существование пути между любыми двумя вершинами следует из связности дерева. Допустим, что в некотором дереве существуют два различных пути, соединяющих вершины a и b. Начальные отрезки этих путей совпадают (оба пути начинаются в одной и той же вершине a ). Пусть x - последняя вершина этого совпадающего начала, а после x в одном пути следует вершина y_{1}, а в другом - вершина y_{2}. Рассмотрим ребро \left(x,y_{1}\right). Если его удалить из графа, то в оставшемся подграфе вершины y_{1} и x будут соединимыми - соединяющий их маршрут можно построить так: взять отрезок первого пути от y_{1} до a и к нему присоединить отрезок второго от x до a, взятый в обратном порядке. Но это означает, что ребро \left(x,y_{1}\right) не является перешейком. Однако из теоремы 4 "Маршруты, связность, расстояния" следует, что в дереве каждое ребро является перешейком. Этим доказано утверждение 1). Утверждения 2) и 3) следуют из 1).

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

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >
Петр Петров
Петр Петров

произведение графов К(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(...)

}

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

 

 

Дарья Волонтович
Дарья Волонтович
Россия, г. Хабаровск