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

46
Теория графов Основные определения

Upload: kenyon-hunt

Post on 30-Dec-2015

88 views

Category:

Documents


4 download

DESCRIPTION

Теория графов. Основные определения. Дуга. Пусть имеется множество вершин V={V 1 ,V 2 ,…,V n } и пусть на нем задано бинарное отношение Г ⊂ V × V , V i Г V j ↔( V i V j ) ∈ Г – эту пару назовем дугой U k. Пример. Неориентированные графы. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Теория графов

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

Основные определения

Page 2: Теория графов

Дуга

Пусть имеется множество вершин V={V1,V2,…,Vn} и пусть на нем задано бинарное отношение Г⊂V×V, – Vi Г Vj↔(Vi Vj)∈ Г – эту пару назовем дугой Uk

Page 3: Теория графов

Пример

Page 4: Теория графов

Неориентированные графы

Если бинарное отношение симметрично, то наряду с дугой (Vi,Vj) есть дуга (Vj,Vi). В этом случае чаще всего переходят к неориентированным графам.

Page 5: Теория графов

Задание графов

Матрица инцидентности A. По вертикали указываются вершины, по горизонтали - ребра. aij=1 если вершина i инцидентна ребру j, в противном случае aij=0. Для орграфа aij=-1 если из вершины i исходит ребро j, aij=1 если в вершину i входит ребро j. Если ребро - петля, то aij=2.

Список ребер. В первом столбце ребра, во втором вершины им инцидентные.

Матрица смежности - квадратная симметричная матрица. По горизонтали и вертикали - все вершины. Dij= число ребер, соединяющее вершины i,j.

Матрица Кирхгофа: bij=-1, если вершины i и j смежны, bij=0 если вершины i и j не смежны. Сумма элементов в каждой строке и каждом столбце матрицы Кирхгофа равна 0.

Page 6: Теория графов
Page 7: Теория графов

Полустепень вершины

Для ориентированных графов: полустепенью исхода вершины |Г(Vi)| будем называть число дуг, исходящих из вершины Vi; полустепенью захода вершин |Г-1(Vi)| будем называть число дуг, заходящих в вершину. В орграфе две локальных степени вершины v: deg(v)+ и deg(v) - (число ребер с началом и концом в v). Для неориентированных графах говорят только о степени.

Следствие 2 из леммы о рукопожатиях. Число ребер в полном графе n(n-1)/2.

Page 8: Теория графов

Достижимость

Матрица достижимости R={rij}, {rij}=1, если Vj достижима из Vi, {rij}=0 в противном случае. R=E+A+А2+…+Ak

В степенях используется «булевское» умножение матриц (строк на столбец, но 1+1=1, 0+1=1,0+0=0, 1+0=0).

K – такое число, при котором дальнейшее сужение степеней не меняет матрицу R.

Page 9: Теория графов

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

Составляется список ребер в порядке увеличения весов.

В искомое дерево добавляем, начиная с первого элемента списка по порядку этого списка ветви до те пор, пока не встречаем ветвь, образующую с ранее включенной цикл. Данную ветвь вычеркиваем из списка. Затем продолжаем аналогичные действия до (n-1) ветви.

Page 10: Теория графов
Page 11: Теория графов

Алгоритм Дейкстры

Пусть имеется направленный ориентированный граф с двумя выделенными вершинами Vs и Vt. Найти минимальный направленный путь из Vs в Vt.

Помечаем вершину Vs, и присваиваем ей вес qs:=0, а всем остальным присваиваем временный вес qi=∞

Полагаем i=s – номер последней отмеченной вершины Для каждой неотмеченной вершины Vj выполняется

следующий оператор qj:=min(qj, qi+pij), где pij – вес ветви, ведущей из i-той вершины в j-тую, если нет pij, считаем pij=∞

Page 12: Теория графов

Алгоритм Дейкстры

Проверяем, есть ли среди только что отмеченных qj конечное значение. Если таких вершин нет, то мы завершаем алгоритм, пути из s в t не существует. Если же конечное значение qj найдется, то из них выбирается минимальная. Пусть это вершина j0, тогда мы помечаем эту вершину, а так же помечаем ту дугу, по которой мы добирались в вершину Vj0, при получении этого минимального значения.

