Transcript Теория графов
Теория графов
–раздел дискретной математики.
Термин
«граф»
впервые появился в работах венгерского математика Д.Кенига в 1936 году.
Годом рождения теории считается 1736 г., когда Л.Эйлер решил задачу о Кенигсбергских мостах: можно ли так спланировать прогулку по этому городу, ныне называемом Калининградом, чтобы каждый из семи городских мостов проходился бы ровно один раз.
Если участки суши взять в качестве точек, а мосты в качестве дуг, то получим граф.
Биология Графы вокруг нас
Алексей Заяц Россия Анна Кенгуру Кролик Австралия Бурый медведь Англия Петр I Екатерина I
История
Петр II Елизавета Петр III Екатерина II Павел I Александр I Николай I Александр II Александр III Николай II
а
2 1
Граф состоит из вершин и ребер
в f d с
петля 4 вершины {1 2 3 4} 7 ребер { a, b, c, d, e, f, g} 3 Вершины, соединенные ребром, называются
смежными.
2 и 3
смежные,
3 и 4
– смежные, e
1 и 3
– несмежные.
4 Ребро, соединяющее две вершины,
инцидентно
им.
а
инцидентно
1,2
g
g
инцидентно
4, а
инцидентно
2,3
Задание
d 3 1 e a c 5 2 f 4 b Перечислите ребра и вершины.
Приведите примеры смежных вершин, инцидентных ребер.
5 Расположение вершин не несет никакой информации 1 1 2 3 4 4 3 5 Один и тот же граф 2
Полный граф
– граф без петель, в котором любые две различные вершины соединены ровно одним ребром.
Задание1
: Нарисуйте пример неполного графа.
Задание 2
: Нарисуйте полный граф с 4 вершинами.
Число ребер, инцидентных вершине, называется
степенью вершины
.
f d
3 Степень вершины 2- 4, 1-2.
а
2
с
1
в
петля
Ребро, соединяющее две вершины, может иметь направление от одной к другой. Тогда оно ориентированное и изображается стрелкой.
Граф, в котором все ребра ориентированные, называется
орграфом
.
Ребра называются
дугами
.
Дуги, соединяющие общие вершины и совпадающие по направлению,
кратные
.
f
Найдите кратные дуги.
2
d
3
а с
1
в
Решение многих задач упрощается, если использовать графы.
Задача.
В углах доски 3*3 стоят 4 шахматных коня - два белых и два черных через один. Требуется переставить их так, как показано на картинке или доказать, что это невозможно.
8 1 Пронумеруем клетки, по которым могут ходить кони, и возьмем их в качестве вершин графа.
1 2 3 8 4 7 6 5
Вершины соединим дугой, если конь может попасть из одной вершины в другую одним ходом. Развернем граф, расположим 2 3 вершины так, чтобы граф выглядел наглядно и в нем можно было бы разобраться.
1 4 4 6 7 5 7 6 3 Если кони не встанут на одну клетку, то им друг друга не обойти 8 5 2
Задача2.
У султана много жен, и каждой он обещал посвятить песню, но придворный поэт внезапно заболел меланхолией, а султан сумел сочинить только две. Каждая жена расскажет о посвященной песне только своим подругам, которые не будут передавать информацию дальше. Сможет ли султан спеть каждой жене песню так, чтобы она не узнала о том, что еще кому-то посвящена точно такая же?
У султана 8 жен и дружат они такими парами: 1-2 2-5 8-5 1-8 7-3 3-6 7-4 4-6 1-7 2-3 6-5 8-4 Каким женам надо посвятить одну песню, а каким- другую?
При решении задач используются 4 основных способа описания графа: матрица инцидентности, матрица смежности, списки связи перечни ребер.
Матрица смежности
1, если вершины с данными номерами смежные A[i,j]= 1 5 0, в противном случае 2 4 3
1 2 3 4 5 1 0 1 0 0 0 2 0 0 1 0 0 3 0 1 0 1 1 4 0 0 1 0 0 5 0 0 1 0 0
Перечень ребер
1 5 2 3 4
1 2 1 1 2 2 2 3 3 3 4 4 3 5
Задание
Дан граф. Составьте для него матрицу смежности и перечень ребер.
2 1 3 5 4
Множество алгоритмов на графах требует просмотра вершин графа.
Существует два классических алгоритма просмотра всех вершин графа:
поиск в глубину
поиск в ширину
.
Поиск в глубину
. Его девиз:
«Иди вперед в неисследованную область; если вокруг нее все
исследовано, отступи на шаг назад и ищи новые возможности для продвижения вперед»
Поиск начинается с некоторой фиксированной вершины V.Рассматривается вершина U, смежная с V. Она выбирается. Если на очередном шаге мы работаем с вершиной Q и нет вершин, смежных с ней и не рассмотренных ранее( новых), то возвращаемся из вершины Q к вершине, которая была до нее. В том случае, когда это вершина V, процесс закончен. Для реализации этого метода нужен стек.
2 3 1 1 3 2 4 6 7 5 9 7 4 5 6 8 8 9 Y 1 2 3 2 3 4 5 6 5 6 5 4 1 0 5 4 3 2 ST 1 31 231 31 631 7631 57631 457631 57631 857631 57631 7631 97631 7631 631 31 1 FLAG 011111111 010111111 000111111 000111111 000110111 000110011 000100011 000000011 000000011 000000001 000000001 000000001 000000000 000000000 000000000 000000000 000000000 T 1 3 2 3 6 7 5 4 5 8 5 7 9 7 6 3 1 1 6 7 8 9 1 2 3 4 5 1 1 2 3 1 1 4 1 1 1 1 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 1 1 Матрица просмотра очередной вершины Flag C тек для хранения просмотренных вершин St Указатель вершины стека Y Номер очередной вершины T
Постройте порядок просмотра вершин данного графа, используя метод
поиска в глубину
.
1 3 2 4 6 5 7 9 8
Поиск в ширину ( волновой алгоритм)
2 3 5 6 Поиск начинается с фиксированной вершины V. Затем проверяются все вершины, смежные с V и не просмотренные ранее. Их номера заносятся в очередь. Далее процесс продолжается с первой из вершин, записанной в очередь. И так до тех пор, пока очередь не окажется пустой.
1 7 4 7 1 2 3 4 5 6 8 8 T 1 3 4 2 6 5 ORDER 34 426 265 65 57 78 FLAG 010011111 000010111 000000111 000000111 000000011 000000001 1 2 3 4 5 6 7 8 9 1 1 1 2 1 3 1 1 1 4 1 1 5 1 1 1 6 1 1 7 1 1 1 1 8 1 1 9 7 89 000000000 9 8 9 000000000 9 000000000 9 1 Матрица сигнала просмотра очередной вершины Flag Очередь просмотра вершин Номер очередной вершины Order T
Постройте порядок просмотра вершин данного графа, используя метод
поиска в ширину
.
1 3 2 4 6 5 7 9 8