Гамма-алгоритм (в общем виде) 1 страница

1. (Инициализация). Выберем любой простой цикл Гамма-алгоритм (в общем виде) 1 страница - student2.ru исходного графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru ; изобразим его на плоскости в виде грани, которую примем за уже уложенную часть Гамма-алгоритм (в общем виде) 1 страница - student2.ru ; сформируем сегменты Гамма-алгоритм (в общем виде) 1 страница - student2.ru ; если множество сегментов пусто, то перейти к п. 3.

2. (Общий шаг). Пока множество сегментов непустое:

a. Для каждого сегмента Гамма-алгоритм (в общем виде) 1 страница - student2.ru найти множество Гамма-алгоритм (в общем виде) 1 страница - student2.ru . Если существует сегмент Гамма-алгоритм (в общем виде) 1 страница - student2.ru , для которого Гамма-алгоритм (в общем виде) 1 страница - student2.ru , то граф не планарный, конец.

b. Выбираем один из сегментов с минимальным числом, вмещающих его граней.

c. Выбираем одну из подходящих граней для выбранного сегмента.

d. В данном сегменте выбираем цепь между двумя контактными вершинами и укладываем ее в выбранной грани. Учтем изменения в структуре сегментов и перейдем к п. a).

3. (Завершение). Построена плоская укладка Гамма-алгоритм (в общем виде) 1 страница - student2.ru исходного графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru , конец.

9.4 Контрольные вопросы и задания

1. Перечислите операции, которые можно производить над графами.

2. Охарактеризуйте операции удаления ребер и вершин.

3. Какой граф называется дополнением графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru ?

4. Как определить композицию Гамма-алгоритм (в общем виде) 1 страница - student2.ru графов Гамма-алгоритм (в общем виде) 1 страница - student2.ru и Гамма-алгоритм (в общем виде) 1 страница - student2.ru . Приведите пример.

5. Дайте характеристику операции соединения (сильного произведения) графов.

6. Какие графы называются гомеоморфными графами.

7. Какие графы называются изоморфными графами.

8. Дайте определения плоского графа, планарного графа.

9. Для решения каких задач можно использовать теорему Понтрягина – Куратовского?

10. Для решения каких задач можно использовать теорему Жордана?

11. Для плоской укладки графа и попутной проверки, планарный ли он, можно использовать гамма-алгоритм?

12. Приведите гамма-алгоритм в общем виде.

Лекция 20. Связность графов. Эйлеровы и гамильтоновы графы

20.1 Связность графов, компонента связности. n-связный граф

Определение. Две вершины Гамма-алгоритм (в общем виде) 1 страница - student2.ru и Гамма-алгоритм (в общем виде) 1 страница - student2.ru в графе связны, если существует соединяющая их (простая) цепь. Если же в графе нет ни одной цепи, соединяющей вершины Гамма-алгоритм (в общем виде) 1 страница - student2.ru и Гамма-алгоритм (в общем виде) 1 страница - student2.ru , то вершины Гамма-алгоритм (в общем виде) 1 страница - student2.ru и Гамма-алгоритм (в общем виде) 1 страница - student2.ru являются несвязными.

Пример. Вершины 1 и 5 (рис. 20.1) связны, так как их соединяет цепь 1,7,6,5 (а также 1,7,2,5; 1,7,6,2,5 и 1,7,2,6,5), а вершины 2 и 3 связными не являются, так как ни одна цепь их не соединяет.

Гамма-алгоритм (в общем виде) 1 страница - student2.ru

Рисунок 20.1

Определение.Граф называется связным, если любая пара его вершин связана. Если же в графе имеется хотя бы одна пара вершин, не соединенных цепью, то граф называется несвязным.

Пример.Согласно этим определениям граф, изображенный на рис. 20.1, является несвязным, а граф, приведенный на рис. 20.2, – связным.

Гамма-алгоритм (в общем виде) 1 страница - student2.ru

Рисунок 20.2

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

Определение.Классы эквивалентности, из которых состоит несвязный граф, называются его компонентами. Между разными компонентами связности ребер нет.

Любой связный граф состоит из одной компоненты связности – всего графа.

Определение.Число компонент, из которых состоит граф, называется степенью связности. Число компонентов связности графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru обозначается Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Пример.Граф, изображенный на рисунке 20.2, имеет степень связности, равную 2. Степень связности графа, приведенного на рис. 20.3, равна 5.

Гамма-алгоритм (в общем виде) 1 страница - student2.ru

Рисунок 20.3

