
- •Кафедра саприс курсовая работа
- •Воронеж 2007
- •1.Основные определения
- •1.1 Граф. Ориентированный граф
- •1.2 Пути и маршруты
- •1.5 Матричные представления графов
- •1.5.1 Матрица смежности
- •1.5.3 Матрица контрдостижимости
- •1.6 Нахождение сильных компонент
- •1.7 База, антибаза в орграфах
- •2. Описание программы
- •2.1 Назначение программы
- •2.2 Язык программирования
- •2.3 Техническое обеспечение
- •2.4 Запуск программы
- •2.5 Состав программы
- •2.6 Контрольный пример
1.5 Матричные представления графов
1.5.1 Матрица смежности
Матрицей смежности для ориентированного графа G = (X, U) с n вершинами называется квадратная матрица A порядка n, элементы которой определяются следующим образом:
1, если в графе
существует дуга (Xi,
Xj);
ajj =
0, в противном случае.
Матрица смежности
полностью определяет структуру графа.
Например сумма всех элементов строки
дает полустепень исхода вершины
,
а сумма элементов столбца
- полустепень захода вершины
.
Множество столбцов , имеющих 1 в строке
,
есть множество
,
а множество строк, имеющих 1 в столбце
,
совпадает с множеством
1.5.2 Матрица достижимости
Матрицей достижимости графа с n вершинами называется квадратная матрица R порядка n, элементы которой определяются следующим образом:
1, если вершина
Xj
достижима из вершины Xi;
rij =
0, в противном случае.
rii
= 1
i
Множество
графа G,
достижимых из заданной вершины
,
состоит из таких элементов
,
для которых
-й
элемент в матрице достижимостей равен
1. Очевидно, что все диагональные элементы
матрицы R
равны 1, т.к. люба вершима достижима из
себя самой с помощью пути длины 0.
Поскольку
является множеством таких вершин
,
которые достижимы из
с использованием путей длины 1 (т.е.
-
такое множество вершин, для которых в
графе существуют дуги
)
и поскольку
является множеством вершин, достижимых
из
с помощью путей длины 1, то множество
=
состоит из вершин достижимых из
с использованием путей длины 2. Аналогично
является множеством вершин, которые
достижимы из
с помощью путей длиной р.
Матрицу достижимости R можно найти с помощью матрицы смежности A следующим образом R = T (E + A+ A2 +…+ An-1) где n – число вершин, E – единичная матрица размера n, а оператор T определяется следующим образом:
1,если
;
T(aij) =
0, в противном случае.
1.5.3 Матрица контрдостижимости
Матрицей контрдостижимости (обратных достижимостей) графа с n вершинами называется квадратная матрица Q порядка n, элементы которой определяются следующим образом:
1, если вершина Xi достижима из вершины Xj;
qij =
0, в противном случае.
qii = 1 i
Контрадостижимым
множеством
графа G
является множество таких вершин, что
из любой вершины этого множества можно
достигнуть вершину
.
Следует заметить что
.
1.5.4 Матрица сильной связности
Матрицей сильной связности орграфа с n вершинами называется квадратная матрица S порядка n, элементы которой определяются следующим образом:
1, если вершины Xj и Xi взаимно достижимы ;
s ij =
0, в противном случае.
1.6 Нахождение сильных компонент
Поскольку в сильно связном графе произвольная вершина достижима из любой другой вершины , то в ориентированном графе существует одна и только одна сильная компонента, содержащая данную вершину .
Если
является одновременно начальной и
конечной вершиной пути, то множество,
существенных относительно этих двух
идентичных концов (т.е. множество вершин
некоторого цикла, содержащего
),
совпадает с пересечение
.
Поскольку все эти существенные вершины
достижимы из
и,
кроме того, из каждой такой достижима
вершина
,
то все они взаимно достижимы. Более того
если нет другой вершины, существенной
относительно концов
и
,
то множество
,
однозначно определяет сильную компоненту
графа G,
содержащую вершину
.
Если эти вершины
удалить из графа
,
то в оставшемся порожденном подграфе
можно таким же способом выделить новую
сильную компоненту, содержащую
.
Эту процедуру можно повторять до тех
пор, пока все вершины графа G
не будут сгруппированы в соответствующие
сильные компоненты. После завершения
этой процедуры граф G
будет разбит на свои сильные компоненты.
Граф
определяется
так : каждая его вершина представляет
множество вершин некоторой сильной
компоненты графа G
, дуга
существует в
тогда и только тогда, когда в G
существует дуга
,
такая что
принадлежит компоненте, соответствующей
вершине
, а
- компоненте, соответствующей вершине
.
Граф
называют конденсацией графа G.
Совершенно очевидно, что конденсация не содержит циклов, поскольку наличие цикла означает, что любые вершины этого цикла взаимно достижимы, а поэтому совокупность всех вершин цикла принадлежит некоторой сильной компоненте в и, следовательно, содержится в сильной компоненте графа G ,что противоречит определению конденсации, в силу которого вершины из соответствуют сильной компоненте в G.
Алгоритм определения сильных компонент связности графа:
1). Посторенние матрицы достижимости R.
2).Построение матрицы контрдостижимоти Q.
Матрица достижимости Q находится транспонированием матрицы достижимости R: Q = Rt .
2). Определение матрицы сильной связанности S = Q*R.
Матрицы R, Q, S связаны между собой следующим соотношением:
R = Qt, S = Q*R, где * - операция поэлементного умножения матриц.
Если вершины принадлежат одной сильной компоненте орграфа, то sij = 1.
При этом строки (столбцы), соответствующие этим вершинам в матрице S, одинаковы. Для неорграфа матрицы достижимости и контрдостижимости совпадают и являются аналогами матрицы сильной связности.
При машинной реализации алгоритмов на графах матрицы расстояний, достижимости, контрдостижмости и сильной связности можно определять через матрицу смежности.
3). Выделение сильных компонент графа. Вершины, соответствующие одинаковым строкам и одинаковым столбцам матрицы S принадлежат одной сильно компоненте графа.