Алгоритм Краскала, Прима для нахождения минимального остовного дерева
Download 285.1 Kb.
|
Алгоритм Краскала
- Bu sahifa navigatsiya:
- Описание[править | править код]
- Пример[править | править код]
- Реализация[править | править код]
- Псевдокод[править | править код]
- Оценка[править | править код]
Содержание1Описание 2Пример 3Реализация 3.1Обозначения 3.2Псевдокод 4Оценка 5См. также 6Литература 7Ссылки Описание[править | править код]На вход алгоритма подаётся связный неориентированный граф. Для каждого ребра задаётся его стоимость. Сначала берётся произвольная вершина и находится ребро, инцидентное данной вершине и обладающее наименьшей стоимостью. Найденное ребро и соединяемые им две вершины образуют дерево. Затем, рассматриваются рёбра графа, один конец которых — уже принадлежащая дереву вершина, а другой — нет; из этих рёбер выбирается ребро наименьшей стоимости. Выбираемое на каждом шаге ребро присоединяется к дереву. Рост дерева происходит до тех пор, пока не будут исчерпаны все вершины исходного графа. Результатом работы алгоритма является остовное дерево минимальной стоимости. Пример[править | править код]
Реализация[править | править код]Обозначения[править | править код]�[�] — расстояние от � -й вершины до построенного дерева �[�] — предок � -й вершины, то есть такая вершина � , что (�,�) легчайшее из всех рёбер, соединяющее i с вершиной из построенного дерева. �(�,�) — вес ребра (�,�) � — приоритетная очередь вершин графа, где ключ — �[�] � — множество ребер минимального остовного дерева Псевдокод[править | править код]�← {} Для каждой вершины �∈� �[�]←∞ �[�]←��� �[1]←0 �←� �← �������.���(�) Пока � не пуста Для каждой вершины � смежной с � Если �∈� и �(�,�)<�[�] �[�]←�(�,�) �[�]←� �←�������.���(�) �←�+(�[�],�) Оценка[править | править код]Асимптотика алгоритма зависит от способа хранения графа и способа хранения вершин, не входящих в дерево. Если приоритетная очередь � реализована как обычный массив � , то �������.���(�) выполняется за �(�) , а стоимость операции �[�]←�(�,�) составляет �(1) . Если � представляет собой бинарную пирамиду, то стоимость �������.���(�) снижается до �(log�) , а стоимость �[�]←�(�,�) возрастает до �(log�) . При использовании фибоначчиевых пирамид операция �������.���(�) выполняется за �(log�) , а �[�]←�(�,�) за �(1) .
Download 285.1 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling