1 / 46

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

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

kenyon-hunt
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Пример

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

  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.

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

  7. Достижимость • Матрица достижимости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.

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

  9. Алгоритм Дейкстры • Пусть имеется направленный ориентированный граф с двумя выделенными вершинами Vs и Vt. Найти минимальный направленный путь из Vs в Vt. • Помечаем вершину Vs, и присваиваем ей вес qs:=0, а всем остальным присваиваем временный вес qi=∞ • Полагаем i=s – номер последней отмеченной вершины • Для каждой неотмеченной вершины Vj выполняется следующий оператор qj:=min(qj, qi+pij), где pij – вес ветви, ведущей из i-той вершины в j-тую, если нет pij, считаем pij=∞

  10. Алгоритм Дейкстры • Проверяем, есть ли среди только что отмеченных qj конечное значение. Если таких вершин нет, то мы завершаем алгоритм, пути из s в t не существует. Если же конечное значение qj найдется, то из них выбирается минимальная. Пусть это вершина j0, тогда мы помечаем эту вершину, а так же помечаем ту дугу, по которой мы добирались в вершину Vj0, при получении этого минимального значения. • I=jo • Проверяем условие i=t. Если это так, алгоритм завершается, L(s-t)=qj0. Сам же минимальный путь считается, начиная с вершины Vt по выделенным дугам в обратном порядке. Если же i≠t, возвращаемся к пункту 3.

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

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

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

  14. Медиана • Внешней медианой называется такая вершина, для которой внешнее передаточное число минимально. i0=arg min φi. • Внутренней медианой называется такая вершина, для которой внутреннее передаточное число минимально. j0=arg min Ψi. • Медиана – это вершина, в которой сумма Ψ и φ минимальна. Q= Ψi+ φi.

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

  16. Волновой метод • Алгоритм решения задачи волновым методом. • Помечаем вершину а индексом 0. • Вершины, смежные с а и соединенные с а, дугами, инцидентными вершине а, помечаем индексами 1. • Вершины, смежные с помеченными индексами 1 и соединенные с ними инцидентными вершинам 1 дугами, помечаем индексами 2.

  17. Волновой метод • Аналогично помечаем вершины индексами 3, 4, … • Совокупность вершин, помеченных индексом m, обозначим Am. • В некоторой момент будет помечена вершина b, пусть b∈An. Останавливаем процесс индексации.

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

  19. Пример

  20. Первая итерация 0 1 1

  21. Вторая итерация 0 1 1 2 2

  22. Третья итерация 0 1 1 2 2 3

  23. Четвертая итерация 0 1 1 2 4 2 3

  24. Пятая итерация 0 1 1 5 2 4 2 5 3

  25. Определяем путь 0 1 1, 3, 4, 7, 8, 9 1, 2, 4, 7, 8, 9 1. 3, 6, 7, 8, 9 1 5 2 4 2 5 3

  26. Волновой метод • В случае ориентированного графа волновой метод позволяет решить две задачи: • Найти длины кратчайших путей от вершины а до остальных вершин графа; • Найти длины кратчайших путей от каждой вершины графа до вершины а. • При этом в основном алгоритме изменяется только построение множества Аn.

  27. Условный радиус вершины • Если мы не будем останавливать индексацию, то через некоторое количество шагов все вершины графа будут снабжены индексами, причем наибольший из них является условным радиусом графа G относительно вершины а. • ra=max d(a, b)

  28. Центр и диаметр графа • Расстоянием между вершинами a и b называется длина кратчайшей цепи из a в b. • Радиус графа определяется как наименьший из условных радиусов вершин графа. • Центром графа G называется такая вершина a, что максимальное расстояние между a и любой другой вершиной является наименьшим из всех возможных. Это расстояние называется радиусом графа. • Диаметром d связного графа называется максимальное возможное расстояние между любыми двумя его вершинами. • Если расстояние между двумя вершинами равно диаметру графа, то кратчайший путь, соединяющий эти вершины, называется диаметральным путем, а подграф, образованный вершинами и ребрами этого пути, – диаметральной цепью.

  29. Алгоритм Флойда • Построим матрицу D0 размерности |V| x |V|, элементы которой определяются по правилу: • dii0= 0; • dij0= Weight(vi, vj), где i<>j, если в графе существует ребро (дуга) (vi, vj); • dij0= бесконечность , где i<>j, если нет ребра (дуги) (vi, vj). • m=0

  30. Пример 5 V2 2 V1 3 V3 3 3 2 2 V4 V5 1

  31. Основная часть алгоритма • Построим матрицу Dm+1по Dm, вычисляя ее элементы следующим образом:  • dijm+1=min{dijm, di(m+1)m + d(m+1)jm}, где i<>j; diim+1=0 (*). Если dimm + dmim< 0 для какого-то i, то в графе существует цикл (контур) отрицательной длины, проходящий через вершину vi. • 2. m:=m+1; если m<|V|, то повторяем шаг (1), иначе элементы последней построенной матрицы D|V| равны длинам кратчайших путей между соответствующими вершинами

  32. Пример m=0 5 V2 2 V1 3 V3 3 3 2 2 V4 V5 1

  33. Пример m=1 5 V2 2 V1 3 V3 3 3 2 2 V4 V5 1

  34. Пример m=2 5 V2 2 V1 3 V3 3 3 2 2 V4 V5 1

  35. Пример m=3 5 V2 2 V1 3 V3 3 3 2 2 V4 V5 1

  36. Пример m=4 5 V2 2 V1 3 V3 3 3 2 2 V4 V5 1

  37. Пример m=5

  38. Пример φ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 – медиана.

More Related