Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Граф достижимости ⇐ ПредыдущаяСтр 3 из 3
Один из первых вопросов, возникающих при изучении графов, это вопрос о существовании путей между заданными или всеми парами вершин. Ответом на этот вопроc - введенное выше отношение достижимости на вершинах графа G=(V, E): вершина wдостижима из вершины v, если v = w или в G есть путь из v в w. Иначе говоря, отношение достижимости является рефлексивным и транзитивным замыканием отношения E. Для неориентированных графов это отношение также симметрично и, следовательно, является отношением эквивалентности на множестве вершин V. В неориентированном графе классы эквивалентности по отношению достижимости называются связными компонентами. Для ориентированных графов достижимость, вообще говоря, не должна быть симметричным отношением. Симметричной является взаимная достижимость. Определение 9.8. Вершины v и w ориентированного графа G=(V, E) называются взаимно достижимыми, если в G есть путь из v в w и путь из w в v. Ясно, что отношение взаимной достижимости является рефлексивным, симметричным и транзитивным и, следовательно, эквивалентностью на множестве вершин графа. Классы эквивалентности по отношению взаимной достижимости называются компонентами сильной связности или двусвязными компонентами графа. Рассмотрим вначале вопрос о построении отношения достижимости. Определим для каждого графа его граф достижимости (называемый иногда также графом транзитивного замыкания), ребра которого соответствуют путям исходного графа. Определение 9.9. Пусть G=(V, E) - ориентированный граф. Граф достижимости G*=(V, E*) для G имеет то же множество вершин V и следующее множество ребер E* ={ (u, v) | в графе G вершина v достижима из вершины u}. Пример 9.3. Рассмотрим граф G из примера 9.2.
Тогда можно проверить, что граф достижимости G* для G выглядит так (новые ребра -петли при каждой из вершин 1-5 не показаны):
Каким образом по графу G можно построить граф G*? Один способ заключается в том, чтобы для каждой вершины графа Gопределить множество достижимых из нее вершин, последовательно добавляя в него вершины, достижимые из нее путям и длины 0, 1, 2 и т.д. Мы рассмотрим другой способ, основанный на использовании матрицы смежности AG графа G и булевых операций. Пусть множество вершин V={v1,..., vn}. Тогда матрица AG - это булева матрица размера n x n. Ниже для сохранения сходства с обычными операциями над матрицами мы будем использовать " арифметические" обозначения для булевых операций: через + будем обозначать дизъюнкцию Обозначим через En единичную матрицу размера n x n. Положим Лемма 9.2. Пусть
Доказательство проведем индукцией по k. Базис. При k=0 и k=1 утверждение справедливо по определению Индукционный шаг. Пусть лемма справедлива для k. Покажем, что она остается справедливой и для k+1. По определению
Предположим, что в графе G из vi в vj имеется путь длины < = k+1. Рассмотрим кратчайший из таких путей. Если его длина < = k, то по предположению индукции a_{ij}^{(k)}=1. Кроме того, ajj(1)=1. Поэтому aij(k) ajj(1)=1 и aij(k+1)=1. Если длина кратчайшего пути из из vi в vj равна k+1, то пусть vr - его предпоследняя вершина. Тогда из vi в vr имеется путь длины k и по предположению индукции air(k)=1. Так как Обратно, если aij(k+1)=1, то хотя бы для одного r слагаемое air(k) arj(1) в сумме равно 1. Если это r=j, то aij(k)=1 и по индуктивному предположению в G имеется путь из vi в vj длины < = k. Если же Из лемм 9.1 и 9.2 непосредственно получаем Следствие 1. Пусть G=(V, E) - ориентированный граф с n вершинам и, а G* - его граф достижимости. Тогда A_{G*} = Таким образом процедура построения матрицы смежности AG* графа достижимости для G сводится к возведению матрицы 1. Для возведения матрицы
где k - это наименьшее число такое, что 2k > = n. 2. Так как на диагонали в матрице 3. Если при вычислении элемента aij(2) матрицы
обнаруживается такое r, что air = 1 и arj =1, то и вся сумма aij(2) =1. Поэтому остальные слагаемые можно не рассматривать. Пример 9.3. Рассмотрим в качестве примера вычисление матрицы графа достижимости AG* для графа G, представленного на рис.9.2. В этом случае
Так как у G имеется 6 вершин, то
и
Как видим, эта матрица действительно задает граф
|