ݺߣ

ݺߣShare a Scribd company logo
Хакасский государственный университет им. Н.Ф. Катанова

     Структуры и алгоритмы обработки данных

    Лекция: Графы: сильно связанные
      компоненты, остовные деревья.

       Николай Гребенщиков, www.grebenshikov.ru
Проблема связности

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

Орграф называется сильно связным, если для каждой па-
ры вершин u, v ∈ V существует путь из v в u и обратно.




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




                                                 2
Сильно связные компоненты и DFS




                                  3
Поиск сильно связных компонентов


FindStrongComp(G)
1   DF S(G) £ вычислим f [u] для каждой вершины u
2   R ← Reverse(G) £ инвертируем все ребра в G
3   SortByF (R) £ сортируем вершины в R по f [u] по убыванию
4   DF S(R)

Результат: каждое DFS-дерево в R яляется сильно связным
компонентом.



                                                     4
Алгоритм поиска сильно связных компонетов




                                            5
Доказательство теоремы на семинар:

Процедура F indStrongComp(G) корректно вычисляет сильно
связные компоненты ориентированного графа G.




                                                  6
Проблема построения сети

Области возникновения: коммуникационные и дорожные се-
ти.

Дано: множество узлов сети (хосты, города).

Необходимо: построение сети с наименьшим общим весом
ребер (длина сетевых кабелей, длина дорог).

Графовая модель: узлы сети являются узлами графа, E =
V 2, нам известны веса всех ребер.

Результат: свободное дерево.
                                                 7
Минимальное дерево Стайнера




                              8
Минимальное остовное дерево

Остовное дерево - ацикличный подграф G1 = (V 1, E1, w1)
графа G = (V, E, w), где E1 ⊆ E, V 1 = V, w1 = w.

Минимальное остовное дерево - остовное дерево с мини-
мальным весом. w(G) =    w(u, w).
                      (u,w)∈E




                                                  9
Примеры остовных деревьев




                            10
Подход к поиску МОД

Строим дерево путем добавления по одному ребру, и перед
каждой итерацией текущее дерево является подмножеством
некоторого МОД.


GenericMST(G, w)
1   A←0
2   while A не является МОД
3        do Найти безопасное для A ребро (u, v)
4           A ← A {(u, v)}
5   return A


                                                  11
Разрез (S, V − S) неориентированного графа G = (V, E) есть
разбиение множества вершин графа.




                                                     12
Ребро (u, v) ∈ E пересекает разрез (S, V − S), если один из
его концов находится в S, а другой в V − S.

Разрез согласован с множеством A по ребрам, если ни одно
ребро из A не пересекает разрез.

Ребро, пересекающее разрез, является легким, если оно име-
еит минимальный вес среди всех ребер, пересекающих раз-
рез.




                                                      13
Теорема

Пусть G = (V, E) - связный неориентированный граф с дей-
ствительной весовой функцией w, определенной на E. Пусть
A - подмножество E, которое входит в некоторое минималь-
ное остовное дерево G, (S, V − S) - разрез G, согласованный
с по ребрам, а (u, v) - легкое ребро, пересекающее разрез
(S, V − S). Тогда ребро (u, v) является безопасным для A.

Доказательство на семинар.



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




                    15
Алгоритм Крускала - процедуры

Create − Set(u) - создать множество из одной вершины u.

F ind − Set(u) - найти множество, которому принадлежит вер-
шина u.

U nion(u, v) - объединить множества, которые содержат вер-
шины u и v.

Структуры данных для хранения непересекающихся под-
множеств на семинар.


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




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

E ≥ V , так как граф связный.

Создание множеств - Θ(V · αV ) = Θ(V logV ) = Θ(ElogE)

Сортировка ребер - Θ(ElogE).

Цикл выполняется E раз.

Поиск и объединие множеств - Θ(αV ) = Θ(logV ) = Θ(logE)

