Graf4
.docxПетербургский государственный университет путей сообщения
Императора Александра I
Кафедра «Математика и моделирование»
Расчётно-графическая работа №2
«Построение минимального остова для неориентированной сети»
Выполнил студент Д. А. Баранов
Факультет: АИТ
Группа: АР-709
Номер зачётной книжки: 01-709-02
Проверил: Ю.В. Боровских
Санкт-Петербург
2018
Задача. Представить графически неориентированную сеть , заданную весовой матрицей . Построить минимальный остов для сети с помощью алгоритма Прима.
Весовая матрица:
13
Рис. 1 – заданный остов
В алгоритме Прима искомое остовное поддерево строится в результате последовательного расширения исходного поддерева. На каждой итерации число вершин и рёбер поддерева увеличивается на 1.
Шаг 0. Присвоение начальных значений.
Разбиваем исходное множество узлов V = {v1, v2, v3, v4, v5, v6} на два непересекающихся подмножества:
Vʹ = {v1}, Vʹʹ = V-Vʹ = {v2, v3, v4, v5, v6}.
Исходное множество рёбер пустое: Eʹ =Ø.
1-ая итерация.
Шаг 1. Обновление данных.
Находим в разрезе Е(Vʹ, Vʹʹ) = {[v1, v2], [v1, v3], [v1, v4]} ребро минимального веса, соединяющего узел из Vʹ с узлом из Vʹʹ. Это ребро e* = [v1, v2], w(e*) = 5. Выбор на рисунке:
13
Обновляем подмножества узлов и рёбер:
Vʹ = {v1, v2}, Vʹʹ = {v3, v4, v5, v6}, Еʹ= {[v1, v2]}.
Шаг 2. Проверка на завершение построения минимального остова.
Так как полученное подмножество Vʹ = {v1, v2} не совпадает с исходным множеством V, то продолжаем итерации с шага 1.
2-ая итерация.
Шаг 1. Обновление данных.
Находим в разрезе Е(Vʹ, Vʹʹ) = {[v1, v4], [v2, v4], [v2, v3] , [v1, v3]} ребро минимального веса, соединяющего узел из Vʹ с узлом из Vʹʹ. Это ребро e* = [v2, v4], w(e*) = 7. Выбор на рисунке:
13
Обновляем подмножества узлов и рёбер:
Vʹ = {v1, v2, v4}, Vʹʹ = {v3, v5, v6}, Еʹ= {[v1, v2], [v2, v4]}.
Шаг 2. Проверка на завершение построения минимального остова.
Так как полученное подмножество Vʹ = {v1, v2, v4} не совпадает с исходным множеством V, то продолжаем итерации с шага 1.
3-ая итерация.
Шаг 1. Обновление данных.
Находим в разрезе Е(Vʹ, Vʹʹ) = {[v2, v3], [v3, v4], [v4, v5], [v3, v5], [v1, v3]} ребро минимального веса, соединяющего узел из Vʹ с узлом из Vʹʹ. Это ребро e* = [v3, v4], w(e*) = 5. Выбор на рисунке:
13
Обновляем подмножества узлов и рёбер:
Vʹ = {v1, v2, v3, v4}, Vʹʹ = {v5, v6}, Еʹ= {[v1, v2], [v2, v4], [v4, v3]}.
Шаг 2. Проверка на завершение построения минимального остова.
Так как полученное подмножество Vʹ = {v1, v2, v3, v4} не совпадает с исходным множеством V, то продолжаем итерации с шага 1.
4-ая итерация.
Шаг 1. Обновление данных.
Находим в разрезе Е(Vʹ, Vʹʹ) = {[v1, v3], [v1, v4], [v3, v5], [v3, v6], [v4, v5]} ребро минимального веса, соединяющего узел из Vʹ с узлом из Vʹʹ. Это ребро e* = [v3, v6], w(e*) = 5.
Выбор на рисунке:
13
Обновляем подмножества узлов и рёбер:
Vʹ = {v1, v2, v3, v4, v6}, Vʹʹ = {v5}, Еʹ= {[v1, v2], [v2, v4], [v4, v3], [v3, v6]}.
Шаг 2. Проверка на завершение построения минимального остова.
Так как полученное подмножество Vʹ = {v1, v2, v3, v4, v6} не совпадает с исходным множеством V, то продолжаем итерации с шага 1.
5-ая итерация.
Шаг 1. Обновление данных.
Находим в разрезе Е(Vʹ, Vʹʹ) = {[v1, v3], [v2, v3], [v2, v3], [v4, v5], [v6, v5], [v3, v5]} ребро минимального веса, соединяющего узел из Vʹ с узлом из Vʹʹ. Это ребро e* = [v4, v5], w(e*) = 7. Выбор на рисунке:
13
Обновляем подмножества узлов и рёбер:
Vʹ = {v1, v2, v3, v4, v5, v6}, Vʹʹ = Ø, Еʹ= {[v1, v2], [v2, v4], [v4, v3], [v3, v6], [v4, v5]}.
Шаг 2. Проверка на завершение построения минимального остова.
Так как полученное подмножество Vʹ = {v1, v2, v3, v4, v5, v6} совпадает с исходным множеством V, то процесс построения минимального остова закончен.
Минимальный остов приведён на рисунке:
13
Его вес wmin= 5+7+5+5+7=29.