I=jo Проверяем условие i=t. Если это так, алгоритм

завершается, L(s-t)=qj0. Сам же минимальный путь считается, начиная с вершины Vt по выделенным дугам в обратном порядке. Если же i≠t, возвращаемся к пункту 3.

Page 13: Теория графов
Page 14: Теория графов
Page 15: Теория графов
Page 16: Теория графов
Page 17: Теория графов
Page 18: Теория графов
Page 19: Теория графов

Медиана графа

Медиана — вершина графа, у которой сумма кратчайших расстояний от неё до вершин графа минимальная возможная.

p-медиана

Page 20: Теория графов

Внешнее передаточное число

p(i→k) – длина кратчайшего пути из i в k φi – сумма длин из вершины i в другие

вершины, внешнее передаточное число этой вершины

n

ii kip1

Page 21: Теория графов

Внутреннее передаточное число

Ψi-сумма длин от всех вершин до данной, внутреннее передаточное число i-той вершины.

n

ii ikp1

Page 22: Теория графов

Медиана

Внешней медианой называется такая вершина, для которой внешнее передаточное число минимально. i0=arg min φi.

Внутренней медианой называется такая вершина, для которой внутреннее передаточное число минимально. j0=arg min Ψi.

Медиана – это вершина, в которой сумма Ψ и φ минимальна. Q= Ψi+ φi.

Page 23: Теория графов

Волновой метод

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

Page 24: Теория графов

Волновой метод

Алгоритм решения задачи волновым методом.

1. Помечаем вершину а индексом 0.2. Вершины, смежные с а и соединенные с а,

дугами, инцидентными вершине а, помечаем индексами 1.

3. Вершины, смежные с помеченными индексами 1 и соединенные с ними инцидентными вершинам 1 дугами, помечаем индексами 2.

Page 25: Теория графов

Волновой метод

4. Аналогично помечаем вершины индексами 3, 4, …

5. Совокупность вершин, помеченных индексом m, обозначим Am.

6. В некоторой момент будет помечена вершина b, пусть b∈An. Останавливаем процесс индексации.

Page 26: Теория графов

Волновой метод

7. По построению можно найти вершину b1∈An-1, смежную с b, по тем же соображениям существует вершина b2∈An-2, смежная с b1, и т.д.

8. Искомая цепь с наименьшим числом ребер получается теперь как последовательность вершин (b, b1, b2, …, bn=a), где bi An-i, то есть нужно двигаться, начиная от конечной вершины b в сторону убывания индекса вершины.

Page 27: Теория графов

Пример

Page 28: Теория графов

Первая итерация

0 1

1

Page 29: Теория графов

Вторая итерация

0 1

1 2

2

Page 30: Теория графов

Третья итерация

0 1

1 2

2

3

Page 31: Теория графов

Четвертая итерация

0 1

1 2

2

3

4

Page 32: Теория графов

Пятая итерация

0 1

1 2

2

3

4

5

5

Page 33: Теория графов

Определяем путь

0 1

1 2

2

3

4

5

5

1, 3, 4, 7, 8, 9

1, 2, 4, 7, 8, 9

1. 3, 6, 7, 8, 9

Page 34: Теория графов

Волновой метод

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

остальных вершин графа;– Найти длины кратчайших путей от каждой вершины

графа до вершины а. При этом в основном алгоритме изменяется

только построение множества Аn.

Page 35: Теория графов

Условный радиус вершины

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

ra=max d(a, b)

Page 36: Теория графов

Центр и диаметр графа

Расстоянием между вершинами a и b называется длина кратчайшей цепи из a в b.

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

Центром графа G называется такая вершина a, что максимальное расстояние между a и любой другой вершиной является наименьшим из всех возможных. Это расстояние называется радиусом графа.

Диаметром d связного графа называется максимальное возможное расстояние между любыми двумя его вершинами.

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

Page 37: Теория графов

Алгоритм Флойда

Построим матрицу D0 размерности |V| x |V|, элементы которой определяются по правилу:

dii0= 0;

dij0= Weight(vi, vj), где i<>j, если в графе

существует ребро (дуга) (vi, vj);

dij0= бесконечность , где i<>j, если нет ребра