T (G) = Θ(ElogE)

                                                     18
Алгоритм Прима: идея




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




                 20
Алгоритм Прима: пример




                         21
Алгоритм Прима: анализ

T (G) = V + V logV +         (logV + deg(u)logV ) = V + V logV + (V +
                       u∈V
2E)logV = Θ(ElogV )




                                                               22
На семинар

Алгоритм Барувки (Baruvka)




                             23
Список литературы


 • David M. Mount, The Lecture notes: Design and Analysis
   of Computer Algorithms. [Электронный ресурс] / Dept. of
   Computer Science, University of Maryland, 2004. - Режим
   доступа: http://www.cs.umd.edu/ mount/451/Lects/451lects.pdf
   . - сс.39-49


 • Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгорит-
   мы: построение и анализ, 2-е издание. - М. : Издатель-
   ский дом “Вильямс”, 2007. сс.644-662.


                                                    24

More Related Content

What's hot (20)

Opredelennyj integral
Opredelennyj integralOpredelennyj integral
Opredelennyj integral
Dimon4
Лекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графеЛекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графе
Mikhail Kurnosov
Funkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafikFunkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafik
Иван Иванов
Лекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовЛекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графов
Mikhail Kurnosov
Лекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графеЛекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графе
Mikhail Kurnosov
Лекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графовЛекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графов
Mikhail Kurnosov
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
20110224 systems of_typed_lambda_calculi_moskvin_lecture0320110224 systems of_typed_lambda_calculi_moskvin_lecture03
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
Computer Science Club
20091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture1020091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture10
Computer Science Club
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL ModelsTMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
Iosif Itkin
Лекция 9: Графы. Кратчайшие пути в графах
Лекция 9: Графы. Кратчайшие пути в графахЛекция 9: Графы. Кратчайшие пути в графах
Лекция 9: Графы. Кратчайшие пути в графах
Mikhail Kurnosov
11.2 курс лекций афу
11.2 курс лекций афу11.2 курс лекций афу
11.2 курс лекций афу
GKarina707
20110522 systems of typed lambda_calculi_moskvin_lecture11
20110522 systems of typed lambda_calculi_moskvin_lecture1120110522 systems of typed lambda_calculi_moskvin_lecture11
20110522 systems of typed lambda_calculi_moskvin_lecture11
Computer Science Club
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Nikolay Grebenshikov
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signature
Andrei Poliakov
Дифференцциальное исчисление
Дифференцциальное исчислениеДифференцциальное исчисление
Дифференцциальное исчисление
vladimiryaschuk
20081123 structuralcomplexitytheory lecture11-12
20081123 structuralcomplexitytheory lecture11-1220081123 structuralcomplexitytheory lecture11-12
20081123 structuralcomplexitytheory lecture11-12
Computer Science Club
О-символика
О-символикаО-символика
О-символика
DEVTYPE
зависимость между песочной группой графа и его матроидом
зависимость между песочной группой графа и его матроидомзависимость между песочной группой графа и его матроидом
зависимость между песочной группой графа и его матроидом
Иван Иванов
Opredelennyj integral
Opredelennyj integralOpredelennyj integral
Opredelennyj integral
Dimon4
Лекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графеЛекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графе
Mikhail Kurnosov
Лекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовЛекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графов
Mikhail Kurnosov
Лекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графеЛекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графе
Mikhail Kurnosov
Лекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графовЛекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графов
Mikhail Kurnosov
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
20110224 systems of_typed_lambda_calculi_moskvin_lecture0320110224 systems of_typed_lambda_calculi_moskvin_lecture03
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
Computer Science Club
20091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture1020091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture10
Computer Science Club
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL ModelsTMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
Iosif Itkin
Лекция 9: Графы. Кратчайшие пути в графах
Лекция 9: Графы. Кратчайшие пути в графахЛекция 9: Графы. Кратчайшие пути в графах
Лекция 9: Графы. Кратчайшие пути в графах
Mikhail Kurnosov
11.2 курс лекций афу
11.2 курс лекций афу11.2 курс лекций афу
11.2 курс лекций афу
GKarina707
20110522 systems of typed lambda_calculi_moskvin_lecture11
20110522 systems of typed lambda_calculi_moskvin_lecture1120110522 systems of typed lambda_calculi_moskvin_lecture11
20110522 systems of typed lambda_calculi_moskvin_lecture11
Computer Science Club
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Nikolay Grebenshikov
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signature
Andrei Poliakov
Дифференцциальное исчисление
Дифференцциальное исчислениеДифференцциальное исчисление
Дифференцциальное исчисление
vladimiryaschuk
20081123 structuralcomplexitytheory lecture11-12
20081123 structuralcomplexitytheory lecture11-1220081123 structuralcomplexitytheory lecture11-12
20081123 structuralcomplexitytheory lecture11-12
Computer Science Club
О-символика
О-символикаО-символика
О-символика
DEVTYPE
зависимость между песочной группой графа и его матроидом
зависимость между песочной группой графа и его матроидомзависимость между песочной группой графа и его матроидом
зависимость между песочной группой графа и его матроидом
Иван Иванов

