Алгоритм Прима
Алгоритм Прима — алгоритм построения минимального остовного дерева взвешенного связного неориентированного графа. Алгоритм впервые был открыт в 1930 году чешским математиком Войцехом Ярником, позже переоткрыт Робертом Примом в 1957 году, и, независимо от них, Э. Дейкстрой в 1959 году.
Содержание |
[править] Описание
Построение начинается с дерева, включающего в себя одну (произвольную) вершину. В течение работы алгоритма дерево разрастается, пока не охватит все вершины исходного графа. На каждом шаге алгоритма к текущему дереву присоединяется самое лёгкое из рёбер, соединяющих вершину из построенного дерева, и вершину не из дерева.
[править] Вход
- Связный неориентированный граф

[править] Выход
- Множество T рёбер минимального остовного дерева
[править] Реализация
[править] Обозначения
— расстояние от
-й вершины до построенного дерева
— предок
-й вершины, то есть такая вершина
, что
легчайшее из всех рёбер соединяющее i с вершиной из построенного дерева.
— вес ребра 
— приоритетная очередь вершин графа, где ключ — ![d[i]](//upload.wikimedia.org/wikipedia/ru/math/5/e/3/5e3eb41873316c870e257c8c03ab2c96.png)
— множество ребер минимального остовного дерева
[править] Псевдокод
{} Для каждой вершины
![]()
![]()
![]()
![]()
![]()
![]()
Покане пуста Для каждой вершины
смежной с
Если
и
![]()
![]()
![]()
![]()
![]()
[править] Оценка
Асимптотика алгоритма зависит от способа хранения графа и способа хранения вершин, не входящих в дерево. Если приоритетная очередь
реализована как обычный массив
, то
выполняется за
, а стоимость операции
составляет
. Если
представляет собой бинарную пирамиду, то стоимость
снижается до
, а стоимость
возрастает до
. При использовании фибоначчиевых пирамид операция
выполняется за
, а
за
.
| Способ представления графа и приоритетной очереди | Асимптотика |
|---|---|
| Массив d, списки смежности (матрица смежности) | ![]() |
| Бинарная пирамида, списки смежности | ![]() |
| Фибоначчиева пирамида, списки смежности | ![]() |
[править] См. также
[править] Ссылки
- Описание и реализация Алгоритма Прима
- ДИСКРЕТНАЯ МАТЕМАТИКА: АЛГОРИТМЫ : Минимальные остовные деревья
| Это заготовка статьи по информатике. Вы можете помочь проекту, исправив и дополнив её. |

— расстояние от
-й вершины до построенного дерева
— предок
, что
легчайшее из всех рёбер соединяющее i с вершиной из построенного дерева.
— вес ребра 
— множество ребер минимального остовного дерева
{}
Для каждой вершины
Если
и


