Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Задача о кратчайшем (минимальном) остове (остовном дереве).

Читайте также:
  1. Билет 7. Основные определения. Случайные, достоверные и невозможные события
  2. В каких случая факт того, что гражданин ранее был осужден за преступление, не является препятствием для получения им удостоверения охранника?
  3. Виду изложения материала и задачам преподавателя
  4. Волшебная флейта перестройки: фильм "Город Зеро" как учебная задача
  5. Волшебная флейта перестройки: фильм «Город Зеро» как учебная задача
  6. Волшебная флейта перестройки: фильм «Город Зеро» как учебная задача.
  7. Геодезическая задача

Пусть дан связный граф G=(V,E), |V|=n, |E|=m, с матрицей весов ребер W=(w(i,j)). Остовное дерево – это его подграф на том же множестве вершин, который является деревом. Вес дерева – сумма весов ребер этого дерева. Требуется найти остовное дерево минимального веса.

Всего нумерованных деревьев на n вершинах nn-2. Если устроить перебор по всем этим деревьям, то получим алгоритм сложности O(nn-1). Но есть и более простые алгоритмы.

Алгоритм Крускала (или алгоритм Краскала). Алгоритм впервые описан Джозефом Крускалом в 1956 году.

Вначале текущее множество рёбер устанавливается пустым. Затем, пока это возможно, проводится следующая операция: из всех рёбер, добавление которых к уже имеющемуся множеству не вызовет появление в нём цикла, выбирается ребро минимального веса и добавляется к уже имеющемуся множеству. Когда таких рёбер больше нет, алгоритм завершён. Подграф данного графа, содержащий все его вершины и найденное множество рёбер, является его остовным деревом минимального веса. (Корректность алгоритма следует из теоремы Радо-Эдмондса и того факта, что данная задача – частный случай оптимизационной задачи на матроиде. [4])

До начала работы алгоритма необходимо отсортировать рёбра по весу, это требует O(m log m) времени. После чего компоненты связности удобно хранить в виде системы непересекающихся множеств. Предполагается, что проверка на появление цикла требует константу времени. (В общем случае она требует времени выражаемом через функцию Аккермана - α(n,m), но в нашем случае α(n,m)<5.) Все операции в таком случае займут O(m),, таким образом общее время работы алгоритма Крускала можно принять за O(m log m). Это, конечно, не O(nn-1).

Алгоритм Прима — алгоритм построения минимального остовного дерева взвешенного связного неориентированного графа. Алгоритм впервые был открыт в 1930 году чешским математиком Войцехом Ярником, позже переоткрыт Робертом Примом в 1957 году.

Построение начинается с дерева, включающего в себя одну (произвольную) вершину. В течение работы алгоритма дерево разрастается, пока не охватит все вершины исходного графа. На каждом шаге алгоритма к текущему дереву присоединяется ребро минимального веса, соединяющих вершину из построенного дерева, и вершину не из дерева.

Асимптотика алгоритма зависит от способа хранения графа и способа хранения вершин, не входящих в дерево.

  1. Если приоритетная очередь Q реализована как обычный массив d, то Extract. Min (Q) выполняется за O (n), а стоимость операции присвоения d[u]=w[v,u] составляет O (1). Трудоемкость алгоритма Прима в этом случае O (n2).
  2. Если Q представляет собой бинарную пирамиду, то стоимость Extract. Min (Q) снижается до O (log n), а стоимость присвоения d[u]=w[v,u] возрастает до O (log n). Трудоемкость алгоритма Прима в этом случае совпадает с трудоемкостью алгоритма Краскала - O (m logn).
  3. При использовании фибоначчиевых пирамид операция Extract. Min (Q) выполняется за O (log n), а присвоения d[u]=w[v,u] за O (1). Трудоемкость алгоритма Прима в этом случае O (m +n logn).

Все это опять же не O(nn-1).


Дата добавления: 2015-07-11; просмотров: 189 | Нарушение авторских прав


Читайте в этой же книге: Некоторые необходимые определения и понятия. | Задачи, алгоритмы | Алгоритм | Нормальные алгорифмы Маркова (НАМ). | Одноленточная МТ | Недетерминированная МТ | Оракульная МТ | Равнодоступная адресная машина (РАМ) и некоторые другие подходы. | Кодировки входных данных. | О мерах сложности |
<== предыдущая страница | следующая страница ==>
Теоремы сравнения| Схемы из функциональных элементов

mybiblioteka.su - 2015-2024 год. (0.005 сек.)