Similar to Лекция №13. Графы: сильно связные компоненты и остовные деревья. Предмет "Структуры и алгоритмы обработки данных" (20)

графы
графыграфы
графы
Mariya_Lastochkina
17788fdsfdsfdsfdsfdsfdsfdsfdsfsdfsdfdsfsdf6.ppt
17788fdsfdsfdsfdsfdsfdsfdsfdsfsdfsdfdsfsdf6.ppt17788fdsfdsfdsfdsfdsfdsfdsfdsfsdfsdfdsfsdf6.ppt
17788fdsfdsfdsfdsfdsfdsfdsfdsfsdfsdfdsfsdf6.ppt
SanjarMadraximov
9893
98939893
9893
nreferat
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и кодыГригорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Yandex
графы дженжеруха
графы дженжерухаграфы дженжеруха
графы дженжеруха
Gala Timofeeva
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
romovpa
20111023 circuit complexity_seminar_lecture04_mihajlin
20111023 circuit complexity_seminar_lecture04_mihajlin20111023 circuit complexity_seminar_lecture04_mihajlin
20111023 circuit complexity_seminar_lecture04_mihajlin
Computer Science Club
Основы теории графов - I
Основы теории графов - IОсновы теории графов - I
Основы теории графов - I
DEVTYPE
20080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-0220080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-02
Computer Science Club
20111106 circuit complexity_seminar_lecture06_golovnev
20111106 circuit complexity_seminar_lecture06_golovnev20111106 circuit complexity_seminar_lecture06_golovnev
20111106 circuit complexity_seminar_lecture06_golovnev
Computer Science Club
Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...
Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...
Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...
Nikolay Grebenshikov
Kuznecova 9klass
Kuznecova 9klassKuznecova 9klass
Kuznecova 9klass
qwasar1
554 1 алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с
554 1  алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с554 1  алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с
554 1 алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с
dfdkfjs
117
117117
117
fderfwr
Лекция 1 часть 3 декартово произв
Лекция 1 часть 3 декартово произвЛекция 1 часть 3 декартово произв
Лекция 1 часть 3 декартово произв
Ирина Гусева
20070930 efficientalgorithms kulikov_lecture02
20070930 efficientalgorithms kulikov_lecture0220070930 efficientalgorithms kulikov_lecture02
20070930 efficientalgorithms kulikov_lecture02
Computer Science Club
17788fdsfdsfdsfdsfdsfdsfdsfdsfsdfsdfdsfsdf6.ppt
17788fdsfdsfdsfdsfdsfdsfdsfdsfsdfsdfdsfsdf6.ppt17788fdsfdsfdsfdsfdsfdsfdsfdsfsdfsdfdsfsdf6.ppt
17788fdsfdsfdsfdsfdsfdsfdsfdsfsdfsdfdsfsdf6.ppt
SanjarMadraximov
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и кодыГригорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Yandex
графы дженжеруха
графы дженжерухаграфы дженжеруха
графы дженжеруха
Gala Timofeeva
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
romovpa
20111023 circuit complexity_seminar_lecture04_mihajlin
20111023 circuit complexity_seminar_lecture04_mihajlin20111023 circuit complexity_seminar_lecture04_mihajlin
20111023 circuit complexity_seminar_lecture04_mihajlin
Computer Science Club
Основы теории графов - I
Основы теории графов - IОсновы теории графов - I
Основы теории графов - I
DEVTYPE
20080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-0220080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-02
Computer Science Club
20111106 circuit complexity_seminar_lecture06_golovnev
20111106 circuit complexity_seminar_lecture06_golovnev20111106 circuit complexity_seminar_lecture06_golovnev
20111106 circuit complexity_seminar_lecture06_golovnev
Computer Science Club
Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...
Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...
Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...
Nikolay Grebenshikov
Kuznecova 9klass
Kuznecova 9klassKuznecova 9klass
Kuznecova 9klass
qwasar1
554 1 алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с
554 1  алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с554 1  алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с
554 1 алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с
dfdkfjs
Лекция 1 часть 3 декартово произв
Лекция 1 часть 3 декартово произвЛекция 1 часть 3 декартово произв
Лекция 1 часть 3 декартово произв
Ирина Гусева
20070930 efficientalgorithms kulikov_lecture02
20070930 efficientalgorithms kulikov_lecture0220070930 efficientalgorithms kulikov_lecture02
20070930 efficientalgorithms kulikov_lecture02
Computer Science Club

