410 likes | 702 Views
Преобразование графа в остовное связанное дерево минимального веса. Алгоритм Крускала. Задача. Даны города , часть которых соединен а между собой дорогами. Необходимо проложить маршрут минимальной длины , проходящий через все города. Формализованная модель. Граф G(V,R). 2. 1. 3. 5. 8.
E N D
Преобразование графа в остовное связанное дерево минимального веса. Алгоритм Крускала
Задача. Даны города, часть которых соединена между собой дорогами. Необходимо проложить маршрут минимальной длины, проходящий через все города.
Формализованная модель. Граф G(V,R) 2 1 3 5 8 4 7 6
2 1 3 5 8 4 7 6 Цикломатическое число G(8,11)
Примеры возможного остовного связанного дерева. 2 2 1 1 3 3 5 8 4 5 8 7 4 6 7 6
Исходные данные 2 1 23 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Алгоритм Крускала. Шаг 1. Раскрасить все вершины в разные цвета. Для этого создадим массив С(8).
Алгоритм Крускала. Шаг 2. В матрице смежности найти самое короткое неиспользованное ребро (минимального веса).
Алгоритм Крускала. Шаг 3. Проверяем, можно ли использовать это ребро (вершины должны быть разного цвета).
Алгоритм Крускала. Шаг 4. Добавляем вес найденного ребра к весу остового дерева и перекрашиваем вершины в один цвет (меньший по номеру). Вернуться к шагу №2.
Алгоритм на графе. Шаг 1. 2 1 23 minW=0 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 2. 2 1 23 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 3. 2 1 23 + 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 4. 2 1 23 minW=12 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 2. 2 1 23 - 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 2. 2 1 23 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 3. 2 1 23 25 12 25 3 22 18 8 + 5 16 4 23 20 23 24 7 6
Шаг 4. 2 1 23 minW=28 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 2. 2 1 23 - 25 12 25 3 22 18 8 - 5 16 4 23 20 23 24 7 6
Шаг 2. 2 1 23 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 3. 2 1 23 25 12 25 3 22 + 18 8 5 16 4 23 20 23 24 7 6
Шаг 4. 2 1 23 minW=46 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 2. 2 1 23 - 25 12 25 3 22 - 18 8 - 5 16 4 23 20 23 24 7 6
Шаг 2. 2 1 23 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 3. 2 1 23 25 12 25 3 22 18 8 5 16 + 4 23 20 23 24 7 6
Шаг 4. 2 1 23 minW=66 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 2. 2 1 23 - 25 12 25 3 22 - 18 8 - 5 16 - 4 23 20 23 24 7 6
Шаг 2. 2 1 23 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 3. 2 1 23 25 12 25 + 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 4. 2 1 23 minW=88 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 2. 2 1 23 - 25 12 25 - 3 22 - 18 8 - 5 16 - 4 23 20 23 24 7 6
Шаг 2. 2 1 23 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 3. + 2 1 23 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 4. 2 1 23 minW=111 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 2. - 2 1 23 - 25 12 25 - 3 22 - 18 8 - 5 16 - 4 - 23 20 23 24 7 6
Шаг 2. 2 1 23 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Шаг 3. 2 1 23 25 12 25 3 22 18 8 5 + 16 4 23 20 23 24 7 6
Шаг 4. 2 1 23 minW=134 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6
Задача решена. 2 1 23 minW=134 25 12 25 3 22 18 8 5 16 4 23 20 23 24 7 6