Определение.Граф называется n-связным, если между любыми его двумя вершинами найдется Гамма-алгоритм (в общем виде) 1 страница - student2.ru цепей, попарно не имеющих общих неконцевых вершин.

Определение. Числом вершинной связности (или просто числом связности) Гамма-алгоритм (в общем виде) 1 страница - student2.ru графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru называется наименьшее число вершин, удаление которых приводит к несвязному или одновершинному графу.

Определение.Пусть Гамма-алгоритм (в общем виде) 1 страница - student2.ru – граф порядка Гамма-алгоритм (в общем виде) 1 страница - student2.ru . Числом реберной связности Гамма-алгоритм (в общем виде) 1 страница - student2.ru графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru называется наименьшее число ребер, удаление которых приводит к несвязному графу.

Определение.Вершина Гамма-алгоритм (в общем виде) 1 страница - student2.ru графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru называется точкой сочленения (или разделяющей вершиной), если граф Гамма-алгоритм (в общем виде) 1 страница - student2.ru имеет больше компонент, чем Гамма-алгоритм (в общем виде) 1 страница - student2.ru . В частности, если Гамма-алгоритм (в общем виде) 1 страница - student2.ru связен и Гамма-алгоритм (в общем виде) 1 страница - student2.ru – точка сочленения, то Гамма-алгоритм (в общем виде) 1 страница - student2.ru несвязен. Аналогично ребро графа называется мостом, если его удаление увеличивает число компонент. Концевая вершина моста является точкой сочленения, если в графе есть другие ребра, инцидентные этой вершине.

20.2 Свойства связных графов

1. Связный граф остается связным после удаления ребра тогда и только тогда, когда это ребро содержится в цикле.

2. Связный граф, имеющий Гамма-алгоритм (в общем виде) 1 страница - student2.ru вершин, содержит по крайней мере Гамма-алгоритм (в общем виде) 1 страница - student2.ru ребро.

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

4. Пусть у графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru есть Гамма-алгоритм (в общем виде) 1 страница - student2.ru вершин. Пусть Гамма-алгоритм (в общем виде) 1 страница - student2.ru – минимальная из степеней вершин этого графа. Тогда Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

20.3 Компоненты сильной связности ориентированного графа

Определение. Орграф называется сильно связным (strongly connected), если любые две его вершины сильно связаны. Две вершины s и t любого графа сильно связаны, если существует ориентированный путь из s в t и ориентированный путь из t в s. Сильно связными компонентами орграфа называются его максимальные по включению сильно связные подграфы.

Для нахождения компонент сольной связности в орграфе cоставляем матрицу смежности A(D) размерности Гамма-алгоритм (в общем виде) 1 страница - student2.ru (n − количество вершин) для данного ориентированного графа: она состоит из нулей и единиц, номера строк – индексы вершин, из которых исходят дуги, номера столбцов – индексы вершин, в которые дуги входят (если есть дуга, исходящая из вершины vi и входящая в vj, то элемент матрицы смежности, стоящий на пересечении i-той строки и j-того столбца равен 1, иначе – 0).

Для того, чтобы выделить компоненты сильной связности, необходимо сначала найти матрицу достижимости T(D) ориентированного графа, затем находим матрицу сильной связности S(D) ориентированного графа (она должна быть симметрической).

20.4 Алгоритм выделения компонент сильной связности

1. Присваиваем p=1 (p − количество компонент связности), Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

2. Включаем в множество вершин Vp компоненты сильной связности Dp вершины, соответствующие единицам первой строки матрицы Sp. В качестве матрицы A(Dp) возьмем подматрицу матрицы A(D), состоящую из элементов матрицы A, находящихся на пересечении строк и столбцов, соответствующих вершинам из Vp.

3. Вычеркиваем из Sp строки и столбцы, соответствующие вершинам из Vp. Если не остается ни одной строки (и столбца), то p- количество компонент сильной связности. В противном случае обозначим оставшуюся после вычеркивания срок и столбцов матрицу как Sp+1, присваиваем p=p+1 и переходим к п. 2.

Пример.

Выделим компоненты связности ориентированного графа, изображенного на рис. 20.4. В данной задаче количество вершин n=5.

Гамма-алгоритм (в общем виде) 1 страница - student2.ru

Рисунок 20.4

Значит, для данного ориентированного графа матрица смежности будет иметь размерность 5×5 и будет выглядеть следующим образом

Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Найдем матрицу достижимости для данного ориентированного графа:

Гамма-алгоритм (в общем виде) 1 страница - student2.ru , Гамма-алгоритм (в общем виде) 1 страница - student2.ru ,

Гамма-алгоритм (в общем виде) 1 страница - student2.ru ,

