КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Алгоритм нахождения сильных компонент графа можно описать следующей последовательностью шагов
Шаг 1. G = (X, V) – данный граф. Определение сильных компонент графа (СК) начать с произвольной вершины хi Î Х. Найти R (xi) и Q (xi). Положить СК(хi) = . Шаг 2. Рассмотреть множество и для произвольной вершины xk Î найти СК(хi) на . Перейти к шагу 3. Шаг 3. Если ¹0, то перейти к шагу 2, иначе останов, так как все сильные компоненты определены. Граф G*= (X*,V *) определяется так: каждая его вершина представляет множество вершин некоторой сильной компоненты графа G, дуга (xi *, xj *) существует в G * тогда и только тогда, когда в G существует дуга (xi, xj), такая, что xi принадлежит компоненте, соответствующей вершине xi *, а xj –компоненте, соответствующей вершине xj*. Граф G* называют конденсацией графа G. Совершенно очевидно, что конденсация G* не содержит контуров, поскольку наличие контура означает, что любые вершины этого контура взаимно достижимы. Поэтому совокупность всех вершин контура принадлежит некоторой СК в G* и, следовательно, содержится в СК графа G, что противоречит определению конденсации, в силу которого вершины из G * соответствуют СК в G. Пример. Для графа G, приведенного на рис. 4.25, найти сильные компоненты и построить конденсацию G *.
Найдем СК в G, содержащую вершину x 1. Из соотношений (4.3) и (4.4) получаем R (x 1) ={ x 1, x 2, x 4, x 5, x 6 , x 7, x 8, x 9, x 10 } Q (x 1) ={ x 1, x 2, x 3, x 5, x 6 } Следовательно, СК, содержащая вершину x 1, является порожденным подграфом R (x 1) Q (x 1) = ({ x 1, x 2, x 5, x 6 }) Аналогично, СК, содержащая вершину x 8, есть порожденный подграф ({ x 8, x 10}), СК содержащая x 7 – подграф ({ x 4, x 7, x 9}), СК, содержащая x 11, –подграф ({ x 11, x 12, x 13 }) и СК, содержащая x 3, – подграф ({ x 3}). Следует отметить, что последняя СК состоит из единственной вершины графа G. Конденсация G* приведена на рис. 4.26.
Рис. 4.26. G * - конденсация графа G
Процедуру, описанную выше и связанную с нахождением СК графа, можно сделать более удобной, если непосредственно использовать матрицы R и Q. Пусть запись R Ä Q означает поэлементное умножение этих матриц. Тогда сразу видно, что строка xi, матрицы R Ä Q содержит единицы только в тех столбцах xj, для которых выполняется условие: вершины xi и xj взаимно достижимы; в других местах строки xi стоят нули. Таким образом, две вершины находятся в одной и той же СК тогда и только тогда, когда соответствующие им строки (или столбцы) в матрице R Ä Q идентичны. Вершины, которым соответствуют строки, содержащие 1 в столбце xj, образуют множество вершин СК, содержащей xj. Отсюда мгновенно следует, что матрицу R Ä Q можно преобразовать путем транспонирования строк и столбцов в блочно-диагональную. Каждая из диагональных подматриц этой матрицы соответствует СК графа G и содержит только единичные элементы, все остальные элементы блочно-диагональной матрицы равны нулю. Для приведенного ранее примера матрица R Ä Q, преобразованная соответствующим образом, имеет вид
Дата добавления: 2014-12-27; Просмотров: 937; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |