Алгоритмы Прима и Крускала

Содержание

Слайд 2

Содержание

Повторение основных понятий теории графов
Понятие остовного связного дерева
Понятие цикломатического числа
Алгоритм Прима
Алгоритм Крускаля
Вопросы

Содержание Повторение основных понятий теории графов Понятие остовного связного дерева Понятие цикломатического
и задания

Слайд 3

Основные понятия теории графов

По горизонтали:

г р а ф

9. Наглядное сред-ство

Основные понятия теории графов По горизонтали: г р а ф 9. Наглядное
представления состава и структуры системы.  

р е б р о

2. Ненаправленная линия (без стрелки), соединяющая вершины графа.  

п у т ь

ц и к л

п у с т о й

д у г а

д е р е в о

в е р ш и н а

в з в е ш е н н ы й

4. Последователь-ность рёбер и/или дуг, такая, что конец одной дуги (ребра) является началом другой дуги (реб-ра).  

5. Путь, в котором совпадают начальная и конечная верши-ны.  

6. Направленная ли-ния (со стрелкой), соединяющая верши-ны графа.  

7. Граф без ребер.  

10. Граф, в котором нет циклов.  

11. Элемент (точка) графа, обозначаю-щий объект любой природы, входящий в множество объек-тов, описываемое графом.  

12. Граф, ребрам (или дугам) или вершинам которого поставлены в соот-ветствие числовые величины.  

Перейдем к вопросам по вертикали  

Слайд 4

Основные понятия теории графов

По вертикали:

г р а ф

р е б

Основные понятия теории графов По вертикали: г р а ф р е
р о

п у т ь

ц и к л

п у с т о й

д у г а

д е р е в о

в е р ш и н а

в з в е ш е н н ы й

1. Последовательность чередующихся вершин и ребер графа при перемещении.  

м
а
ш
р
т

с
м
ж
ы

8. Вершины, прилега-ющие к одному и тому же ребру.  

3. Граф, в котором вершины соединены дугами.  

о
н
ы

4. Граф, в котором каждые две вершины смежные.  

Перейдем к изучению новых понятий

Слайд 5

Основные понятия теории графов Остовное связное дерево

Остовной связный подграф – подграф графа

Основные понятия теории графов Остовное связное дерево Остовной связный подграф – подграф
G, который содержит все его вершины и каждая вершина достижима из любой другой.

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

Слайд 6

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

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

Основные понятия теории графов Цикломатическое число

γ = m – n + 1,
m - количество ребер
n - количество вершин

Слайд 7

Задача 1

В некотором районе было решено провести газопровод между пятью деревнями. От

Задача 1 В некотором районе было решено провести газопровод между пятью деревнями.
Кошкино до Мышкино идти 10 км, от Мышкино до Ступино – 3 км, от Кошкино до Малаховки – 6 км, от Малаховки до Черняевки – 12 км, от Кошкино до Ступино – 11 км, от Мышкино до Чернеевки – 5 км, от Кошкино до Чернеевки – 7 км. Как необходимо провести трубу, чтобы она соединяла все пять деревень, и затраты при этом были минимальными?

Слайд 8

Задача 1

Построим граф, моделирующий дороги, соединяющие деревни.

Задача 1 Построим граф, моделирующий дороги, соединяющие деревни.

Слайд 9

Задача 1

Задача сводится к построению остовного связного дерева минимального веса.

Рассчитаем цикломатическое число.

m

Задача 1 Задача сводится к построению остовного связного дерева минимального веса. Рассчитаем
(количество ребер) равно 7
n (количество вершин) рано 5
γ = 7 – 5 + 1 = 3

Т.е. три деревни напрямую соединены газовой трубой не будут.

(переходы по щелчку)

Слайд 10

Алгоритм Прима

Пусть дан взвешенный неориентированный граф.
Для построения минимального остовного дерева необходимо:

1. Представить

Алгоритм Прима Пусть дан взвешенный неориентированный граф. Для построения минимального остовного дерева
граф в виде матрицы смежности

2. Найти в матрице наименьший элемент, соответству-ющий ребру, соединяющему i-ю и j-ю вершины графа

3. Вычеркнуть элементы i-й и j-й строки матрицы

4. Пометить i-й и j-й столбцы матрицы

5. В помеченных столбцах i и j найти наименьший элемент, отличный от уже найденного

