Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diskretnaya_matematika_Otvety.docx
Скачиваний:
24
Добавлен:
23.09.2019
Размер:
1.12 Mб
Скачать

23. Понятие сильной связности. Анализ сильной связности с помощью алгоритмов поиска на графах.

Ориентированный граф G(V, X) называется сильно связным, если для любой пары вершин vi, vj существует путь из vi в vj и из vj в vi.

Компонентой сильной связности ориентированного графа G(V, X) называется максимальный сильно связный подграф, т.е. не являющийся подграфом любого другого сильно связного подграфа.

Матрица сильной связности - это квадратная матрица порядка n, где n - число вершин. Sn*n = 7sij7;

sij=

  

1, если  путь из vi в vj и из vj в vi 0, в противном случае

]

Поиск в ширину (BFS, Breadth-first search) — метод обхода и разметки вершин графа.

Поиск в ширину выполняется в следующем порядке: началу обхода s приписывается метка 0, смежным с ней вершинам — метка 1. Затем поочередно рассматривается окружение всех вершин с метками 1, и каждой из входящих в эти окружения вершин приписываем метку 2 и т. д.

Если исходный граф связный, то поиск в ширину пометит все его вершины. Дуги вида (i, i+1) порождают остовный бесконтурный орграф, содержащий в качестве своей части остовное ордерево, называемое поисковым деревом.

Легко увидеть, что с помощью поиска в ширину можно также занумеровать вершины, нумеруя вначале вершины с меткой 1, затем с меткой 2 и т. д.

Поиск в глубину (англ. Depth-first search, DFS) — один из методов обхода графа. Алгоритм поиска описывается следующим образом: для каждой непройденной вершины необходимо найти все не пройденные смежные вершины и повторить поиск для них. Используется в качестве подпрограммы в алгоритмах поиска одно- и двусвязных компонент, топологической сортировки.

24. Транзитивное замыкание графа. Пусть G=(A,R) – ориентированнй граф. Транзитивный замыканием графа G называется граф G*=(A,R*), в котором из v в w из A идёт ребро тогда и только тогда, если существует путь (длины 0 или больше) из v в w. R =R и (b,c)Если (a,b)> R(a,b)*R, (b,c)*R, (a,c)* Алгоритм 1: (~n3) Взять произвольную вершину a. RR и всех вершины c дуги (a,c)Рассмотреть для всех вершин b: (b,a) Будем строить матрицу M* - смежности. M[i,k]=1 и M[k,j]=1 => M*[i,j]=1 Провести такие вычисления для всех вершин.

Начальные значения: R* = R; Для всех вершин Ak выполнить Для всех вершин Ai выполнить Для всех вершин Aj выполнить Если R(i,j)*Rи (k,j)*, то: R(i,j)* R*=R*{(i,j)}

Алгоритм 2: (~n4) Для всех вершин построить транзитивное замыкание длины 2. Найти все вершины, до которых есть путь длины 2.

M[i,j]=1 и M[j,k]=1 => M[i,k]=1 И так n раз для каждых вершин строить транзитивное замыкание.

25. Сильная связность. Отношение на вершинах графа называется отношением сильной связности. Сильная связность — отношение эквивалентности. Рассмотрим транзитивность:

Пусть — ориентированный граф. Компонентой сильной связности называется класс эквивалентности множества вершин этого графа относительно сильной связности.

Пример ориентированного графа с тремя компонентами сильной связности.

Ориентированный граф называется сильно связным, если он состоит из одной компоненты сильной связности.

Граф сильно связен, если для любых вершин х у существует путь, идущий из х в у.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]