Вятский государственный университет
Опубликован: 07.04.2008 | Доступ: свободный | Студентов: 3237 / 834 | Оценка: 4.31 / 3.94 | Длительность: 06:04:00
Специальности: Программист, Математик

Лекция 7: Методы разбиения графа на максимальные сильно связные подграфы

< Лекция 6 || Лекция 7: 123 || Лекция 8 >

Матричный метод разбиения

Метод разбиения графа на максимальные сильно связные подграфы по матрицам достижимости R и контрдостижимости Q состоит в следующем.

  1. По матрице смежности строится матрица достижимости R. Используя операцию транспонирования, находим матрицу контрдостижимости Q.
  2. Находится матрица C = { сij }, i,j = 1, 2, 3, ..., n, где n – число вершин исходного графа, а каждый элемент C_{ij} = r_{ij}\wedge q_{ij}, т. е. матрица C получается поэлементным логическим умножением матриц R и Q: С = R  \wedge   Q.
  3. Элементы, имеющие одинаковые строки и столбцы в матрице С группируем перестановкой строк и столбцов, получаем блочно диагональную матрицу Св , где каждая группа элементов и есть максимальный сильно связный подграф.

Рассмотрим пример разбиения для графа, представленного на рис. 7.1,а. Как следует из определения матрицы R для ее нахождения следует для каждой вершины найти прямое транзитивное замыкание. Если некоторая xj вершина графа входит в транзитивное замыкание T+i), то элемент матрицы R rij =1. Полученные таким образом матрицы R и Q показаны на таблица 7.7а и таблица 7.7б. В результате логического умножения получили матрицу С ( таблица 7.7в), в которой находим одинаковые строки. Например, для вершины х1 строка совпадает с седьмой и одиннадцатой. Следовательно, вершины х1, х7, х11 группируем вместе и они составляют первый выделенный подграф. Как видим из блочнодиагональной матрицы ( таблица 7.7г) полученные подграфы совпадают с результатом разбиения по методу Мальгранжа .

Таблица 7.7а.
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11
X1 1 1 1 1 1 1 1
X2 1 1 1 1 1 1 1 1
X3 1 1 1 1 1 1 1 1 1 1
X4 1 1
R= X5 1 1
X6 1 1
X7 1 1 1 1 1 1 1
X8 1
X9 1 1 1 1 1 1 1 1 1 1
X10 1 1 1 1 1 1 1 1 1 1
X11 1 1 1 1 1 1 1
Таблица 7.7б.
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11
X1 1 1 1 1 1 1 1
X2 1
X3 1 1 1
X4 1 1 1 1 1 1 1 1 1
Q= X5 1 1 1 1 1 1 1 1 1
X6 1 1 1 1 1 1 1 1
X7 1 1 1 1 1 1 1
X8 1 1 1 1 1 1 1 1 1
X9 1 1 1
X10 1 1 1
X11 1 1 1 1 1 1 1
Таблица 7.7в. Пример матричного метода разбиения
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11
X1 1 1 1
X2 1
X3 1 1 1
X4 1 1
C= X5 1 1
X6 1
X7 1 1 1
X8 1
X9 1 1 1
X10 1 1 1
X11 1 1 1
Таблица 7.7г.
X1 X7 X11 X2 X3 X9 X10 X4 X5 X6 X8
X1 1 1 1
X7 1 1 1
X11 1 1 1
X2 1
CВ= X3 1 1 1
X9 1 1 1
X10 1 1 1
X4 1 1
X5 1 1
X6 1
X8 1
< Лекция 6 || Лекция 7: 123 || Лекция 8 >
Dmitry Schelkov
Dmitry Schelkov

В лекции 3 часть номер 2 приведён пример нахождения транзитивного замыкания по матрице смежности. Из примера для обратного транзитивного замыкания видно, что путь для достижения вершины х6 в вершину х3 равен 3, а не 2, как показано в табличном примере. Мне кажется, что в лекции ошибка.

Вячеслав Коваленко
Вячеслав Коваленко

В курсе "Введение в теорию графов" в лекции 4 "Достижимость в графарх" дано выражение для нахождения множетсва вершин, входящих в путь из одной вершины графа в другую и по рис.4.2. показан пример нахождения такого множества для пути из вершины х2 в вершину х4 - это множетсво (х2, х3, х4, х5). По рисунку видно что путь не оптимален и для того, чтобы он проходил через все вершины этого множества, через х4 нужно пройти два раза. Правильно ли я понимаю, что данное определение пути дает не всегда оптимальный путь и что определение оптимально (кратчайшего) пути - отдельная задача? Или в примере ошибка?