Скачиваний:
0
Добавлен:
02.11.2025
Размер:
122.74 Кб
Скачать

Сравнение

Проведя сравнение времени, затрачиваемого на алгоритмы Краскала и Прима были получены следующие графики:

Время в нс

Количество вершин

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

Точно это же самое подтверждается на небольших примерах: алгоритм Краскала был пройден за 6 шагов, а алгоритм Прима за 5 шагов.

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

Шаг 1

Выбирается ребро с минимальным весом. Минимальным весом обладает ребро 1-5. Множество выбранных вершин – {1,5}.

Шаг 2

Выбирается следующее ребро с минимальным весом. Минимальным весом обладает ребро 0-5. Добавляя это ребро, цикла образовываться не будет. Ребро имеет общую вершину с множеством {1,5}, ко множеству добавляется 0 – получается множество {1,5,0}.

Шаг 3

Выбирается следующее ребро с минимальным весом. Таких рёбер два – 3-2 и 2-4. Выбор среди этих двух рёбер случаен, пусть будет выбрано ребро 3-2. Ребро не имеет общих вершин с множеством {1,5,0}, создаётся второе множество {3,2}.

Шаг 4

Выбирается следующее ребро с минимальным весом. Ребро с минимальным весом – 2-4. Цикл не образовывается. Общая вершина с множеством {3,2}, ко множеству добавляется 4 – получается множество {3,2,4}.

Шаг 5

Выбирается следующее ребро с минимальным весом. Таких рёбер два – 0-1 и 1-4. Ребро 0-1 создаёт цикл и тем самым помечается, как непригодное.

Шаг 6

Выбирается 1-4. Ребро 1-4 имеет общие вершины с обоими множествами, тем самым объединяя их. Множество выбранных вершин – {1,5,0,3,2,4} = 6, что равно количеству вершин графа. Результат построения минимального остовного дерева с весом 18. Всего затрачено на выполнение 6 шагов

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

Шаг 1

Выбирается случайная вершина. Пусть будет вершина 4. С вершиной 4 соединены единственным ребром вершины 2 и 1. Вершина 1 – ближайшая и выбирается, как вторая вершина. Также выбирается ребро 1-4.

Шаг 2

Выбирается вершина, которая ближе всего к любой из вершин 1 или 4. Вершина 2 находится на расстоянии 6 и 4 от вершин 1 и 4 соответственно. Вершина 0 находится на расстоянии 5 от вершины 1. Вершина 5 находится на расстоянии 2 от вершины 1. Ближе всего вершина 5, она добавляется в дерево вместе с ребром 1-5.

Шаг 3

Выбирается вершина, которая ближе всего к любой из вершин 1, 4 или 5. Вершина 0 находится на расстоянии 5 и 3 от вершин 1 и 5 соответственно. Вершина 2 находится на расстоянии 6 и 4 от вершин 1 и 4 соответственно. Ближе всего вершина 0, она добавляется в дерево вместе с ребром 0-5.

Шаг 4

Выбирается вершина, которая ближе всего к любой из вершин 1, 4, 0 или 5. Вершина 2 находится на расстоянии 6, 6 и 4 от вершин 0, 1 и 4 соответственно. Ближе всего вершина 2, она добавляется в дерево вместе с ребром 2-4.

Шаг 5

Остаётся вершина 3, соединенная единственным ребром с вершиной 2. Вершина 3 добавляется в дерево вместе с ребром 2-3. Все вершины добавлены, минимальное остовное дерево с весом 18 построено, что отображено на рис. 4. Всего затрачено на выполнение 5 шагов.