Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

сиаод / 35-66 / 61.Минимальные покрывающие деревья. Алгоритм Крускала

..pdf
Скачиваний:
63
Добавлен:
11.05.2015
Размер:
261.5 Кб
Скачать

61.Минимальные покрывающие деревья. Алгоритм Крускала.

Остовным (покрывающим) деревом называется подграф, не содержащий циклов, включающий все вершины исходного графа, для которого сумма весов ребер минимальна. Минимальное остовное дерево в связанном, взвешенном, неориентированном графе — это остовное дерево этого графа, имеющее минимальный возможный вес, где под весом дерева понимается сумма весов входящих в него рёбер.

Алгоритм Крускала. Вычислительная сложность: Сортировка(mlogn), Основная часть(n2). Первоначально каждая вершина(v1,v2…) исходного графа помещается в одноэлементное множество, где все вершины изолированы (поэтому считается что множество Ws имеет вид: Ws={{v1},{v2},…,{vn}}. Ребра сортируются по возрастанию. Ребро включается в остовное дерево, если оно связывает вершины, принадлежащие разным множествам. Алгоритм заканчивает работу, когда все вершины объединяются в одно множество, при этом оставшиеся ребра не включаются в оставное дерево. E-количества ребер,V- вершин.

Алгоритм Kruskal(G)

1.for each viV do Mark[vi]I; 2.T<-; LESort[E];

3.while |T|<|v|-1 do 4.(v,w)min(LE)

5.if Mark[v]Mark[w] then 6.TT{(v,w)}; 7.zMark[w];

8.for each uV do

9.if Mark[u]=z then 10.Mark[u]Mark[v] end if; 11.end for;

12.end if;

13.LELE –{(v,w)}; 14.end while.

Соседние файлы в папке 35-66