Теория графов

Download Report

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