Нахождение транзитивных замыканий по матрице смежности

Обратное транзитивное замыкание

Прямое транзитивное замыкание

Транзитивные замыкания

Обратные отображения

Обратным отображением 1-го порядка для вершины хi является множество элементов xj таких, что существует дуга(xj, хi), принадлежащая множеству дуг графа, т. е.

Г-1i) = { xj: дуга (хj, хi) А }.

Обратные отображения 2-го, 3-го и т. д. n-го порядка определяются следующим образом:

Г-2(xi)= Г--1(xi)),

Г-3(xi)= Г--2(xi)),

...

Г-n(xi)= Г-(n-1)(xi)).

Для графа на рис. 3.1 обратные многозначные отображения вершины х1 находятся следующим образом:

Г-1(x1)=x5,

Г-2(x1)= Г--1(x1))=Г-(x5)= x2,x4,

Г-3(x1)= Г--2(x1))=Г-(x2x4)= x1,

Г-4(x1)= Г--3(x1))=Г-(x1)= x5 и т.д.

П р и м е ч а н и я:

1. Когда отображение действует не на одну вершину, а на множество вершин Хq = { х1, х2,..., хq }, то под Г(Хq) понимают объединение

Г(х1) Г(х2)... Г(хq).

2. Многозначное отображение для неориентированного графа строится, если представить каждое ребро двумя противоположно направленными дугами (рис. 3.2).


Рис. 3.2. Граф: а – неориентированный; б – тождественный ему ориентированный


Прямым транзитивным замыканием некоторой вершины хi – T+i)является объединение самой вершины хiс прямыми отображениями 1-го порядка, второго порядка и т. д., т. е.

T+i) = хi Г+1i) Г+2i)...

Многозначные отображения находятся до тех пор, пока в них добавляются новые вершины.

Так, для графа на рис. 3.1.

Г+11) = { х2, х3 }, Г+21) = { х3, х5 }, Г+31) = { х3, х1 }, Г+41) = {х2, х3}.

Отображение четвертого порядка содержит те же элементы, что и отображение 1-го порядка, следовательно, других элементов в последующих отображениях не появится. Транзитивное замыкание для вершины х1получается следующим образом:

T+1) = х1 { х2, х3 } { х3, х5 } { х3, х1 } = { х1, х2, х3, х5 }.

Проанализировав множество вершин, входящих в T+i), можно сделать вывод: прямое транзитивное замыкание содержит вершины, в которые есть пути из вершины хi. Таким образом, можно дать второе определение T+i).

Прямое транзитивное замыкание некоторой вершины хi T+i)– это множество вершин, достижимых из вершины хi, т. е. T (хi) = { хj | путь из хi в хj }.

Обратным транзитивным замыканием некоторой вершины хi –T-i)является объединение этой вершины с обратными отображениями 1-го, 2-го и т. д. n -го порядка, т. е.

T-i) = хi Г-1i) Г-2i)...

Иначе, обратное транзитивное замыкание для некоторой вершины хi – T-i) – это множество вершин, из которых достижима вершина хi, т. е. T-i) = { xj | путь из xj в хi }.

Рассмотрим построение обратного транзитивного замыкания для графа на рис. 3.1.

Г-11) = { х5 }, Г-21) = { х2, х4 }, Г-31) = { х1 }, Г-41) = { х5 },

T-1) = х1 { х5 } { х2, х4 } { х1 } { х5 } = {х1, х2, х4, х5}.

Рассмотрим метод нахождения прямого транзитивного замыкания по матрице смежности, показанной на рис. 3.3,а для вершины х2графа, изображенного на рис. 3.3,б. На 1-м шаге итерации заносим 0 в столбец Т+для элемента х2и просматриваем 2-ю строку матрицы. Находим, что элементы a22=1и a25=1. Заносим 1 в 5-ю клетку Т+. 2-я клетка уже занята нулем, поэтому 1 не заносим. 2-й шаг начинается просмотром 5-й строки матрицы смежности, соответствующий вершине х5графа. Находим, что элементы a51=1 и a54=1, т. е. из вершины х5 имеются дуги в вершины х1 и х4 или иначе из вершины х2 имеются пути длиной 2 в вершины х1 и х4. Длину пути 2 заносим в 1-ю и 4-ю клетки столбца T+2). На 3-м шаге анализируются 1-я и 4-я строки матрицы смежности А. Находим элементы a12=1, a13=1, a43=1. В соответствующие свободные клетки заносим значения

Рис. 3.3. Построение прямого (а) и обратного (в) транзитивных замыканий

Это возможно сделать только для вершины х3, так как вторая клетка уже занята. Анализ 3-й строки матрицы на 4-м шаге показывает, что из вершины х3 нет исходящих дуг, следовательно, процесс формирования прямого транзитивного замыкания завершен.

Таким образом, в столбце T+2)стоят числа равные длине пути от вершины х2 к соответствующим вершинам графа. Путь от х2 к х3равный 3 показан штриховой линией на рис. 3.3,б. В столбце T+2) отмечены все вершины, достижимые из вершины х2, следовательно, они входят в T+2).

T+2) = { х1, х2, х3, х4, х5 }.

Во втором столбце показано построение прямого транзитивного замыкания вершины х1 – T+1).

T+1) = { х1, х2, х3, х4, х5 }.

Нахождение обратного транзитивного замыкания по матрице смежности показано на рис. 3.1,в. Рассмотрим нахождение обратного транзитивного замыкания вершины х3 – T-3), которое начинается с занесения 0 в 3-ю клетку строки T-3). На 1-м шаге алгоритма, помеченного стрелкой с цифрой 1, просматриваем 3-й столбец матрицы А. Определяем элементы равные 1, т. е. a13=1 и a43=1. Следовательно, в графе из вершин х1 и х4 есть дуги в вершину х3. Заносим 1 в 1-ю и 4-ю клетки T-3). На втором шаге просматриваем 1-й и 4-й столбцы матрицы A. Находим a51=1, a61=1, a54=1и проставляем 2 (так как длина пути от этих вершин до вершины х3 равна 2) в свободные клетки T-3), т. е. в 5-ю и 6-ю клетки. 3-й шаг заключается в просмотре 5-го и 6-го столбцов матрицы A. Элементы a25=1, a65=1, a66=1 позволяют поставить 3 во 2-ю клетку строки T-3). 4-й шаг просмотра 2-го столбца дает элементы a12 = 1 и a22 = 1, уже вошедшие в T-3). Итак, сформировано обратное транзитивное замыкание для вершины х3.

T-3) = { х1, х2, х3, х4, х5, х6 }.

Числа, стоящие в клетках T-3), показывают длину кратчайшего пути от соответствующих вершин до вершины х3.

Во второй строке показано формирование обратного транзитивного замыкания вершины х1.

T-1) = { х1, х2, х5, х6 }.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: