Минимальное остовное дерево (МОД)
Теорема о минимальном ребре
Алгоритм Краскала (Жадный алгоритм)
Алгоритм ЯПД (Ярника-Прима-Дейкстры)
Нижняя граница задачи нахождения МОД
Построение и анализ алгоритмов
Построение и анализ алгоритмов
Остовное дерево
…
Повторение с предыдущей лекции
Остовное дерево
Ti, ni
Удаляем некоторый узел и k инцидентных рёбер (k∈1..n − 1 ).
Образуется лес из деревьев Ti с числом узлов ni (i ∈1..k).
Минимальное остовное дерево (МОД)
МОД : TM = Arg min ( W(T) )
1. Теорема о минимальном ребре. Версия 0.
1. Теорема о минимальном ребре. Версия 0*.
u
v
u′
v′
На этом цикле есть ребро {u′, v′ }.
W [u, v] ≤ W [u′, v′ ] .
W [u, v] < W [u′, v′ ] . Тогда, удалив {u′, v′ }, получим другое ОД, содержащее T и ребро {u, v} и имеющее меньший вес, чем F. Это противоречит «противному».
W [u, v] = W [u′, v′ ]. Случай равных весов. …
V1
V2
1. Теорема о минимальном ребре. Версия 1.
Замечание о рёбрах с равными весами и формулировке теоремы.
Теорема о минимальном ребре
u
v
u′
v′
На этом цикле есть ребро {u′, v′ }.
W [u, v] ≤ W [u′, v′ ] .
W [u, v] < W [u′, v′ ] . Тогда, удалив {u′, v′ }, получим другое ОД, содержащее T и ребро {u, v} и имеющее меньший вес, чем F. Это противоречит «противному».
W [u, v] = W [u′, v′ ]. Случай равных весов. …
V1
V \V1
2. Жадный алгоритм построения МОД (Kruskal, 1956)
W[1..12]: 1, 3, 4, 9, 15, 16, 17, 20, 23, 25, 26, 36
W(T)= 1+3+4+9+17+23 = 57
Замечание. Ср. с примером о связности.
Найти W1∈Vs, такое, что u∈W1. То же для v и W2. Это операция НАЙТИ.
Заменить в Vs подмножества W1 и W2 на их объединение W1∪W2 - это операция ОБЪЕДИНИТЬ.
01.03.2016
Алгоритмы на графах: построение МОД
Замечание. Ср. с примером о связности.
Найти W1∈Vs, такое, что u∈W1. То же для v и W2. Это операция НАЙТИ.
Заменить в Vs подмножества W1 и W2 на их объединение W1∪W2 - это операция ОБЪЕДИНИТЬ.
Сложность (быстрый поиск – медленное объединение)
∼ m log m + n2 (!)
Жадный алгоритм построения МОД (Kruskal, 1956)
Жадный алгоритм
(на каждом шаге дерево растёт за счёт слияния поддеревьев)
Алгоритм ЯПД
(выбор ближайшей вершины к дереву, на каждом шаге дерево вырастает на одну ветку)
Алгоритм Ярника-Прима-Дейкстры
Можно улучшить алгоритм до O(n2). i n-i
Дерево
T = (Vt, Et)
V \ Vt
Алгоритм Ярника-Прима-Дейкстры
Алгоритм Ярника-Прима-Дейкстры
4. Нижняя граница задачи нахождения МОД
01.03.2016
Алгоритмы на графах: построение МОД
Реализация алгоритма Ярника-Прима-Дейкстры
для разрежённых графов
Упрощённое представление
После двух шагов
Текущее МОД: {a, i, c}
После четырёх шагов
Текущее МОД: {a, i, c, b, h}
После четырёх шагов
Текущее МОД: {a, i, c, b, h}
После шести шагов
Текущее МОД: {a, i, c, b, h, g, e}
После восьми шагов
Результат - МОД:
{a, i, c, b, h, g, e, f, d}
W = 1+2+4+8+7+5+6+14 = 47
После шести шагов
Текущее МОД: {a, i, c, b, h, g, e}
(x, near[x], dist[x])
dist[x] = d[x][near[x]].
(x, dist[x])
(b,4)
(c,2)
(d,15)
(e,13)
(f,12)
(g,10)
(h,11)
(i,1)
(b,4)
(c,2)
(d,15)
(e,13)
(f,12)
(g,10)
(h,11)
(i,1)
(c,2)
(f,12)
(h,11)
(i,1)
(e,13)
(b,4)
(d,15)
(g,10)
(f,12)
(h,8)
(d,15)
(g,9)
(e,13)
(c,2)
(b,4)
(f,12)
(g,9)
(d,15)
(h,8)
(e,13)
(c,2)
(b,4)
Шаг 1
ТМОД = {a, i}
(f,12)
(d,14)
(h,8)
(e,13)
(g,9)
(f,12)
(g,9)
(d,15)
(h,8)
(e,13)
(c,2)
(b,4)
(b,4)
Шаг 2
ТМОД = {a, i, c}
(f,12)
(d,14)
(h,8)
(e,13)
(g,9)
(b,4)
(f,12)
(e,13)
(g,9)
(d,14)
(h,8)
Шаг 3
ТМОД = {a, i, c, b}
(e,13)
(f,12)
(d,14)
(g,7)
Шаг 4
ТМОД = {a, i, c, b, h}
(f,12)
(e,13)
(g,9)
(d,14)
(h,8)
(e,5)
(d,14)
(f,6)
Шаг 5
ТМОД = {a, i, c, b, h, g}
(e,13)
(f,12)
(d,14)
(g,7)
(f,6)
(d,14)
(e,5)
(d,14)
(f,6)
Шаг 6
ТМОД = {a, i, c, b, h, g, e}
(f,6)
(d,14)
(e,5)
(d,14)
Шаг 7
ТМОД = {a, i, c, b, h, g, e, f}
(d,14)
(f,6)
Шаг 8
ТМОД = {a, i, c, b, h, g, e, f, d}
(d,14)
КОНЕЦ ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть