Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теория и практика построения и применения сетей и графов. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
1.1. Графы как модели
11
Для разреженных графов (тех, у которых относительно мало рёбер) список смежности занимает меньше места, чем матрица смежности. Для плотных графов (с большим количеством рёбер) использование простран­ства списка и матрицы смежности сопоставимо. Каждое описание графа имеет свои преимущества и недостатки с точки зрения эффективности вычислений. Однако матрица смежности имеет больше теоретических применений, поскольку в этом случае может быть применен аппарат ли­нейной алгебры. Часто бывает полезно представить граф с помощью ри­сунка. Именно возможность визуального анализа добавляет привлека­тельности теории графов.
Определение. Изображение графа – это множество точек (вершин) и попарно соединяющих их линий (не обязательно прямых). В графе важен только факт наличия связи между двумя вершинами. От способа изображе­ния этой связи структура графа не зависит. Названия вершин и ребер могут быть написаны рядом с ними на чертеже.
Но как следует рисовать граф? Как минимум, вершины должны иметь различные местоположения, а ребра не должны пересекать вершины, кото­рым они не инцидентны. Рёбра могут пересекаться, но обычно они не должны пересекаться более одного раза. Способов нарисовать граф может быть довольно много. Не существует единственного наилучшего изображе­ние графа, скорее есть варианты, подчёркивающие разные свойства графа.
Один из способов представления графа, например, разместить все вершины по окружности и сделать все ребра прямыми линиями, которые являются хордами окружности. Некоторые компьютерные программы ис­пользуют этот метод, когда не вводится никакой информации о то м, где разместить вершины. Однако этот способ приводит к появлению много­численных пересечений рёбер, что может затруднить правильное визу­альное восприятие.
Другой способ представления графа – начать с одной вершины, ря­дом расположить её соседей, потом попытаться приблизить к каждой новой вершине её соседей и так далее. Независимо от того, какой способ постро­ения графа используется, обычно требуется несколько попыток, чтобы найти наиболее полезное изображение графа.
Пример. Сначала нарисуем граф (рис. 1.4, слева), у которого вер­шины изначально производным образом расположены по окружности.
1. Теоретические основы построения графов
12
Можно заметить, что граф содержит две группы из 4-х вершин: {1, 2, 3, 4} – одна группа и {5, 6, 7, 8} – другая группа. Можно поменять местами две пары вершин, чтобы убрать излишнее пересечение ребер в центре графа (изображение в центре). Наконец, можно переместить группу {5, 6, 7, 8} внутрь квадрата другой группы {1, 2, 3, 4}, чтобы рёбра вообще не пересе­кались (изображение справа). В результате получаем симметричное, визу­ально правильное изображение графа.
Рис. 1.4. Преобразования изображений одного и того же графа
Тот факт, что граф может быть представлен многими различными
способами, поднимает проблему того, что два графа, которые кажутся раз­ными, могут быть, по сути, одинаковыми. Говорят, что два графа изо­морфны, если их вершины могут быть переименованы или перемещены та­ким образом, что графы станут одинаковыми.
Можно создать изображение графа, не называя его вершин. Такой граф называется немаркированным графом. Немаркированный граф можно рассматривать как представляющий все возможные помеченные графы с одинаковой структурой. Два немаркированных графа изоморфны, если можно пометить их вершины так, чтобы они были одинаковыми. Если два немаркированных графа G и H изоморфны, будем писать G = H.
Будем называть граф с именованными вершинами помеченным гра­фом. Без дополнительного контекста «граф» будет означать немаркирован­ный граф. Практические приложения обычно включают помеченные графы, в то время как теоретические задачи чаще всего имеют дело с не­маркированными графами. Когда мы работаем с помеченным графом, ко­торый не является производным от конкретного приложения, нам просто нужно n различных имён для вершин, где n – количество вершин в графе.
1.1. Графы как модели
13
Естественным выбором является использование множества [n] = {1, …, n} в качестве множества вершин.
Пример. Пусть V(G) = n, т.е. граф G содержит n вершин. Вычислим
сколько существует обыкновенных графов на этом множестве вершин. Все они отличаются друг от друга только множествами рёбер, а каждое ребро – это неупорядоченная пара различных элементов из множества V(G). Чтобы найти число таких пар нужно найти число сочетаний пар на множестве n вершин, это число равно n х (n − 1) / 2. Каждая пара может быть включена или не включена в множество рёбер графа. Таким образом, число графов с n вершинами определяется по формуле
2
1)n(n
2Gn
−
=
,
где Gn – число графов на n вершинах.
Введём обозначения для количества вершин и рёбер графа.
Определение. Порядок n(G) = | V(G) | графа G – это число вершин в графе G. Размер m(G) = | E(G) | графа G – это число рёбер графа G. Когда контекст понятен, т.е. идёт обсуждение одного графа, то можно упростить обозначения порядка и размера до n и m соответственно. Мы будем исполь­зовать только n и m для представления порядка и размера, таким образом полный граф Kn имеет порядок n.
Определение. Полный граф Kn имеет порядок n; у такого графа каж­дая пара вершин является смежной. Пустой граф Kn имеет порядок n и не имеет рёбер. Уникальный граф с одной вершиной K1 называется тривиаль­ным графом. Граф с более чем одной вершиной – нетривиален.
Полный граф Kn имеет размер, равный числу сочетаний
2
1)n(n
С
2 n
−
=
, поскольку каждая пара вершин образует ребро (рис. 1.5).
Рис. 1.5. Полные графы: К3, К4 , К5 , К6
1. Теоретические основы построения графов
14
Полные и пустые графы являются противоположными крайностями для графа с n вершинами. Эти классы графов интересны сами по себе. Ко­гда мы изучаем незнакомый параметр или свойство графов, мы обычно сна­чала применяем его к этим классам, поскольку с них мы и начинаем при­менять метод индукции.
Определение. Степенью вершины v называется число рёбер, инци­дентных v. Вершина со степенью 0 является изолированной вершиной. Вершина со степенью 1 – это лист. Чётной вершиной называется вершина с чётной степенью; нечётной вершиной называется вершина с нечётной степенью. Окрестность вершины v, N(v) является множеством соседней вершины v. Обратите внимание, что степень вершины – это количество вершин в её строке списка смежности и число единиц в её строке (или столбце) матрицы смежности.
Пример. Авиакомпании обычно не делают рейсы напрямую между двумя небольшими городами. Вместо этого они летают из аэропорта не­большого города в аэропорт большого города, который выполняет рейсы во многие другие аэропорты меньшего размера и другие узловые аэро­порты. Аэропорт-узел можно идентифицировать по относительно боль­шому значению степени вершины, которую он представляет на графе, мо­делирующем авиарейсы.
Определение. Последовательность степеней графа G – это список его степеней, обычно записываемый в порядке возрастания. Его минималь­ная степень равна δ(G). Его максимальная степень равна ∆(G).
Граф называется регулярным, если каждая вершина имеет одинако­вую степень (k-регулярный, если общая степень равна k). Например, 3-ре­гулярный граф – это кубический граф. Число вершин регулярного графа k-й степени не может быть меньше k + 1. У регулярного графа нечётной степени может быть лишь чётное число вершин.
Пример. Следующий граф G (рис. 1.6) имеет последовательность степеней 4, 3, 2, 2, 1, ∆( G) = 4, а δ(G) = 1.
Рис. 1.6. Пример неориентированного графа
1.1. Графы как модели
15
Существует множество взаимосвязей между параметрами графа.
Следующую теорему называют первой теоремой теории графов.
Теорема 1 (первая теорема теории графов)1. Если G – граф, то сумма весов всех вершин ∑d(vi) равна удвоенному
количеству всех рёбер.
Доказательство. Рассмотрим множество всех совпадений вершин с рёбрами (с «концами» рёбер) в графе. Разбиение множества на вершины показывает, что его мощность равна сумме значений. Разбиение набора по рёбрам показывает, что каждое ребро появляется дважды, поэтому его мощность равна 2m. Таким образом, ∑d(vi) = 2m.
Эта теорема также известна под названием «формула суммы степе­ней». В доказательстве используется метод, известный как подсчёт двумя различными способами, в результате которых получают тождество.
Следствие теоремы 1. Каждый граф имеет чётное число вершин не­чётной степени.
Доказательство. Предположим, наоборот, что граф имеет нечётное число нечётных вершин. Тогда сумма его степеней должна быть нечётной, что противоречит первой теореме.
И это следствие, и первую теорему иногда называют леммой о руко­пожатии. Результаты интерпретируются на примере вечеринки, где люди обмениваются рукопожатиями при встрече (или прощании). Поскольку вершины графа представляют людей, а ребра – рукопожатия между парами, из леммы следует, что чётное число людей пожимает нечётное число рук.
Из первой теоремы непосредственно вытекает, что средняя степень графа равна (2m / n). Следовательно, верно следующее неравенство δ (G) ≤ 2m / n ≤ ∆ (G). Кроме того, количество рёбер k-регулярного графа порядка n равно m = (n х k) / 2.
Графы могут быть объединены в классы по определённым свой­ствам или параметрам. Выше уже было дано определение классу полных графов. Дадим определения несколько другим важным классам графов.
Определение. Путь Pn − это граф, вершины которого могут быть про­нумерованы v1, v2, …, vn так, что его ребра равны v1v2, …, v
n-1vn
.
1
Алексеев В. Е, Захарова Д. В. Теория графов: учебное пособие. Нижний
Новгород: Нижегородский госуниверситет, 2017.
1. Теоретические основы построения графов
16
Цикл Cn (или n-цикл) − это граф, вершины которого могут быть про-
нумерованы v1, v2, …, vn так, что его ребра равны v1v2, …, v
n-1vn
и vn v1.
Чётный цикл имеет n чётных значений, а нечётный цикл имеет n нечётных значений. Небольшие пути и циклы представлены на рис. 1.7.
Рис. 1.7. Примеры путей и циклов графа
Многие математические объекты содержат подобъекты. Множества
содержат подмножества. Группы содержат подгруппы. Векторные про­странства содержат подпространства. То же самое верно и для графов.
Определение. Граф H является подграфом графа G, если V(H) ⊆ ⊆ V(G) и E(H) ⊆ E(G), так что ребра в E(H) используют только вершины в V(H). Мы пишем H ⊆ G и говорим, что G содержит H.
Индуцированный подграф – это подграф G[S] с вершинами из мно­жества S ⊆ V(G) и всеми рёбрами с обоими концами в S. То есть индуци­рованным называют подграф, в котором все вершины включают в себя все рёбра исходного графа, инцидентные вершинам множества S.
Определение. Кликой графа G называют его максимальный полный подграф или множество вершин, порождающих полный подграф, т.е. под­граф, все вершины которого попарно являются смежными. При этом мак­симальным полным подграфом клика называется в том смысле, что ника­кой другой подграф, содержащий клику и не совпадающий с ней, не явля­ется полным.
Независимый набор вершин – это набор, который индуцирует пу­стой граф. Графы, которые не содержат определённых подграфов, также представляют интерес.
Почти любой тип математических объектов имеет соответствующие математические операции для манипулирования объектами и создания но­вых объектов. Числа, например, можно складывать или делить. Функции
1.1. Графы как модели
17
можно умножать. Множества могут быть дополнены или пересекаться друг с другом. Подобные операции существуют и для графов.
Определение. Дополнение графа G называется граф Ḡ, который имеет тот же набор вершин, что и граф G, а рёбра только те, которые необходимо добавить, чтобы получить полный граф с множеством вершин V(G).
Пример. Пусть у нас есть граф G = <V; R>, тогда дополнением этого графа будет граф G = <V; V2\R>, где V
2 –
это все пары вершин которые имеют
дуги и рёбра, которых не было в графе G, но при добавлении которых граф G становится полным. Пример графа и его дополнения приведены на рис. 1.8.
Рис. 1.8. Граф G = <V;R> его дополнение граф 𝐆 = <V; V2\R>
Определение. Для графа может быть реализована операция добавле­ния вершины. При этом новых связей (рёбер) не добавляется. Например, если к графу G = <V;R> мы добавим вершину {k}, то мы получим граф H = G∪{k}= <V∪{k}; R> (рис. 1.9).
Рис. 1.9. Графы G и H
Определение. Добавление дуги или ребра происходит на том же множестве вершин, но новый граф Q уже будет таким: Q1 = G∪{ij}= = <V; R∪{ij}>. Аналогично, дуга может быть и удалена, и новый граф Q2 будет тогда таким: Q2 = G\ {ab} = <V; R\{ab}> (рис. 1.10).
Определение. Удаление вершины происходит следующим образом: вместе с ней удаляются все инцидентные ей дуги. G1 = G\{c} = <V\{c}; R\{(ij)| i = c или j = c}> (рис. 1.11).
1. Теоретические основы построения графов
18
Рис. 1.10. Графы Q и Q1
Рис. 1.11. Графы G и граф G1
Определение. Декомпозиция G – это набор непустых подграфов,
удовлетворяющих некоторым специальным условиям, и полностью покры­вающие граф G.
Рассмотрим несколько бинарных операций: объединение, пересече-
ние, соединение и декартово произведение графов.
Определение. Объединение графов G и H, G∪H является графом с
множеством вершин V(G) ∪ V(H) и множеством рёбер E (G) ∪ E(H). Объ­единение называется непересекающимся объединением, если множества вершин графов не пересекаются. Когда мы работаем с немаркированными графами, мы рассматриваем непересекающееся объединение.
Пример. В результате объединения двух графов (рис. 1.12, слева) по-
лучился новый граф (рис. 1.12, справа).
Рис. 1.12. Слева представлены два графа, справа – их объединение в один граф
Можно нарисовать первый граф и к нему добавить недостающие
элементы второго графа, тем самым получить объединение двух графов.
1.1. Графы как модели
19
Определение. Пересечение графов G1 = <V1; R1> и G2 = <V2; R2> яв­ляется граф Н, если H = G1 ∩ G2 <V1 ∩ V2; R1 ∩ R2>.
Пример. Результат пересечения двух графов, представленных слева, новый граф (рис. 1.13, справа).
Рис. 1.13. Слева два графа, справа – их пересечение
Определение. Кольцевой суммой графов G1 = < V1; R1 > и G2 = = < V2; R2 > назовём граф H = < V1 ∪ V2; R1 ⊗ R2 >. Кольцевой суммой назы­вается объединение двух множеств с исключением их пересечения (рис. 1.14).
Рис. 1.14. Слева представлены два графа, справа – их кольцевая сумма
То есть чтобы получить кольцевую сумму двух графов, нужно найти их объединение и удалить дуги, которые есть в их пересечении.
Определение. Декартово произведение двух графов G1 = < V1; R1 > и G2 = < V2; R2 > есть граф H = G1 ⊗ G2 = < V(G1) ⊗ V(G2); R >, где множество дуг R:
 
=
=
12121
22121
2211
R)x;(x;yy
R)y;(y;xx
))y;(x);y;x((
.
Например, декартово произведение двух графов Р3 и Р4 является пря­моугольной решёткой (рис. 1.15).
То есть множество вершин графа G1 ⊗ G2 является декартовым произведением множеств V(G1) и V(G2), т.е. вершины этого графа – это пары упорядоченных вершин (xi;yi), где xi ∈ V1, а yi ∈ V2. Вершины (x1;y1) и (x2;y2) в графе H = G1 ⊗ G2 являются смежными тогда и только тогда, когда x1 = x2 и существует дуга (y1;y2) ∈ R2, т.е. y1 и y2 – смежные вершины
1. Теоретические основы построения графов
20
в графе G2 или y1 = y2, и существует дуга (x1;x2) ∈ R1, т.е. x1 и x2 – смежные вершины в графе G1.
Рис. 1.15. Декартово произведение графов P3 и P4
Теперь рассмотрим, как можно перемещаться по графу через смеж-
ные ребра.
Определение. Маршрут − это список вершин и рёбер {v0, e1, v1, …,
ek, vk}, таких, что ei = {v
i-1,vi
} . Будем называть (u−v)-путь, если u и v – вер-
шины графа, и u = v0 и v = vk, и они – конечные вершины списка. Путь считается закрытым, если его конечные вершины совпадают.
(U−v)-путь – это путь с конечными точками u и v. Другие его вер-
шины являются внутренними вершинами. Длина обхода, траектории или цикла – это количество содержащихся в нем рёбер. Обратите внимание, что путь – это маршрут без повторяющихся вершин. Длина пути Pn равна n − 1, так как n – 1 ребро входит в путь Pn.
Пример. На приведённом ниже графике {u, z, y, v, u, x, y, v} − это
(u−v)- путь длиной 7, а {u, x, y, v} – это (u – v)-путь длиной 3 (рис. 1.16).
Рис. 1.16. Пример (u – v)-путей графа
Определение. Граф считается подключённым или связным, если он
содержит (u − v) – путь для всех вершин u и v. Граф считается отключённым, если он несвязный. Любой несвязный граф является непересекающимся
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]