Остовное дерево наименьшей стоимости (минимального веса) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Остовное дерево наименьшей стоимости (минимального веса)

Остовное дерево наименьшей стоимости (минимального веса)

Пусть G = (V, Е)связный взвешенный неориентированный граф, для которого задана матрица смежности, отображающая веса ребер в числа (вещественные или целые). Стоимость (вес) остовного дерева определяется как сумма стоимостей (весов) его ребер. Цель — найти для графа G остовное дерево наимень­шей стоимости (минимального веса). Полный граф с n вершинами содержит n n-2 остовных деревьев. Поиск каждого остовного дерева занимает О(е) времени. В полном дереве е=п*(п-1)/2. Тогда решение задачи перебором имело бы сложность О(n n-2 п(п - 1)/2) =O (n n).

Алгоритм Крускала

Пусть имеется связный взвешенный граф G = (V, Е) с n вершинами. Построение остовного дерева минимального веса начинается с графа Т =(V, 0)

Упорядочим ребра множества Е в порядке возрастания их веса (стоимости). Выберем ребро с наименьшим весом С1 и включим в граф Т. Теперь в графе Т (п - 1) компонент содержит только по одной вершине, одна компонента содержит две вершины и одно ребро.

Выбираем следующее наименьшее ребро. Если оно связывает две вершины из разных компонент, то это ребро добавляется в граф Т.

Если же ребро связывает две вершины из одной компоненты, то такое ребро отбрасывается, так как его добавление в связную компоненту, являющуюся свободным деревом, приведет к образованию цикла.

Когда все вершины графа будут принадлежать одной компоненте, построение остовного дерева минимального веса Т с (п - 1) ребрами заканчивается. Процесс построения остовного дерева минимального веса можно проследить на примере графа, приведенного на рис.2.

рис 2.

Алгоритм Прима

Наиболее простым алгоритмом поиска остовного дерева минимального веса является алгоритм Прима.

Алгоритм Прима заключается в следующем.

1. Вначале выбираем некоторую вершину v, остальные (n - 1) вершины графа отмечаются как невыбранные.

2. Определяются веса между выбранной вершиной v и остальными невыбранными вершинами.

3. Выбираем вершину с наименьшим весом до нее, фиксируем выбранные ребро и вес.

4. Выбранную вершину исключаем из перечня невыбранных, число выбранных вершин уменьшаем на 1.

5. Пункты 1 — 4 повторяем до тех пор, пока не будут выбраны все вершины, т.е. (n - 1) раз.

Процесс поиска остовного дерева наименьшего веса по алгоритму Прима можно проследить на примере графа, приведенного на рис. 3.

рис. 3



Поделиться:


Последнее изменение этой страницы: 2024-07-06; просмотров: 31; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.008 с.)