Скажите, пожалуйста, можно ли еще получить документ о прохождении курса ("Графы и алгоритмы", декабрь 2020) после предоставления всех дополнительных необходимых документов? |
Блоки
Блоки
Если граф состоит из нескольких компонент связности, то его можно изучать "по частям", и это может упростить описание графа и облегчить решение многих задач. Однако и связный граф иногда можно представить как состоящий из частей, и такое представление также может быть полезным. После компонент связности простейшими частями такого рода являются блоки (называемые также компонентами двусвязности). Блок - это максимальный подграф графа, не имеющий собственных шарниров (т.е. некоторые шарниры графа могут принадлежать блоку, но своих шарниров у блока нет). На рис. 6.1 изображены граф и его блоки . Ниже будет дано другое определение блока, из которого ясно, почему блоки называют компонентами двусвязности. Затем будут рассмотрены некоторые свойства блоков и описан алгоритм выявления блоков, основанный на поиске в глубину.
Двусвязность
Связный граф с не менее чем тремя вершинами, в котором нет шарниров, называется двусвязным. Примеры двусвязных графов - цикл и полный граф , цепь же не является двусвязным графом ни при каком .
Будем говорить, что два элемента графа (напомним, что элементы графа - это вершины и ребра) циклически связаны, если в графе имеется простой цикл, содержащий оба эти элемента.
Теорема 1. В двусвязном графе любые два различных элемента циклически связаны. Если в графе любые два ребра циклически связаны, то он двусвязен.
Доказательство. Докажем сначала, что в двусвязном графе для любых двух различных вершин и имеется простой цикл, проходящий через обе эти вершины. Доказательство проводим индукцией по расстоянию между и . Если , то и смежны. Ребро не является перешейком (иначе хотя бы одна из вершин , была бы шарниром). Но тогда в графе имеется простой цикл, проходящий через это ребро. Пусть . Рассмотрим кратчайший путь из в , и пусть - предпоследняя вершина этого пути. Тогда и, по предположению индукции, существует простой цикл , содержащий вершины и . Так как вершина - не шарнир, то существует простой путь из в , не проходящий через . Пусть - первая вершина этого пути, принадлежащая (такая существует, так как . Тогда отрезок пути от до вместе с отрезком цикла от до , содержащим вершину , и с ребром образует простой цикл, содержащий обе вершины и (показан стрелками на рис. 6.2).
Теперь покажем, что для любой вершины и любого ребра двусвязного графа в нем имеется цикл, содержащий эту вершину и это ребро. Как доказано выше, существует простой цикл , содержащий вершины и . Если этот цикл проходит и через , то, заменив в нем отрезок от до , не содержащий , ребром , получим простой цикл, проходящий через вершину и ребро . В противном случае возьмем цикл , содержащий вершины и . Кратчайший отрезок этого цикла, соединяющий с какой-либо вершиной на , вместе с отрезком цикла от до , содержащим вершину , и с ребром образует простой цикл, содержащий это ребро и вершину .
Доказательство того, что в двусвязном графе через любые два ребра проходит простой цикл, почти в точности повторяет предыдущее, только вместо вершины нужно рассматривать ребро .
Остается доказать, что если в графе через любые два различных элемента проходит простой цикл, то этот граф - двусвязный. Действительно, допустим, что вершина - шарнир графа . Возьмем вершины и , смежные с и принадлежащие разным компонентам связности графа, получающегося при удалении вершины . Тогда в не существует цикла, содержащего оба ребра и .
Из этой теоремы следует, что свойство двусвязности можно охарактеризовать следующим образом:
Следствие. Граф с не менее чем двумя ребрами двусвязен тогда и только тогда, когда в нем любые два различных ребра циклически связаны.
Рассмотрим подробнее отношение циклической связанности ребер. Оно, очевидно, симметрично. Будем считать, что каждое ребро циклически связано с самим собой, тогда это отношение будет и рефлексивным. Докажем, что оно на самом деле является отношением эквивалентности.
Теорема 2. Для любого графа отношение циклической связанности ребер является отношением эквивалентности.
Доказательство. Остается доказать транзитивность этого отношения. Пусть - простой цикл, содержащий ребра и , а - простой цикл, содержащий ребра и ; покажем, что существует простой цикл, содержащий ребра и . Если принадлежит , то последний и является этим циклом. Если же не принадлежит , то в есть отрезок , включающий , у которого концевые вершины и принадлежат , а все внутренние вершины не принадлежат . Пусть - отрезок цикла , концами которого являются и и который включает ребро . Соединение и дает простой цикл, содержащий и .
Итак, множество ребер любого графа разбивается на классы эквивалентности по отношению циклической связанности. Каждый перешеек образует отдельный класс эквивалентности. Если граф двусвязен, то имеется единственный класс циклической связанности.