(дуги) (vi, vj). m=0

Page 38: Теория графов

Пример

V1 V2 V3 V4 V5

V1 0 х 3 3 2

V2 5 0 х х х

V3 х 2 0 х 3

V4 х х 2 0 х

V5 х х х 1 0

V1

V2

V3

V4V5

52

3

33

2

1

2

Page 39: Теория графов

Основная часть алгоритма

1. Построим матрицу Dm+1 по Dm, вычисляя ее элементы следующим образом: – dij

m+1=min{dijm, di(m+1)

m + d(m+1)jm}, где i<>j; dii

m+1=0 (*). Если dim

m + dmim < 0 для какого-то i, то в графе

существует цикл (контур) отрицательной длины, проходящий через вершину vi.

2. m:=m+1; если m<|V|, то повторяем шаг (1), иначе элементы последней построенной матрицы D|V| равны длинам кратчайших путей между соответствующими вершинами

Page 40: Теория графов

Пример m=0

V1 V2 V3 V4 V5

V1 0 х 3 3 2

V2 5 0 х х х

V3 х 2 0 х 3

V4 х х 2 0 х

V5 х х х 1 0

V1 V2 V3 V4 V5

V1 0 х 3 3 2

V2 5 0 5+3 х х

V3 х 2 0 х 3

V4 х х 2 0 х

V5 х х х 1 0

V1

V2

V3

V4V5

52

3

33

2

1

2

Page 41: Теория графов

Пример m=1

V1 V2 V3 V4 V5

V1 0 х 3 3 2

V2 5 0 8 8 7

V3 х 2 0 х 3

V4 х х 2 0 х

V5 х х х 1 0

V1 V2 V3 V4 V5

V1 0 х 3 3 2

V2 5 0 8 8 7

V3 5+2 2 0 х 3

V4 х х 2 0 х

V5 х х х 1 0

V1

V2

V3

V4V5

52

3

33

2

1

2

Page 42: Теория графов

Пример m=2

V1 V2 V3 V4 V5

V1 0 х 3 3 2

V2 5 0 8 8 7

V3 7 2 0 10 3

V4 х х 2 0 х

V5 х х х 1 0

V1 V2 V3 V4 V5

V1 0 3+2 3 3 2

V2 5 0 8 8 7

V3 7 2 0 10 3

V4 х х 2 0 х

V5 х х х 1 0

V1

V2

V3

V4V5

52

3

33

2

1

2

Page 43: Теория графов

Пример m=3

V1 V2 V3 V4 V5

V1 0 5 3 3 2

V2 5 0 8 8 7

V3 7 2 0 10 3

V4 9 4 2 0 5

V5 х х х 1 0

V1 V2 V3 V4 V5

V1 0 5 3 3 2

V2 5 0 8 8 7

V3 7 2 0 10 3

V4 9 4 2 0 5

V5 9+1 х х 1 0

V1

V2

V3

V4V5

52

3

33

2

1

2

Page 44: Теория графов

Пример m=4

V1 V2 V3 V4 V5

V1 0 5 3 3 2

V2 5 0 8 8 7

V3 7 2 0 10 3

V4 9 4 2 0 5

V5 10 5 3 1 0

V1 V2 V3 V4 V5

V1 0 5 3 3 2

V2 5 0 8 8 7

V3 7 2 0 3+1 3

V4 9 4 2 0 5

V5 10 5 3 1 0

V1

V2

V3

V4V5

52

3

33

2

1

2

Page 45: Теория графов

Пример m=5

V1 V2 V3 V4 V5

V1 0 5 3 3 2

V2 5 0 8 8 7

V3 7 2 0 4 3

V4 9 4 2 0 5

V5 10 5 3 1 0

Page 46: Теория графов

Пример

V1 V2 V3 V4 V5

V1 0 5 3 3 2

V2 5 0 8 8 7

V3 7 2 0 4 3

V4 9 4 2 0 5

V5 10 5 3 1 0

φ1=13 Ψ1=31 Q1=44

φ2=28 Ψ2=16 Q2=44

φ3=16 Ψ3=16 Q3=32

φ4=20 Ψ4=16 Q4=36

φ5=19 Ψ5=17 Q5=36

Q3 – медиана.