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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
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-связным.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]