Следовательно,

Гамма-алгоритм (в общем виде) 1 страница - student2.ru

Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Таким образом, матрица сильной связности будет следующей:

Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Присваиваем p=1 Гамма-алгоритм (в общем виде) 1 страница - student2.ru и составляем множество вершин первой компоненты сильной связности D1: это те вершины, которым соответствуют единицы в первой строке матрицы S(D). Таким образом, первая компонента сильной связности состоит из одной вершины Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Вычеркиваем из матрицы S1(D) строку и столбец, соответствующие вершине v1, чтобы получить матрицу S2(D):

Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Присваиваем p=2. Множество вершин второй компоненты связности составят те вершины, которым соответствуют единицы в первой строке матрицы S2(D), то есть Гамма-алгоритм (в общем виде) 1 страница - student2.ru . Составляем матрицу смежности для компоненты сильной связности Гамма-алгоритм (в общем виде) 1 страница - student2.ru исходного графа D − в ее качестве возьмем подматрицу матрицы A(D), состоящую из элементов матрицы A, находящихся на пересечении строк и столбцов, соответствующих вершинам из V2:

Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Вычеркиваем из матрицы S2(D) строки и столбцы, соответствующие вершинам из V2 ,чтобы получить матрицу S3(D), которая состоит из одного элемента: Гамма-алгоритм (в общем виде) 1 страница - student2.ru и присваиваем p=3. Таким образом, третья компонента сильной связности исходного графа, как и первая, состоит из одной вершины Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Таким образом, выделены три компоненты сильной связности ориентированного графа D (рис. 20.5):

D1: Гамма-алгоритм (в общем виде) 1 страница - student2.ru D2: Гамма-алгоритм (в общем виде) 1 страница - student2.ru Рисунок 20.5   D3: Гамма-алгоритм (в общем виде) 1 страница - student2.ru

20.5 Метрические характеристики связных графов

Определение. Расстояние Гамма-алгоритм (в общем виде) 1 страница - student2.ru между вершинами Гамма-алгоритм (в общем виде) 1 страница - student2.ru и Гамма-алгоритм (в общем виде) 1 страница - student2.ru графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru – это длина кратчайшей цепи между Гамма-алгоритм (в общем виде) 1 страница - student2.ru и Гамма-алгоритм (в общем виде) 1 страница - student2.ru . Если от вершины Гамма-алгоритм (в общем виде) 1 страница - student2.ru до вершины Гамма-алгоритм (в общем виде) 1 страница - student2.ru не ведет ни одна цепь, то Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

В связном графе определенное таким способом расстояние удовлетворяет всем аксиомам метрики, а именно:

1. Гамма-алгоритм (в общем виде) 1 страница - student2.ru , причем Гамма-алгоритм (в общем виде) 1 страница - student2.ru только при Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

2. Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

3. Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Определение. Диаметром Гамма-алгоритм (в общем виде) 1 страница - student2.ru графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru называется максимальное расстояние Гамма-алгоритм (в общем виде) 1 страница - student2.ru в графе Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Пример.В графе на рис. 20.6 различные вершины соединены минимальными цепями со следующими длинами:

Гамма-алгоритм (в общем виде) 1 страница - student2.ru ;

Гамма-алгоритм (в общем виде) 1 страница - student2.ru откуда следует, что диаметр графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Гамма-алгоритм (в общем виде) 1 страница - student2.ru

Рисунок 20.6

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

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

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

Пример.На рис. 20.7 показан плоский граф с пятью занумерованными гранями. Граница грани с номером 3 состоит из двух циклов, а граница грани с номером 2 кроме цикла длины 5 включает еще дерево из трех ребер.

Гамма-алгоритм (в общем виде) 1 страница - student2.ru

Рисунок 20.7

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

Пример.На рис. 20.8 показаны две плоские укладки одного графа. В левой укладке (рис. 20.8 а)) есть две грани, границы которых являются простыми циклами длины 5. В правой укладке (рис. 20.8 б)) таких граней нет, но есть грани, ограниченные циклами длины 4 и 6.

Гамма-алгоритм (в общем виде) 1 страница - student2.ru Гамма-алгоритм (в общем виде) 1 страница - student2.ru

а) б)

Рисунок 20.8

Теорема (формула Эйлера). Количество граней в любой плоской укладке планарного графа, имеющего Гамма-алгоритм (в общем виде) 1 страница - student2.ru вершин, Гамма-алгоритм (в общем виде) 1 страница - student2.ru ребер и Гамма-алгоритм (в общем виде) 1 страница - student2.ru компонент связности, равно Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Определение. Эксцентриситет Гамма-алгоритм (в общем виде) 1 страница - student2.ru вершины Гамма-алгоритм (в общем виде) 1 страница - student2.ru в связном графе Гамма-алгоритм (в общем виде) 1 страница - student2.ru – это расстояние от Гамма-алгоритм (в общем виде) 1 страница - student2.ru до наиболее удаленной от нее вершины.

Пример.Эксцентриситет вершины 8 графа на рис. 20.9 равен Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Гамма-алгоритм (в общем виде) 1 страница - student2.ru

Рисунок 20.9

Определение.Наименьший из эксцентриситетов называется радиусом Гамма-алгоритм (в общем виде) 1 страница - student2.ru графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Пример.Найдем все эксцентриситеты графа на рис. 20.10: Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Гамма-алгоритм (в общем виде) 1 страница - student2.ru

Рисунок 20.10

Наименьший эксцентриситет равен 2, следовательно, радиус графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru . Наибольший эксцентриситет равен диаметру графа.

Определение.Вершина Гамма-алгоритм (в общем виде) 1 страница - student2.ru называется центральной вершиной графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru , если на ней достигается минимум эксцентриситетов, то есть Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Вершина Гамма-алгоритм (в общем виде) 1 страница - student2.ru называется периферийной, если Гамма-алгоритм (в общем виде) 1 страница - student2.ru .

Определение.Простая цепь, расстояние между концами которой равно Гамма-алгоритм (в общем виде) 1 страница - student2.ru , называется диаметральной цепью.

Пример.На рис. 20.11 все вершины, кроме вершины 2, являются периферийными, (1,2,3) – диаметральная цепь.

Гамма-алгоритм (в общем виде) 1 страница - student2.ru

Рисунок 20.11

Определение. Центром графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru называется множество всех его центральных вершин; центр может состоять из единственной вершины, может – из двух и более вершин.

Пример.В графе на рис. 20.10 два центра – вершины 3 и 5.

Центр графа может совпадать с множеством всех вершин. Например, центр простой цепи при четном числе вершин Гамма-алгоритм (в общем виде) 1 страница - student2.ru состоит ровно из двух вершин, а при нечетном – из одной; для цикла же все вершины являются центральными.

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

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

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

20.6 Эйлеровы графы

Определение. Эйлеров цикл (эйлерова линия, замкнутая эйлерова цепь, эйлерова цепь) – это цикл, содержащий все ребра графа.

Определение.Граф, содержащий эйлеров цикл, называется эйлеровым графом (рис 20.12).

Гамма-алгоритм (в общем виде) 1 страница - student2.ru

Рисунок 20.12

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

Гамма-алгоритм (в общем виде) 1 страница - student2.ru

Рисунок 20.13

Теорема 20.1. Если в связном графе все вершины четны, то этот граф содержит эйлеров цикл.

Верно и обратное утверждение: если граф содержит эйлеров цикл, то все его вершины четны.

Теорема 20.2. Если в связном графе две вершины нечетны, а все остальные – четны, то этот граф содержит эйлерову разомкнутую цепь.

Определение. Всякую линию, которую можно провести, проходя по заданным участкам точно по одному разу, называют уникурсальной.

Применительно к эйлеровым графам провести уникурсальную линию – это значит пройти по всем ребрам графа по одному разу, не отрывая карандаш от бумаги. Заметим, что разомкнутая уникурсальная линия всегда начинается с нечетной вершины и заканчивается в другой нечетной вершине. Если же начать обход полуэйлерового графа с четной вершины, то уникурсальную линию, ни замкнутую, ни разомкнутую, построить не удастся.

Эйлеровы графы иногда называют уникурсальными.

Теорема 20.3. Если в связном графе Гамма-алгоритм (в общем виде) 1 страница - student2.ru содержится Гамма-алгоритм (в общем виде) 1 страница - student2.ru нечетных вершин, то в нем имеется Гамма-алгоритм (в общем виде) 1 страница - student2.ru разомкнутых эйлеровых цепей, в совокупности содержащих все ребра графа Гамма-алгоритм (в общем виде) 1 страница - student2.ru точно по одному разу.

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

Пример.Граф на рис. 20.14 содержит четыре нечетные вершины, следовательно, Гамма-алгоритм (в общем виде) 1 страница - student2.ru . При его изображении карандаш от бумаги придется оторвать один раз. Если начать с вершины 1, то получим две уникурсальные линии: 1,3,4,2,1,2,4 и 2,3.

Гамма-алгоритм (в общем виде) 1 страница - student2.ru

Рисунок 20.14

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

Наши рекомендации