Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория и практика построения и применения сетей и графов. Учебное пособие
.pdf
1.2. Деревья и графы
31
как ребра с цифрами 3, так и ребра с цифрами 4. Однако ребро с весом 5 не
может быть добавлено, так как это создало бы цикл. Могут быть добавлены
оба ребра с числом 6 и одно с числом 7. Можно добавить только одно ребро
с числом 8; другое создало бы цикл. Мы в конечном итоге получим остовное дерево (рис. 1.21, справа).
Рис. 1.21. Пример реализации алгоритма Краскала
Алгоритм Краскала является примером оптимального алгоритма, то
есть он делает оптимальный выбор на каждом шаге.
Теорема 6. Алгоритм Краскала создаёт минимальное связующее де-
рево в связном взвешенном графе.
Доказательство. Алгоритм Краскала должен создать связующее де-
рево T. Пусть T' – минимальное связующее дерево. Если T ≠ T', пусть
e – первое ребро, выбранное для T, которого нет в T'. Добавление e к T'
создаёт одноциклический граф, который содержит ребро e', отсутствующее в T. Рассмотрим остовное дерево T' + e − e'. Все ребра, выбранные
до e, содержатся в обоих деревьях, так что w(e) ≤ w(e'), поскольку алгоритм выбирает e. Таким образом, T ' + e − e' имеет общий вес, не превышающий T', и согласуется с более длинным списком начальных рёбер.
Повторение этого аргумента в конечном итоге показывает, что T является
минимальным связующим деревом.
Алгоритм Краскала – не единственный способ создать минимальное
остовное дерево. Алгоритм Прима и алгоритм Дейкстра начинаются с одной вершины и итеративно добавляют ребро с наименьшим весом, которое
использует новую вершину3. Когда ребра предварительно отсортированы
по весу, эти алгоритмы имеют одинаковое время выполнения.
3
Теоретическая информатика I (алгоритмы) / Режим доступа: https://users.math-
cs.spbu.ru/~okhotin/teaching/tcs1_2018/okhotin_tcs1alg_2018_l8.pdf, (дата обращения
20.07.2023).

1. Теоретические основы построения графов
32
Популярное картографическое программное обеспечение не только
отображает карту с указанием начальной точки и пункта назначения, но и
находит кратчайший маршрут между двумя точками. И задачи на нахождение
минимальных расстояния, время в пути или денежных затрат можно решить, используя теорию графов.
Определение. Расстояние d(u, z) во взвешенном графе − это минимальная сумма весов на любом (u – z)-пути.
Мы хотим найти минимальное расстояние от u до любой вершины z.
Заметим, что если v находится на кратчайшем пути u − z, то в нем должен
содержаться кратчайший (u − v)-путь.
1.2.2. Алгоритм Дейкстры
Начните с взвешенного графа и начальной вершины u. Создайте
наборы вершин, кратчайшее расстояние до u которых известно. Изначально S = {u}. Ведите список предварительных расстояний t(x) от u до
каждого x, которые могут быть уменьшены, если будет найден более короткий путь. Первоначально установите t(u) = 0, t(x) = w (ux) для x ∈ N (u)
и t(x) = ∞ в противном случае.
Пока есть вершины, не входящие в S, с конечными ориентировочными расстояниями, повторите следующие шаги:
1. выберите вершину v S с наименьшим расстоянием t(v);
2. добавьте v к S;
3. обновите предварительные расстояния для каждого ребра vy с
помощью y S; установите t(y) = min (t(y), t(v) + w (vy)).
Конечным значением t(x) является d (u, x).
Пример. Для графа на рис. 1.22 (слева) найдены кратчайшие пути,
начинающиеся с u, к v, r, y, s, w, x, t, z по порядку. Эти пути имеют длину 3, 4,
4, 5, 5, 8, 10, 10 соответственно. Объединение этих путей создаёт связующее
дерево (рис. 1.22, справа). Обратите внимание, что это не связующее дерево с
минимальным весом, поскольку оно включает в себя ребро ur, а не vs.
Теорема 7. Для данного графа, содержащего вершину u, алгоритм
Дейкстры вычисляет d(u, z) для каждой вершины z.
Доказательство. Мы используем индукцию по r, где r = |S|, числу посещённых вершин. Когда r = 1, алгоритм выдает d(u, u) = 0, что явно верно.

1.2. Деревья и графы
33
Предположим, что алгоритм работает для первых r − 1 вершин. Пусть v S –
вершина с наименьшим ориентированным расстоянием на этом шаге.
Рис. 1.22. Пример реализации алгоритма Дейкстры
Предположим, что существует более короткий путь к v, чем тот, который был создан алгоритмом. Если он использует ещё вершину x, которую не посещал, то x будет выбрано алгоритмом перед v, что является противоречием. Если путь использовал все посещённые вершины, кроме v, то
его длина не может быть меньше ориентировочного расстояния. Таким образом, алгоритм создаёт кратчайший путь к v и к каждой вершине.
Расстояние в невзвешенных графах эквивалентно расстоянию во
взвешенном графе, где каждое ребро имеет вес 1. В этом случае алгоритм
Дейкстры известен как поиск в ширину. Эксцентриситет u – это наибольшее расстояние от этой вершины до любой другой вершины. Диаметр графика можно вычислить, используя алгоритм поиска в ширину. Первый поиск начинается с каждой вершины.
Когда граф связный, объединение путей, найденных алгоритмом
Дейкстры или поиском в ширину, образует связующее дерево. Важна вершина, с которой начинается алгоритм.
Определение. Корневое дерево – это дерево с одной выделяющейся
вершиной, называемой корнем.
Корневые деревья являются распространёнными структурами данных
в информатике, поскольку их можно использовать для хранения информации, которую можно быстро извлечь. Они также полезны в некоторых теоретических приложениях, поскольку их можно использовать для построения
больших деревьев путём добавления ребра, примыкающего к корню.
В графе, представляющем электрические сети, вершина будет представлять подстанцию, а ребро – линию электропередачи. Если подстанция
или линия электропередачи выведены из строя, это может привести к

1. Теоретические основы построения графов
34
отключению электроэнергии в некоторых частях сети. Вершины и ребра
графа, удаление которых разъединяет его, заслуживают особого внимания.
Определение. Пусть G – граф. Точкой сочленения назовём вершину v, если G − v имеет больше компонентов, чем G. Мост − это ребро e,
такое, что G – e имеет больше компонентов, чем G. Блок графа – это максимальный подграф без точек сочленения (рис. 1.23).
Рис. 1.23. Подграф без точек сочленения
Утверждение 7. Ребро e графа G является мостом тогда и только тогда, когда e не содержится ни в одном цикле.
Доказательство необходимости. Пусть e = uv − мост, и пусть w и x –
вершины в разных компонентах, как и вершины u и v в графе G – e соответственно. Если e находится в цикле, то существует переход от w к u, к v,
(вдоль цикла) к x, и следовательно, существует путь w − x. А это противоречит тому, что е – мост.
Доказательство достаточности. Докажем от противного. Пусть e =
= uv – ребро G, которое не является мостом. Затем ребро е подключается
к графу G − e и, таким образом, (u − v)- путь вместе с e образует цикл в G.
Пришли к противоречию.
Любая точка сочленения графа содержится по крайней мере в
двух блоках. Всякие концы мостов, за исключением висячих вершин,
являются точками сочленения, однако не каждая точка сочленения является концом моста. Любые два блока имеют не более одной общей
вершины сочленения. Если бы два блока имели две общие вершины, их
объединение не имело бы точки сочленения и, следовательно, было бы
большим блоком. Таким образом, блоки графа разделяют его. Блоки
графа полезны, поскольку можно найти множество параметров графа,
если они известны для каждого блока. Например, размер графа – это
сумма размеров его блоков.

1.2. Деревья и графы
35
1.2.3. Разрезы
Определение. Вершинный разрез графа G − это множество S вер-
шин, так что G – S становится несвязным графом. Связность k(G) связного
неполного графа G – это наименьшее число вершин, удаление которых приводит к несвязному или тривиальному графу. Связность полного графа с n
вершинами – k(Kn) = n − 1, а k(G) = 0, если граф G не является связным.
Граф G называется m-связным, если k(G) = m.
Для S, T ⊆ V (G) пусть [S, T] – множество рёбер, один конец которых
находится в S, а другой – в T. Рёберный разрез мультиграфа G − это множество X = [S, T] рёбер, так что G-X имеет больше компонентов, чем G.
Рёберная связность λ(G) связного графа – это наименьшее число рёбер, удаление которых приводит к несвязному или тривиальному графу. Несвязанный граф имеет λ(G) = 0. Граф является k-рёберно-связным, если λ(G) ≥ k.
Часто мы можем выразить разрез ребра как множество
]S[S,X =
, где
SV(G)S −=
.
Эти определения обобщают понятия точек сочленения и мостов. Связный граф G с точкой сочленения имеет вершинную связность k(G) = 1. Связ-
ный граф G с мостом имеет рёберную связность λ(G) = 1.
Пример. «Бабочка» G = K1 + 2K2 соединена вершиной, которая является точкой сочленения, так что k(G) = 1. У этого графа нет моста, но удаление двух рёбер треугольника разъединяет график, так что рёберная связность λ(G) = 2 (рис. 1.24).
Рис. 1.24. Граф G = K1 + 2K
2
Пример. Рёберный разрез полного графа Kn должен разделить k вершин, 1 ≤ k < n, от других n − k вершин. Таким образом, по крайней мере
k*(n − k) рёбер должны быть удалены. Минимальное значение этого выражения равно n − 1 при k = 1, таким образом, k(Kn) = n − 1.
Определение. Тривиальный рёберный разрез содержит все рёбра, падающие на общую вершину, т.е. на вершину, являющуюся точкой сочленения. Скрепление – это минимальный непустой рёберный разрез.

1. Теоретические основы построения графов
36
Утверждение 8. Если G − связный граф, у которого множество X яв-
ляется скреплением, то G-X имеет ровно два связных компонента.
Доказательство от противного. Предположим, что X − это рёберный
разрез, а G – X имеет более двух компонентов. Тогда X содержит ребро e
между какими-либо двумя из них. Добавление обратно e соединяет два компонента, в результате чего получается несвязанный граф с меньшим количеством компонентов, чем G − X. Таким образом, X не является скреплением.
Существует естественная взаимосвязь между связностью, рёберной
связностью и минимальной степенью.
Теорема 8. Для любого графа G, k(G) ≤ k'(G) ≤ δ(G).
Доказательство. Ребра, пересекающиеся с вершиной минимальной
степени, образуют тривиальный срез ребра, так что λ(G) ≤ δ(G).
Рассмотрим минимальный рёберный разрез
]S[S,X =
. Если все рёбра
присутствуют между указанным S и S, то λ(G) = | S | и
k(G)1n|S| −
.
В противном случае пусть u ∈ S и v ∈ S будут несмежными. Пусть U
содержит всех соседей u в S и все вершины S − {u} с соседями в S
(на рис. 1.25 окрашены в чёрный цвет). Любой (u − v)-путь содержит вершину из множества U, поэтому множество U – это вершинный разрез. Те-
перь рёбра от u до S и по одному ребру от каждой вершины из U∩S до S
дают | U | различных рёбер X. Таким образом λ(G) ≥ | U | ≥ k(G).
Рис. 1.25. Рёберный разрез
]S[S,X =
Теорема 9. Если G имеет диаметр 2, то λ(G) = δ (G).
Доказательство. Пусть
]S[S,X =
– минимальный рёберный разрез.
Теперь S и S не могут одновременно иметь вершины u и v, которые не
инцидентны
]S[S,X =
, поскольку тогда diam (G) ≥ d (u, v) ≥ 3. Пусть S

1.2. Деревья и графы
37
такое, что каждая вершина инцидентна
]S[S,X =
. Таким образом
δ(G)λ(G)]S[S,|S|
. Каждая вершина в S инцидентна не более чем
c | S | –1 ребром в G[ S ], и, таким образом, по меньшей мере δ(G) − |S| + 1
рёбер в
]S[S,X =
. Таким образом,
1)|S|((G)|S||]S[S,| λ(G) +−=
.
Это последнее выражение достигает своего минимального значения
δ(G), когда | S | = 1 или | S | = δ(G). В обоих случаях мы имеем λ(G) ≥ δ(G),
таким образом, λ(G) = δ (G).
Теорема 10 (теорема Менгера)4. По определению, граф связный то-
гда и только тогда, когда существует путь между любой парой вершин.
Это означает, что граф имеет связность 0 тогда и только тогда, когда нет
пути между некоторой парой вершин. Ещё из этих рассуждений следует,
что граф имеет связность 1 тогда и только тогда, когда любой путь между
некоторой парой вершин проходит через вершину, которая является точкой сочленения.
Пример. На графе S = {f, g} − это вершинный разрез, разделяющий вершины u и v (рис. 1.26). Есть два (u – v)-пути, выделенные жирным шрифтом,
которые не имеют общих внутренних вершин. Таких путей не может быть более двух, так как каждая вершина в S должна находиться на одном из них.
Рис. 1.26. S = {f, g} − это вершинный разрез, разделяющий вершины u и v
Теорема Менгера раскрывает простую взаимосвязь между разрезами
вершин и непересекающимися путями между вершинами. Мы начнём с
леммы, которая содержит суть этой теоремы.
4
Паросочетания, свадьбы и теорема Менгера / Режим доступа: http://www.
williamspublishing.com/PDF/978-5-907144-75-0/part.pdf, (дата обращения: 21.07.2023).

1. Теоретические основы построения графов
38
Определение. Пусть D – орграф. Для множеств вершин A и B из D
AB-путь – это путь, начинающийся в A, заканчивающийся в B и не содер-
жащий других вершин ни того, ни другого подмножества. Единственная
вершина A∩B принадлежит этому пути. AB-разрез − это множество S вершин графа D, такое, что D – S не содержит AB-пути. AB-соединитель – это
подграф D, каждый компонент которого является AB-путем (пустой граф
также является AB-соединителем).
Лемма 2. Пусть D – конечный орграф, пусть A и B – множества вершин из D, и пусть s – минимальное число вершин, образующих AB-разрез.
Тогда есть множество С, состоящее из s путей, каждый из которых является
AB-соединителем.
Доказательство. Мы используем индукцию по количеству рёбер.
Если D пусто, установите C = A∩B. Предположим, что результат справедлив для орграфов с числом рёбер менее m. Пусть D – орграф размером m,
содержащий ребро e = xy. Теперь D’ = D − e имеет размер m − 1, так что D’
имеет AB-разрез S с | S | ≤ s. Если | S | = s, то гипотеза индукции подразумевает, что D’ имеет AB-соединитель, поэтому D также его имеет.
Таким образом, мы предполагаем, что | S | < s. Тогда P = S{x} и
Q = S{y} являются AB-разрезами множества D. Тогда, | P | = | Q | = | S |+
+ 1 = s. AP-разрез (так же как и QB-разрез) D’ является AB-разрезом D.
Следовательно, D’ имеет AP-соединитель X, содержащий P, и QB-соединитель Y, содержащий Q. Тогда C = (X Y ) + e состоит из s путей, так как
X ∩ Y = S.
Определение. Пусть D – орграф. Для вершин u и v из D пусть uvразрез представляет собой множество S вершин из D таким образом, что
D − S не содержит (u − v)-пути. Набор (u − v)-путей является независимым,
если ни одна пара из них не имеет какой-либо общей внутренней вершины.
Теорема 11 (модифицированная теорема Менгера). Пусть u и v – не-
совпадающие вершины орграфа D. Тогда минимальный размер uv-разреза
равен максимальному числу независимых (u− v)-путей.
Доказательство. UV-разрез должен содержать отдельную внутреннюю вершину из каждого (u − v)-пути. Таким образом, минимальный размер uv-разреза равен, по крайней мере, максимальному числу независимых
(u − v)-путей.

1.2. Деревья и графы
39
Чтобы показать равенство, пусть A = N(u) и B = N(v) и примените
лемму. Добавление рёбер, пересекающихся с u и v, приводит к получению
необходимого количества (u − v)-путей.
Утверждение и доказательство теоремы Менгера также хорошо ра-
ботают для неориентированных графов. Теорема Менгера является примером теоремы min-max, где минимальное значение одного параметра равно
максимальному значению другого параметра.
Результат, аналогичный теореме Менгера, справедлив для реберных
разрезов и траекторий без общих рёбер. Чтобы доказать это, мы применим
операцию, которая преобразует ребра в вершины.
Определение. Линейный граф L(G) графа G – это граф, вершины ко-
торого представляют ребра G, причём вершины L(G) являются смежными,
когда соответствующие ребра G смежны.
Теорема 12. Для графа G существует граф H с L(H) = G тогда и
только тогда, когда G разлагается на клики так, что каждая вершина G появляется не более чем в двух кликах.
Доказательство необходимости. Каждая вершина H со степенью не
менее 2 создаёт клику в G, соответствующую рёбрам, которые все сходятся
в этой вершине. Эти клики разлагают G. Каждая вершина G принадлежит
двум кликам, порождённым концами соответствующего ребра H.
Доказательство достаточности. Пусть Si – множества вершин клик,
которые разлагают G. Мы определим H так, что L(H) = G. Изолированные
вершины G соответствуют K2-компонентам в H, поэтому мы предполагаем,
что δ(G) ≥ 1.
Пусть вершинами H являются Si и вершины G, которые появляются
только с одной стороны (если таковые имеются). Сделайте две вершины H
смежными, если соответствующие наборы вершин перекрываются в G. Все
вершины G содержатся ровно в двух множествах, определяющих V(H), и
ни одна из них не встречается в одних и тех же двух множествах. Таким
образом, ребра H соответствуют вершинам G. Соседние вершины в G находятся в одной и той же клике, поэтому соответствующие ребра в H инцидентны общей вершине. Таким образом, L(H) = G.
Рассмотрим проблему рёберных разрезов и непересекающихся путей
между вершинами. Для рёберных разрезов важно наличие нескольких рёбер
между парами вершин, поэтому мы будем рассматривать мультиграфы.

1. Теоретические основы построения графов
40
Определение. Пусть D – направленный мультиграф. Для вершин u и
v из D пусть uv-рёберный разрез представляет собой множество X рёбер из
D таким образом, что D − X не содержит (u − v)-пути.
Набор (u − v)-путей не зависит от рёбер, если ни одна пара из них не
имеет общего ребра.
Теорема 13. Пусть u и v – различные вершины ориентированного
мультиграфа D. Тогда минимальный размер uv-рёберного разреза равен
максимальному числу независимых от (u− v)-путей.
Доказательство. Постройте D’, добавив вершины x и y и ребра e = xu
и f = vy к D. Это не меняет интересующих нас величин, и каждый путь
можно рассматривать как переход от xu к vy. Теперь X является uv-рёберным разрезом D’ точно тогда, когда соответствующие вершины образуют
ef-разрез L(D’). Кроме того, независимые (u − v)-пути в D соответствуют
независимым (e − f)-путям в L(D’). Поскольку u ≠ v и e не инцидентно f
в L(D’). Поскольку минимальный размер ef-разреза равен максимальному
числу независимых (e – f)-путей в L(D’), минимальный размер uv-разреза
равен максимальному количеству независимых рёбер (u − v)-путей.
Теорема Менгера предполагает взаимосвязь между связностью и независимыми путями. Таким образом, мы должны рассмотреть все возможные пары вершин и пути между ними, чтобы определить связность.
Теорема 14 (теорема Менгера и циклы). Теорема Менгера может
быть сформулирована в частном случае 2-связных графов, и в этом случае
существуют дополнительные характеристики.
Следствие теоремы 14. Следующее эквивалентно для графа G:
1. G имеет 2 соединения;
2. для любой пары вершин G существуют два независимых пути
между ними;
3. любая пара вершин G лежит на общем цикле.
Доказательство. Пункты 1 и 2 – это всего лишь теорема Менгера.
Пункт 3. Два независимых (u − v)-пути образуют цикл, и цикл, содержащий вершины u и v, может быть разделен на два независимых пути.
Лемма 3. Если G является k-связным графом, то граф, образованный
добавлением вершины, смежной с k вершинами G, является k-связным.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
