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

Начальные понятия теории графов

Лекция 1: 12345 || Лекция 2 >

Инварианты

В общем случае узнать, изоморфны ли два графа, достаточно сложно. Если буквально следовать определению, то нужно перебрать все биекции множества вершин одного из них на множество вершин другого и для каждой из этих биекций проверить, является ли она изоморфизмом. Для n вершин имеется n! биекций и эта работа становится практически невыполнимой уже для не очень больших n (например, 20!>2\cdot
10^{18} ). Однако во многих случаях бывает довольно легко установить, что два данных графа неизоморфны. Рассмотрим, например, графы, изображенные на рис. 1.9.

Так как при изоморфизме пара смежных вершин переходит в пару смежных, а пара несмежных - в пару несмежных, то ясно, что число ребер у двух изоморфных графов должно быть одинаковым. Поэтому сразу можно сказать, что графы G_{1} и G_{2}, у которых разное количество ребер, неизоморфны. У графов G_{1} и G_{3} одинаковое число ребер, но они тоже неизоморфны. Это можно установить, сравнивая степени вершин. Очевидно, при изоморфизме каждая вершина переходит в вершину той же степени. Следовательно, изоморфные графы должны иметь одинаковые наборы степеней, а у графов G_{1} и G_{3} эти наборы различны. С графами G_{1} и G_{4} дело обстоит немного сложнее - у них и наборы степеней одинаковы. Все же и эти графы неизоморфны: можно заметить, что в графе G_{4} есть цикл длины 3, а в графе G_{1} таких циклов нет. Ясно, что при изоморфизме каждый цикл длины 3 переходит в цикл длины 3.


Рис. 1.9.

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

Операции над графами

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

Локальные операции

Простейшая операция - удаление ребра. При удалении ребра сохраняются все вершины графа и все его ребра, кроме удаляемого. Обратная операция - добавление ребра.

При удалении вершины вместе с вершиной удаляются и все инцидентные ей ребра. Граф, получаемый из графа G удалением вершины a, обозначают G-a. При добавлении вершины к графу добавляется новая изолированная вершина. С помощью операций добавления вершин и ребер можно "из ничего", то есть из графа K_{0}, построить любой граф.

Операция стягивания ребра (a,b) определяется следующим образом. Вершины a и b удаляются из графа, к нему добавляется новая вершина c и она соединяется ребром с каждой вершиной, с которой была смежна хотя бы одна из вершин a,b.

Операция подразбиения ребра (a,b) действует следующим образом. Из графа удаляется это ребро, к нему добавляется новая вершина c и два новых ребра (a,c) и (b,c). На рис. 1.10 изображены исходный граф G, граф G', полученный из него стягиванием ребра (3,4) и G'', полученный подразбиением того же ребра. В обоих случаях вновь добавленная вершина обозначена цифрой 7.


Рис. 1.10.

Подграфы

Граф G' называется подграфом графа G, если {VG'\subseteq VG}, {EG'\subseteq EG}. Всякий подграф может быть получен из графа удалением некоторых вершин и ребер. На рис. 1.11 изображены граф G и его подграфы G_{1}, G_{2}, G_{3}, G_{4}.


Рис. 1.11.

Подграф G' графа G называется остовным, если VG'=VG. Остовный подграф может быть получен из графа удалением некоторых ребер, вершины же остаются в неприкосновенности. На рис. 1.11 G_{1} - остовный подграф графа G, а G_{2}, G_{3} и G_{4} не являются остовными подграфами.

Другая важная разновидность подграфов - порожденные подграфы. Пусть задан граф G=(V,E) и в нем выбрано множество вершин U\subseteq V. Рассмотрим подграф G'=(U,E'), где E' состоит из всех тех ребер графа G, у которых оба конца принадлежат U. Говорят, что этот подграф порожден множеством вершин U. Он обозначается через G\langle U\rangle. Порожденный подграф может быть получен из графа удалением "лишних" вершин, т.е. вершин, не принадлежащих U.

Можно определить также подграф, порожденный множеством ребер F\subseteq E. Это подграф G'=(V',F), где V' состоит из всех вершин, инцидентных ребрам из F.

На рис. 1.11 G_{2} - подграф графа G, порожденный множеством вершин \{1, 2, 4, 5\}, т.е. G_{2} =G\langle \left\{1,\;
2,\; 4,\;
5\right\}\rangle, он же порождается множеством ребер \{(1, 2), (1,
4), (4, 5)\} ; подграф G_{3} не порождается множеством вершин, но порождается множеством ребер \{(1, 2), (2, 3), (3, 4)\} ; подграф G_{4} не является ни остовным, ни порожденным в каком-либо смысле.

Лекция 1: 12345 || Лекция 2 >
Петр Петров
Петр Петров

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

}

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

 

 

Асмик Гаряка
Асмик Гаряка
Армения, Ереван
Ольга Чернышева
Ольга Чернышева
Россия