Алгоритм Борувки
Алгори́тм Бору́вки, алгоритм построения минимального остовного дерева во взвешенном связном неориентированном графе. Предложен в 1926 г. в работах чешского математика О. Борувки ([1]; [2]).
Алгоритм является жадным. За и обозначаются множества рёбер и вершин графа , за и – число рёбер и вершин в графе соответственно. Алгоритм использует ([3] P. 3–36) процедуру сжатия по множеству нескольких вершин графа , которая объединяет множество в одну новую вершину. Вес ребра от каждой вершины до новой определяется как вес ребра наименьшего веса между этой вершиной и вершиной из в старом графе . При этом считается, что вес ребра между несвязанными ребром вершинами равен .
Пусть множество вершин таково, что подграф некоторого минимального остовного дерева графа , порождённый , связен. Пусть – результат сжатия графа по . Тогда остовное дерево графа можно получить как порёберное объединение минимального остовного дерева графа и минимального остовного дерева, порождённого множеством подграфа . Также данный факт остаётся верным и при сжатии нескольких непересекающихся множеств вершин.
Далее выполняются следующие шаги ([4] P. 26):
- Раскраска. Для каждой вершины раскрашиваем ребро между ней и ближайшей соседней вершиной. Рёбра, раскрашенные более одного раза, не отличаются от рёбер, раскрашенных единожды.
- Сжатие. Сжимаем получившиеся компоненты связности на графе, порождённом раскрашенными рёбрами.
- Рекурсивно повторяем предыдущие шаги, пока не найдём минимальное остовное дерево.
Объединение всех раскрашенных рёбер даёт искомое минимальное остовное дерево.
Раскраска и сжатие выполняются за линейное время . Так как при раскраске графа раскрашивается число рёбер, не меньшее половины числа его вершин, то алгоритм сделает шагов прежде, чем найдёт минимальное остовное дерево. Таким образом, временна́я сложность алгоритма составляет .
См. также «О большое».
Примечания
Литература
Источники
- Borûvka О. O jistém problému minimálním // Práce Moravské přírodovědecké společnosti. – 1926. – Sv. III, spis 3. – P. 37–58.
- Borûvka О. Příspěvek k otázce ekonomické stavby elektrovodných sítí // Elektrotechnický obzor. – 1926. – Vol. 15. – P. 153–154.
- Nešetřil J. Otakar Borůvka on minimum spanning tree problem Translation of both the 1926 papers, comments, history / J. Nešetřil, E. Milková, H. Nešetřilová // Discrete Mathematics. – 2001. – Vol. 233, № 1/3. – P. 3–36.