6. Повторять пункты 3-5 до тех пор, пока не будут задействованы все вершины графа

(переходы по щелчку)

Слайд 11

Задача 1

Решим задачу по алгоритму Прима.
Переопределим вершины графа.

(переходы по щелчку)

Задача 1 Решим задачу по алгоритму Прима. Переопределим вершины графа. (переходы по щелчку)

Слайд 12

Задача 1

Представим граф в виде матрицы смежности.

Найдем минимальный элемент.

Он равен 3

3

3

(переходы по

Задача 1 Представим граф в виде матрицы смежности. Найдем минимальный элемент. Он
щелчку)

Слайд 13

Задача 1

Вычеркнем 2-ю и 3-ю строки таблицы. А столбцы 2 и 3

Задача 1 Вычеркнем 2-ю и 3-ю строки таблицы. А столбцы 2 и
выделим.

Найдем минимальный элемент в выделенных столбцах.

Он равен 5

5

(переходы по щелчку)

Слайд 14

Задача 1

Вычеркнем 5-ю строку таблицы. А столбец 5 выделим.

Найдем минимальный элемент в

Задача 1 Вычеркнем 5-ю строку таблицы. А столбец 5 выделим. Найдем минимальный
выделенных столбцах.

Он равен 7

5

7

(переходы по щелчку)

Слайд 15

Задача 1

Вычеркнем 1-ю строку таблицы. А столбец 1 выделим.

Найдем минимальный элемент в

Задача 1 Вычеркнем 1-ю строку таблицы. А столбец 1 выделим. Найдем минимальный
выделенных столбцах.

Он равен 6

5

(переходы по щелчку)

Слайд 16

Задача 1

Вычеркнем 4-ю строку таблицы. А столбец 4 выделим.

(переходы по щелчку)

Задача 1 Вычеркнем 4-ю строку таблицы. А столбец 4 выделим. (переходы по щелчку)

Слайд 17

Задача 1

Получаем связное остовное дерево минимальное веса.

12

7

10

11

3

6

5

5

1

2

3

4

(переходы по щелчку)

Задача 1 Получаем связное остовное дерево минимальное веса. 12 7 10 11

Слайд 18

Задача 1

Ответ: газопровод с минимальными затратами необходимо прокладывать так:

Протяженность газопровода – 21

Задача 1 Ответ: газопровод с минимальными затратами необходимо прокладывать так: Протяженность газопровода – 21 км.
км.

Слайд 19

Задача 2

Даны города, часть которых соединена между собой дорогами. Необходимо проложить туристический

Задача 2 Даны города, часть которых соединена между собой дорогами. Необходимо проложить
маршрут минимальной длины, проходящий через все города.

Слайд 20

Задача 2

Задача сводится к построению остовного связного дерева минимального веса.

Рассчитаем цикломатическое число.

m

Задача 2 Задача сводится к построению остовного связного дерева минимального веса. Рассчитаем
(количество ребер) равно 9
n (количество вершин) рано 6
γ = 9 – 6 + 1 = 4

Т.е. четыре дороги, соединяющие города, не будут включены в туристический маршрут.

(переходы по щелчку)

Слайд 21

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

Удалить все ребра и получить остовной подграф с изолированными вершинами.
Отсортировать ребра

Алгоритм Крускала Удалить все ребра и получить остовной подграф с изолированными вершинами.
по возрастанию.
Ребра последовательно, по возрастанию их весов, включаются в остовное дерево. Возможны случаи:
а) обе вершины включаемого ребра принадлежат одноэлементным подмножествам, тогда они объединяются в новое, связное подмножество;
б) одна из вершин принадлежит связному под-множеству, другая нет, тогда включаем вторую в подмножество, которому принадлежит первая;
в) обе вершины принадлежат разным связным подмножествам, тогда объединяем подмножества;
г) обе вершины принадлежат одному связному подмножеству, тогда исключаем данное ребро.
Алгоритм завершается, когда все вершины будут объединены в одно множество.

Слайд 22

Задача 2

Для определения туристического маршрута минимальной длины воспользуемся алгоритмом Крускала.

Задача 2 Для определения туристического маршрута минимальной длины воспользуемся алгоритмом Крускала.

Слайд 23

Задача 2

Построим остовной подграф, содержащий только изолированные вершины.

1

6

5

2

3

4

25

18

15

12

20

23

21

19

26

Шаг 1

Получаем шесть одноэлементных

Задача 2 Построим остовной подграф, содержащий только изолированные вершины. 1 6 5
подмножеств.

пуск

Слайд 24

Задача 2

Найдем ребро минимального веса и добавим его в остовной подграф.

1

6

5

2

3

4

25

18

15

12

20

23

21

19

26

Шаг

Задача 2 Найдем ребро минимального веса и добавим его в остовной подграф.
2

Образуется связное подмножество вершин {V5, V6}.

пуск

Слайд 25

Задача 2

Среди оставшихся ребер найдем ребро минимального веса и добавим его в

Задача 2 Среди оставшихся ребер найдем ребро минимального веса и добавим его
остовной подграф.

1

6

5

2

3

4

25

18

15

12

20

23

21

19

26

Шаг 3

Добавляем в подмножество вершин еще одну {V5,V6,V1}.

пуск

Слайд 26

Задача 2

Среди оставшихся ребер найдем ребро минимального веса и добавим его в

Задача 2 Среди оставшихся ребер найдем ребро минимального веса и добавим его
остовной подграф.

1

6

5

2

3

4

25

18

15

12

20

23

21

19

26

Шаг 4

Добавляем в подмножество вершин еще одну {V5,V6,V1,V2}.

пуск

Слайд 27

Задача 2

Среди оставшихся ребер найдем ребро минимального веса и добавим его в

Задача 2 Среди оставшихся ребер найдем ребро минимального веса и добавим его
остовной подграф.

1

6

5

2

3

4

25

18

15

12

20

23

21

19

26

Шаг 5

Образуется два подмножества {V5,V6,V1,V2} и {V3,V4} .

пуск

Слайд 28

Но обе вершины принадлежат одному подмножеству {V5,V6,V1,V2}. Значит это ребро исключаем.

Задача 2

Среди

Но обе вершины принадлежат одному подмножеству {V5,V6,V1,V2}. Значит это ребро исключаем. Задача
оставшихся ребер найдем ребро минимального веса и добавим его в остовной подграф.

1

6

5

2

3

4

25

18

15

12

20

23

21

19

26

Шаг 6

Подмножества объединяются в единое связное множество {V1,V2,V6,V5,V3,V4} .

пуск (2)

Слайд 29

Задача 2

Остальные ребра включать в граф не надо, т.к. все их вершины

Задача 2 Остальные ребра включать в граф не надо, т.к. все их
уже принадлежат одному связному множеству.

1

6

5

2

3

4

25

18

15

12

20

23

21

19

26

Итог

Получили остовное связное дерево минимального веса, равного 85.

Слайд 30

Вопросы

Построенный граф (в задачах 1 и 2) является

Почему?

В граф включены все вершины

Все

Вопросы Построенный граф (в задачах 1 и 2) является Почему? В граф
вершины в графе можно
соединить маршрутами

В графе отсутствуют циклы

В граф последовательно включались ребра,
отсортированные по возрастанию весов

остовным

связным

деревом

с минимальным весом

Слайд 31

Задача 3

На строительном участке необходимо создать телефонную сеть, соединяющую все бытовки. Для

Задача 3 На строительном участке необходимо создать телефонную сеть, соединяющую все бытовки.
того, чтобы телефонные линии не мешали строительству, их решили проводить вдоль дорог. Схема участка изображена на рисунке.

Каким образом провести телефонные линии, чтобы их общая длина была минимальной?

Ответ

Общая длина телефонной линии равна 930 метров

Слайд 32

Источники

Кроссворд создан на сайте и расположен по адресу http://puzzlecup.com/?guess=3C2D4A01E0522AAU
Информатика и ИКТ.

Источники Кроссворд создан на сайте и расположен по адресу http://puzzlecup.com/?guess=3C2D4A01E0522AAU Информатика и
Профильный уровень: учебник для 11 класса / Н.Д.Угринович. – М.: Бином. Лаборатория знаний, 2010.
Алгоритм Прима-Крускала (видео) http://www.youtube.com/watch?v=vm_9-vnV7PE
Занимательные задачи по теории графов: Учеб.-метод. пособие/ О.И.Мельников. – Изд-е 2-е, стереотип. – Мн.: «ТетраСистемс», 2001