Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GOS / Правлено Общематематические и естественные дисциплины.doc
Скачиваний:
230
Добавлен:
09.05.2015
Размер:
4.72 Mб
Скачать

19. Пути и циклы в графах

Графом называется пара G = ( V, U ), в которой V – это конечное множество, называемое множеством вершин графа, а U – конечное множество ребер графа.

Ребро представляется парой вершин, например ( a, b ).

Пути и циклы в графе

Последовательность W = a1, … , an+1 вершин графа G образует путь в G, если I = 1, …, n ( ( ai, ai+1 ) U ).

Путь называется элементарным, если все вершины в нем разные. Путь W называется простым, если все ребра ( ai, ai+1 ) являются разными.

Путь W называется циклом, если его начало и конец совпадают.

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

Теорема. Если в графе G существует путь W между двумя вершинами, то существует элементарный путь W1 между этими двумя вершинами.

Доказательство. Сводится к преобразованию пути W к пути W1. Для этого будем искать пары одинаковых вершин в пути, одна из которых внутренняя вершина пути. Например, ai и aj. Тогда вырезав, часть пути, состоящую из ai+1, .., aj, получим новый путь. Так надо продолжать, пока существуют такие пары вершин. Задача всегда разрешима, т.к. даже в худшем случае останется хотя бы одна вершина ( случай циклического пути отличается тем, что нельзя брать пару из первой и последней вершин ).

Граф G называется связным графом, если для любых двух вершин G существует путь, соединяющий эти вершины.

Компонентами связности графа G называются максимальные связные подграфы этого графа.

Пусть G = ( V, U ) – это некоторый граф. Ребро u изU называется циклическим ребром, если в G имеется элементарный цикл ненулевой длины, проходящий через концы ребра u.

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

Если граф D – это дерево и v – некоторая вершина в D, то D может быть представлен в виде корневого дерева с корнем v.

Изобразим вершину v, расположив её в нулевом ярусе. Вершины, соседние с v поместим в первый ярус и соединим дугами с корнем. Вершины, соседние с вершинами первого яруса, отличные от корня, поместим во второй ярус и соединим с соседними с ними вершинами первого яруса.

Продолжим процесс, пока все вершины D не окажутся распределенными по ярусам. Процесс распределения заканчивается за конечное число шагов, так как D имеет конечное число вершин.

Теорема. Неориентированный связный граф без петель G = ( V, U ) является деревом тогда и только тогда, когда . ( - мощность множества, т.е. количество элементов в нем ).

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

Необходимость. Рассмотрим некоторое корневое представление G. Будем удалять последовательно ярусы, начиная с последнего, вместе в ребрами, ведущими наверх. Очевидно, что останется только корневая вершина. То есть .

Достаточность. Пусть G не дерево, следовательно, в нем имеются циклические ребра. Построим G*, который получается из G размыканием всех циклов, не нарушая его связность Это делается путем последовательного поиска цикла в графе и удаления одного из его ребер. Так надо делать, до тех пор, пока не останется циклических ребер. Полученный граф будет деревом, а значит . Однако, это противоречит начальному предположению о том, что, так как. А значит,G - дерево.

Доказано.

Цикл в графе G называется циклом Эйлера, если он проходит через все ребра графа и каждое ребро проходится один раз.

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

Для следующей теоремы будем рассматривать только неориентированные связные графы без петель.

Теорема. Граф G имеет цикл Эйлера тогда и только тогда, когда он является четным графом.

Цикл в некотором графе называется циклом Гамильтона, если он содержит все вершины этого графа по одному разу.

Пусть G = ( V, U ) – некоторый граф без петель и V = { a1, …, an}. Будем считать, что n>=3.

Теорема. Если ai, aj V( d(ai) + d(aj) >= n ), то граф имеет цикл Гамильтона.

d( ai ) – степень вершины ai, т.е. число ребер, отличных от петель выходящих из этой вершины.

Задача о поиске пути между вершинами решается перебором ( плохой путь ), или на основе обходов графа ( в глубину, или в ширину ). Есть 2 наиболее известных алгоритма: Алгоритм Дейкстры и алгоритм Флойда.