Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Дискретка_Экзамен_Ответы / графы / 4 Связность, Краскал

.docx
Скачиваний:
60
Добавлен:
11.03.2015
Размер:
18.56 Кб
Скачать

4.7. Связность

Задача.

Из шести человек каждый знаком с двумя другими. Может ли каждый из них через своих знакомых познакомиться со всеми остальными?

Решение.

Отношение знакомства представим графом, в котором каждая вершина соответствует человеку и две вершины смежны, если соответствующие им люди знакомы. Если диаграмма полученного графа имеет вид, например:

то ответ на вопрос задачи будет положительным, а если диаграмма полученного графа имеет вид:

то ответ будет отрицательным.

В первом случае граф является связным, а во втором – несвязным.

Граф называется связным, если в нём для каждой пары вершин найдётся соединяющая их цепь, иначе – несвязным. Две вершины графа называются связанными, если существует соединяющая их цепь. В связном графе все пары вершин связаны. Отношение связанности вершин является отношением эквивалентности: оно рефлексивно (каждая вершина соединена с собой цепью нулевой длины), симметрично (всякая цепь, записанная в обратном порядке, также является цепью) и транзитивно (если имеется цепь, соединяющая вершины x и y и цепь, соединяющая вершины y и z, то соединение этих цепей в вершине y даст маршрут из вершины x в вершину z, из которого можно выделить цепь, соединяющую вершины x и z), поэтому оно разбивает множество вершин на классы эквивалентных вершин. Подграф, построенный на множестве вершин одного класса эквивалентности, представляет собой связную компоненту графа. Связный граф имеет одну компоненту связности, несвязный – более одной.

Отношение связанности вершин графа G=(V,E) можно задать матрицей связанности С порядка nn , где n=|V| . Элемент матрицы связанности cij=1, если вершины i и j связаны и cij=0, если вершины i и j не связаны. Рассмотрим два способа получения матрицы связанности.

Первый способ.

Получить матрицу связанности С можно, используя алгоритм 4.4 нахождения всех максимальных простых цепей, основанный на методе поиска с возвращением. Для этого необходимо инициализировать матрицу С нулями, а затем последовательно формировать строки матрицы. При формировании i-ой строки находятся все максимальные простые цепи с начальной вершиной i. Если цепь найдена и содержит вершину j, то элементу сij присвоить значение 1.

Второй способ.

Вычислить матрицу связанности С можно по формуле С=I+M+ , где

I – бинарная матрица, содержащая единицы только на главной диагонали;

М – матрица смежности графа;

M+ – транзитивное замыкание отношения, представленного матрицей смежности графа, которое можно вычислить, используя алгоритм 3.10 объединения степеней или алгоритм 3.11 Уоршалла.

По матрице связанности С можно построить разбиение множества вершин графа на классы эквивалентности, используя алгоритм 3.13, тем самым найдём подмножества вершин, образующих связные компоненты графа.

Найти разбиение S множества вершин графа G=(V,E) на подмножества вершин, образующих связные компоненты, можно и без формирования матрицы связанности, используя алгоритм 4.4 нахождения всех максимальных простых цепей следующим образом:

1. A:=V ; S:=.

2. Пока A выполнять п.3, 4 и 5.

3. Выбрать вершину vA ; М:={v}.

4. Найти все максимальные простые цепи с начальной вершиной v и все вершины, входящие в максимальные простые цепи, включить в множество М. M – множество вершин, образующих связную компоненту графа.

5. S:=S{M} ; A:=A-M.

Мостом называется ребро, удаление которого увеличивает число связных компонент графа. Существует несколько признаков мостов:

1) ребро {vi,vj} является мостом в том и только в том случае, если (vi,vj) – единственный маршрут, соединяющий вершины vi и vj;

2) ребро {vi,vj} является мостом в том и только в том случае, если найдутся две вершины vk и vl такие, что каждый маршрут, соединяющий их, содержит vi и vj;

3) ребро {vi,vj} является мостом в том и только в том случае, если оно не принадлежит ни одному циклу.

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

Рёберной связностью связного графа называется наименьшее число рёбер, удаление которых приводит к несвязному графу.

Вершина графа называется точкой сочленения, если её удаление увеличивает число связных компонент. Концевые вершины мостов являются точками сочленения, но точка сочленения может не являться концевой вершиной моста. Граф без точек сочленения называется двусвязным.

Вершинной связностью связного графа называется наименьшее число вершин, удаление которых приводит к несвязному графу.

Алгоритм Краскала.

1. Начальная установка. Лес не содержит ни одного ребра и ни один из букетов не сформирован.

2. Выбрать любое ребро, включить его в лес и сформировать букет, включив в него концевые вершины выбранного ребра.

3. Пока в графе есть необработанные рёбра, выполнять п.4.

4. Выбрать необработанное ребро. После этого выбора возможны четыре различных случая:

А. Обе концевые вершины выбранного ребра принадлежат одному и тому же букету. В этом случае ребро не включается в лес.

Б. Одна из концевых вершин выбранного ребра принадлежит некоторому букету, а другая концевая вершина не принадлежит ни одному из уже сформированных букетов. В этом случае выбранное ребро включается в лес и его концевая вершина, не принадлежащая ранее ни одному букету, включается в букет, которому принадлежит другая концевая вершина рассматриваемого ребра.

В. Ни одна из концевых вершин не принадлежит ни одному из сформированных букетов. В этом случае выбранное ребро включается в лес и формируется новый букет из его концевых вершин.

Г. Концевые вершины выбранного ребра принадлежат различным букетам. В этом случае выбранное ребро включается в лес, а оба букета, которым принадлежат его концевые вершины, объединяются в один новый букет и количество букетов при этом уменьшается.