0f2bee6c5389d73cefb01df485c12d07.ppt
- Количество слайдов: 56
Теория графов
n n Теория графов – обширный самостоятельный раздел дискретной математики. Используется при проектировании компьютерных сетей, трубопроводов, строительстве дорог для минимизации затрат на прокладку коммуникаций.
Граф это конечное множество вершин V и множество ребер R, соединяющих пары вершин, G=(V, R). n Мощности множеств V и R равны N и M. n Множество ребер может быть пустым. Примеры вершин – объекты любой природы (населенные пункты, компьютерные сети). Примеры ребер – дороги, стороны, линии. n
n n Вершины, соединенные ребром, называются смежными. Ребра, имеющие общую вершину, также называются смежными. Ребро и любая из его двух вершин называются инцидентными. Степень вершины – количество инцидентных ей ребер. Каждый граф можно представить на плоскости множеством точек, соответствующих вершинам, которые соединены линиями, соответствующими ребрам.
Ориентированный граф Неориентированный граф В орграфе ребро называют дугой.
n n n Маршрут графа – последовательность вершин и ребер. Маршрут замкнутый (циклический), если начальная и конечная вершины совпадают. Маршрут – простая цепь, если все вершины и ребра различны. Граф связный, если каждая вершина достижима из любой другой. Вершины, не имеющие инцидентных ребер, называются изолированными.
n n Взвешенный граф (сеть) – граф, ребрам или дугам которого поставлены в соответствие числа (вес). Вес сети равен сумме весов ее ребер.
Способы описания графа: n n матрица инциденций, матрица смежности, списки связи, перечни ребер.
Матрица инциденций n n n N – количество вершин M – количество ребер Матрица инциденций – это двумерный массив размерности N×M
Матрица инциденций 1 5 1 1 2 3 2 9 3 4 2 8 1 6 7 4 8 7 5 6 3 4 5 6 7 8 9 2 3 4 5 6 7 8 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0
Матрица смежности n – это двумерный массив N*N.
Матрица смежности графа
Матрица смежности сети (с учетом весов ребер)
Списки связи n n Задание графа списками связи осуществляется с помощью одномерного массива размерности N для хранения указателей. Элемент массива – указатель на начало списка, в котором содержится информация о вершинах графа, смежных с рассматриваемой.
Списки связи 1 2 3 4 5 6 7 8 9 5 1 2 3 9 3 4 2 8 1 6 7 4 8 7 2 1 2 3 4 1 6 7 4 6 3 4 5 5 6 9 7 8
Перечень ребер n n Для хранения перечня ребер необходим двумерный массив размерности M× 2. Строка массива описывает ребро.
Перечень ребер 1 1 2 8 5 6 3 2 3 4 1 7 4 9 4 2 7 2 4 3 4 5 1 2 6 7 8 7 6 7 8 4 5 3 9 6 1 6 3 5 1 8 2
Подграфы и деревья n n Подграфа G называют граф, у которого все вершины и ребра принадлежат графу G. Остовной связный подграф – это подграфа G, который содержит все его вершины и каждая его вершина достижима из любой другой.
Подграфы и деревья n n Дерево – это граф, в котором нет циклов. Остовное связное дерево – подграф, включающий все вершины исходного графа G, каждая вершина которого достижима из любой другой, и при этом не содержащий циклов.
Преобразование графа в остовное связное дерево минимального веса n n Пусть G=(V, R) – связанный взвешенный неориентированный граф. Граф G можно представить в виде матрицы смежности, содержащий значения весов ребер.
Граф в форме схемы
Матрица смежности связного взвешенного неориенторованного графа 1 2 3 4 5 1 0 50 2 50 0 0 25 3 0 25 0 50 4 25 0 50 0 10 30 35 15 5 10 30 35 15 0
Подграфа, остовной связный подграф, остовное связное дерево
n Цикломатическое число γ показывает сколько ребер графа нужно удалить, чтобы в нем не осталось циклов. γ=m-n+1 Пример, γ=8 -5+1=4 n Для каждого графа обычно существует несколько связных деревьев, с различными весами. n
Остовные связные деревья графа G
Построение остовного связного дерева минимального веса. Алгоритм Крускала n n n Из графа удаляют все ребра, получается остовной подграф, где все вершины изолированы. Каждая вершина помещается в одноэлементное подмножество. Ребра сортируются по возрастанию весов. Ребра последовательно, по возрастанию их весов, включаются в остовное дерево.
Существует 4 случая: 1) обе вершины включаемого ребра принадлежат одноэлементным подмножествам, тогда они объединяются в новое, связное подмножество; 2) одна из вершин принадлежит связному подмножеству, а другая нет, тогда включаем вторую в подмножество, которому принадлежит первая; 3) обе вершины принадлежат разным связным подмножествам, тогда объединяем подмножества; 4) Обе вершины принадлежат одному связному подмножеству, тогда исключаем данное ребро.
n Алгоритм заканчивает работу, когда все вершины будут объединены в одно множество, при этом оставшиеся ребра не включаются в остовное дерево.
Пример построения остовного дерева минимального веса для графа G № Выполняемые действия Множество вершин 1 Построим остовной подграф с изолированным и вершинами Получим 5 одноэлементных подмножеств: {V 1}, {V 2}, {V 3}, {V 4}, {V 5} 2 Найдем ребро минимального веса (R 15) и добавим его в остовной подграф Образуем связное подмножество вершин: {V 1, V 5}. Сохраняем подмножества {V 2}, {V 3}, {V 4} Граф
№ 3 4 Выполняемые действия Множество вершин Среди оставшихся найдем ребро минимального веса (R 45) и добавим его в остовной подграф Добавим в связное подмножество вершину: Среди оставшихся найдем ребро минимального веса (R 23) и добавим его в остовной подграф Образуем новое связное подмножество вершин: {V 2, V 3}. Сохраняем первое связное подмножество {V 1, V 5, V 4}. Сохраняем подмножества {V 2}, {V 3} Граф
№ 5 6 Выполняемые действия Множество вершин Граф Среди Объединяем оставшихся подмножества в найдем ребро одно связное минимального подмножество веса (R 25) и {V 1, V 5, V 4 , V 2, V 3}. добавим его в остовной подграф Остальные ребра не включаются в граф, т. к. все их вершины уже принадлежат одному связному множеству.
№ Выполняемые действия Множество вершин Граф 7 Получен граф, который: остовной (все вершины включены); связный (все вершины можно соединить маршрутами); дерево (нет циклов); имеет минимальный вес. 8 Полученное остовное дерево имеет минимальный вес: R 12+R 25+R 15+R 45= 25+30+10+15=80 9 Циклическое число графа G равно γ=m-n+1=8 -5+1=4, что соответствует количеству ребер, не включенных в дерево.
Вопросы для закрепления n n В какой форме можно представить граф? В чем разница между орграфом и не орграфом? Какие графы являются деревьями? Какой граф обладает минимальным весом?
Изучение графов на языке Паскаль. Построить остовные связные деревья минимального веса для графов с 5 -ю вершинами Матрицу смежности графа и дерева вывести в виде таблиц.
Объявление переменных n n Два целочисленных пятиэлементных массива X и Y для хранения координат вершин графа Целочисленный двумерный массив R для хранения весов ребер графа Целочисленные переменные i, n и k для счетчиков циклов Целочисленная переменная S для хранения суммы весов ребер дерева минимального веса
Тело программы n n n Генерация случайных координат 5 -ти вершин графа (цикл по i). Вычисление весов ребер. Вывод матрицы смежности взвешенного орграфа (вложенные циклы по n и по k) Вывод матрицы смежности взвешенного неориентрованного графа – половины элементов начальной матрицы (начальное значение k=n+1)
Тело программы n Построение остовного связанного дерева минимального веса с учетом 4 -х случаев.
n Даны координаты вершин графа. Вычислить весы ребер. Вывести матрицу смежности взвешенного неориентированного графа. Построить остовное связное дерево минимального веса. n n V 1(50, 59) V 2(84, 6) V 3(70, 32) V 4(22, 59) V 5(91, 40)
V 4 V 1 V 5 V 3 V 2
Решение. 1 2 3 4 5 1 0 6 3 2 4 3 4 8 5 2 0 3 8 3 0 2 5 3 0 5 2 4 0 7 R 12=round(sqrt(sqr(84 -50)+sqr(59 -6)))=63 2 5 0
V 4 V 1 V 5 V 3 V 2
Решение. мин R 35=22, {3, 5} n мин R 14=28, {3, 5}, {1, 4} n мин R 23=30, {3, 5, 2}, {1, 4} n мин R 13=34, {1, 2, 3, 4, 5} n S=22+28+30+34=114 n
V 4 V 1 V 5 V 3 V 2
Ответы n n n n 50 59 84 6 70 32 22 59 91 40 63 34 28 45 30 82 35 55 22 72 22 3 5 28 1 4 30 2 3 34 1 3 114
n n n 68 22 86 78 79 50 88 10 58 29 Даны координаты вершин графа. Вычислить весы ребер. Вывести матрицу смежности взвешенного неориентированного графа. Построить остовное связное дерево минимального веса.
Ответы n n n n 68 50 22 88 86 10 78 58 79 29 60 44 13 24 101 64 82 49 20 29 13 1 4 20 3 5 24 1 5 60 1 2 117
Практическая работа n n n n 46 51 51 83 43 53 6 60 17 96 32 4 41 54 31 51 36 38 50 38 6 413 31 2 3 36 2 5 38 3 4 109
n n n n 4 67 45 74 25 39 43 83 4 33 42 35 42 34 40 9 58 48 22 63 6 924 22 3 5 34 1 5 35 1 3 100
n n n n 83 88 78 64 1 43 89 34 83 51 25 94 54 37 80 32 14 88 82 18 6 14 2 18 4 25 1 80 2 137 5 5 2 3
n n n n 65 69 33 57 18 22 62 51 56 6 13 16 18 43 90 34 12 63 18 58 43 18 53 13 69 16 2 3 1 1 4 5 4 3
n n n n 29 64 26 73 47 35 43 74 85 35 37 58 1 82 23 56 50 37 48 32 6 23 1 32 3 35 1 37 2 127 3 5 2 4
n n n n 40 57 7 70 86 76 88 3 98 81 35 50 72 63 79 105 92 73 13 79 6 13 3 35 1 50 1 72 1 170 5 2 3 4
n n n n 48 86 40 31 99 45 75 38 74 37 62 3 40 70 35 17 61 59 15 89 6 15 2 17 1 35 1 38 3 105 5 4 3 4
n n n n 2 23 96 36 56 76 89 96 1 20 95 76 114 3 57 60 96 39 78 116 6 315 39 3 4 57 2 3 60 2 4 159
n n n n 87 11 51 66 59 88 41 39 18 51 6 15 51 34 51 21 33 71 56 21 6 18 4 21 1 21 3 41 2 101 5 4 5 3
n n n n 1 54 67 23 50 13 13 61 93 58 73 64 14 92 20 66 44 61 62 80 6 14 1 20 2 44 2 61 3 139 4 3 5 4