More from Nikolay Grebenshikov (12)

Программирование: от сложного к простому
Программирование: от сложного к простомуПрограммирование: от сложного к простому
Программирование: от сложного к простому
Nikolay Grebenshikov
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Nikolay Grebenshikov
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
Nikolay Grebenshikov
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Nikolay Grebenshikov
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Nikolay Grebenshikov
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"
Nikolay Grebenshikov
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...
Nikolay Grebenshikov
Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...
Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...
Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...
Nikolay Grebenshikov
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"
Nikolay Grebenshikov
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Nikolay Grebenshikov
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Nikolay Grebenshikov
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Nikolay Grebenshikov
Программирование: от сложного к простому
Программирование: от сложного к простомуПрограммирование: от сложного к простому
Программирование: от сложного к простому
Nikolay Grebenshikov
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Nikolay Grebenshikov
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
Nikolay Grebenshikov
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Nikolay Grebenshikov
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Nikolay Grebenshikov
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"
Nikolay Grebenshikov
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...
Nikolay Grebenshikov
Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...
Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...
Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...
Nikolay Grebenshikov
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"
Nikolay Grebenshikov
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Nikolay Grebenshikov
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Nikolay Grebenshikov
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Nikolay Grebenshikov

Лекция №13. Графы: сильно связные компоненты и остовные деревья. Предмет "Структуры и алгоритмы обработки данных"

  • 1. Хакасский государственный университет им. Н.Ф. Катанова Структуры и алгоритмы обработки данных Лекция: Графы: сильно связанные компоненты, остовные деревья. Николай Гребенщиков, www.grebenshikov.ru
  • 2. Проблема связности В коммуникационных и транспортных сетях важно знать, что любой узел сети доступен из любого другого узла. Орграф называется сильно связным, если для каждой па- ры вершин u, v ∈ V существует путь из v в u и обратно. 1
  • 3. Сильно связный компонент графа G есть сильно связный подграф графа G, причем в него входят максимально воз- можное количество вершин, для которых существуют пути туда и обратно. 2
  • 5. Поиск сильно связных компонентов FindStrongComp(G) 1 DF S(G) £ вычислим f [u] для каждой вершины u 2 R ← Reverse(G) £ инвертируем все ребра в G 3 SortByF (R) £ сортируем вершины в R по f [u] по убыванию 4 DF S(R) Результат: каждое DFS-дерево в R яляется сильно связным компонентом. 4
  • 6. Алгоритм поиска сильно связных компонетов 5
  • 7. Доказательство теоремы на семинар: Процедура F indStrongComp(G) корректно вычисляет сильно связные компоненты ориентированного графа G. 6
  • 8. Проблема построения сети Области возникновения: коммуникационные и дорожные се- ти. Дано: множество узлов сети (хосты, города). Необходимо: построение сети с наименьшим общим весом ребер (длина сетевых кабелей, длина дорог). Графовая модель: узлы сети являются узлами графа, E = V 2, нам известны веса всех ребер. Результат: свободное дерево. 7
  • 10. Минимальное остовное дерево Остовное дерево - ацикличный подграф G1 = (V 1, E1, w1) графа G = (V, E, w), где E1 ⊆ E, V 1 = V, w1 = w. Минимальное остовное дерево - остовное дерево с мини- мальным весом. w(G) = w(u, w). (u,w)∈E 9
  • 12. Подход к поиску МОД Строим дерево путем добавления по одному ребру, и перед каждой итерацией текущее дерево является подмножеством некоторого МОД. GenericMST(G, w) 1 A←0 2 while A не является МОД 3 do Найти безопасное для A ребро (u, v) 4 A ← A {(u, v)} 5 return A 11
  • 13. Разрез (S, V − S) неориентированного графа G = (V, E) есть разбиение множества вершин графа. 12
  • 14. Ребро (u, v) ∈ E пересекает разрез (S, V − S), если один из его концов находится в S, а другой в V − S. Разрез согласован с множеством A по ребрам, если ни одно ребро из A не пересекает разрез. Ребро, пересекающее разрез, является легким, если оно име- еит минимальный вес среди всех ребер, пересекающих раз- рез. 13
  • 15. Теорема Пусть G = (V, E) - связный неориентированный граф с дей- ствительной весовой функцией w, определенной на E. Пусть A - подмножество E, которое входит в некоторое минималь- ное остовное дерево G, (S, V − S) - разрез G, согласованный с по ребрам, а (u, v) - легкое ребро, пересекающее разрез (S, V − S). Тогда ребро (u, v) является безопасным для A. Доказательство на семинар. 14
  • 17. Алгоритм Крускала - процедуры Create − Set(u) - создать множество из одной вершины u. F ind − Set(u) - найти множество, которому принадлежит вер- шина u. U nion(u, v) - объединить множества, которые содержат вер- шины u и v. Структуры данных для хранения непересекающихся под- множеств на семинар. 16
  • 19. Анализ алгоритма Крускала E ≥ V , так как граф связный. Создание множеств - Θ(V · αV ) = Θ(V logV ) = Θ(ElogE) Сортировка ребер - Θ(ElogE). Цикл выполняется E раз. Поиск и объединие множеств - Θ(αV ) = Θ(logV ) = Θ(logE) T (G) = Θ(ElogE) 18
  • 23. Алгоритм Прима: анализ T (G) = V + V logV + (logV + deg(u)logV ) = V + V logV + (V + u∈V 2E)logV = Θ(ElogV ) 22
  • 25. Список литературы • David M. Mount, The Lecture notes: Design and Analysis of Computer Algorithms. [Электронный ресурс] / Dept. of Computer Science, University of Maryland, 2004. - Режим доступа: http://www.cs.umd.edu/ mount/451/Lects/451lects.pdf . - сс.39-49 • Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгорит- мы: построение и анализ, 2-е издание. - М. : Издатель- ский дом “Вильямс”, 2007. сс.644-662. 24