Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 500101.doc
Скачиваний:
13
Добавлен:
30.04.2022
Размер:
8.38 Mб
Скачать

3.2. Примеры решения задач

Задача 1. Построить остовное дерево графа с использованием стратегий поиска в глубину и ширину.

Рис. 7

Решение.

1. Поиск в глубину.

Начинаем поиск с любой вершины, допустим, с x1. Выбираем вершину, смежную с x1, например x2. Вершины x1 и x2 соединяем ребром. Далее выбираем вершину x3, смежную с x2. Вершины x2 и x3 соединяем ребром. Продолжая двигаться дальше, соединяем вершины x3 и x4. У вершины x4 три смежных вершины - x5,x7 и x8. Для продолжения поиска можно выбрать любую из них, например x5 . Соединяем ребром вершины x5 и x6, а затем x6 и x7. Попав в вершину x7, видим, что смежной с ней является вершина x4. Но продолжать поиск в данном направлении нельзя, так как вершина x4 уже была просмотрена. Согласно алгоритму возвращаемся в предыдущую вершину, то есть в x6. Так как у x6 нет новых вершин, то возвращаемся в вершину x5. Аналогично из x5 переходим в вершину x4. Вершина x8 является новой, поэтому, согласно алгоритму, выбираем вершину x8 и соединяем вершины x4 и x8 ребром, затем соединяем x8 и x9. У x9 нет новых вершин, кроме x1, но соединить эти вершины мы не можем, так как граф тогда не будет остовом. Мы просмотрели все вершины графа G. Возвращаемся в вершину x1. Найденный остов графа G представлен на рис. 8, а.

2. Поиск в ширину.

Начинаем поиск с любой вершины, например с x1. Соединяем ребрами вершину x1 со всеми смежными ей вершинами - x2, x4 и x9. Теперь по порядку рассматриваем эти смежные вершины. Берем вершину x2. Соединяем её со всеми смежными ей вершинами, то есть с x3. Следующая по порядку вершина x4. Соединяем её со смежными вершинами, то есть с x5, x7 и x8. Затем по порядку идет вершина x9, но соединить её со смежной вершиной x8 мы не можем, так как полученный граф не будет являться остовом. Далее рассматриваем вершины x5, x7 и x8. У x5 есть смежная вершина x6. Соединяем их ребром. У вершин x7 и x8 нет таких смежных вершин. Таким образом, мы получили один из остовов графа G (рис. 8, б).

а б

Рис. 8

Задача 2. С использованием алгоритмов Краскала и Прима построить кратчайший остов для графа

Рис. 9

Решение Кратчайший остов для данного графа имеет следующий вид:

В таблицах приводится последовательность выбора ребер остовного дерева с использованием алгоритмов Краскала и Прима.

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

Шаг

Ребро

Вес

1

x6,x7

3

2

x1,x2

5

3

x3,x4

7

4

x1,x3

8

5

x3,x6

9

6

х11,x13

10

7

x6,x9

11

8

x6,x10

12

9

x3,x11

13

10

x8,x9

14

11

x12,x13

15

12

x4,x5

18