Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Теория графов и её приложения.-1

.pdf
Скачиваний:
0
Добавлен:
20.11.2023
Размер:
8.93 Mб
Скачать

Рис. 5.6. Граф задачи о Ханойской башне

собозначенными ребрами

5.1.Пример решения задачи в программе GRIN

СоздадимграфзадачиоХанойскойбашнедляn = 3 (рис. 5.7).

Рис. 5.7. Граф задачи о Ханойской башне

Найдём кратчайший путь из вершины с координатами

(0, 1/2/3) в вершину (1/2/3,0) (рис. 5.8).

51

Рис. 5.8. Решение задачи о Ханойской башне для n = 3 – кратчайший путь из исходной вершины с координатами (0, 1/2/3) в целевую вершину (1/2/3,0)

Найдём кратчайший путь в целевую вершину не из исходной вершины, аизпроизвольной, например, извершины(3,1/2) (рис. 5.9).

Рис. 5.9. Кратчайший путь в целевую вершину из вершины (3,1/2)

52

Для создания графа задачи о Ханойской башне для n = 4 скопируем граф для n = 3 (Ctrl, C) и вставим (Ctrl, V) – вправо и вверх, затем соединим три подграфа (рис. 5.10).

Рис. 5.10. Граф задачи о Ханойской башне для n = 4

Найдём кратчайший путь из исходной вершины (0,1/2/3/4)

в целевую вершину (1/2/3/4, 0) (рис. 5.11).

Рис. 5.11. Кратчайший путь в графе задачи о Ханойской башне для n = 4 из исходной вершины (0,1/2/3/4) в целевую вершину (1/2/3/4, 0)

53

Задание: найти кратчайший путь в целевую вершину графа задачи о Ханойской башне из заданной вершины, n = 3. Координата заданной исходной вершины: первая позиция – ось x, вторая позиция – ось z:

1) (0,0); 2) (3,1/2); 3) (1,2); 4) (0,1/2); 5) (3,2); 6) (0,2); 7) (1/3,2); 8) (1,0); 9) (2,1); 10) (1/3,0).

Подготовьте отчёт и будьте готовы к ответу на вопросы по занятию:

1.Как производится разметка графа задачи о Ханойской

башне?

2.Как определяется кратчайший путь в размеченном графе задачи о Ханойской башне?

54

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 6. РЕШЕНИЕ ЭКСТРЕМАЛЬНЫХ ЗАДАЧ НА ГРАФАХ.

НАХОЖДЕНИЕ КРАТЧАЙШИХ ПУТЕЙ В ГРАФЕ С РЁБРАМИ НЕЕДИНИЧНОЙ ДЛИНЫ. НАХОЖДЕНИЕ МИНИМАЛЬНОГО СТЯГИВАЮЩЕГО ДЕРЕВА

1.Опрос по теоретическому материалу – особенности разметки графа с рёбрами неединичной длины.

2.Коллективное решение задач по теме занятия у доски «вручную».

3.Самостоятельная работа по вариантам – на ПЭВМ в программе GRIN.

4.«Летучка» – «вручную».

Примеры решения задачи нахождения кратчайшего пути в графе с рёбрами неединичной длины

Задание 1. Найти кратчайший путь в графе с рёбрами произвольной длины (рис. 6.1) из вершины 1 в вершину 9.

1

 

 

 

 

 

7

1

 

 

 

 

2

2

3

 

 

 

 

1

2

 

 

 

4

1

 

7

 

 

4

5

 

3

1

 

5

6

6

8

2

9

Рис. 6.1. Нахождение кратчайшего пути в графе с рёбрами произвольной длины

55

Выполним разметку с учётом длины ребра, причём некоторые метки могут быть уменьшены за счёт более коротких путей. Разметка производится из конечной (целевой) вершины 9

вначальную вершину 1. Двигаемся из начальной вершины 1

всторону уменьшения индекса на «длину» ребра. Таким образом, кратчайший путь: 1–3–2–8–9.

Задание. Найти кратчайший путь из заданной вершины

вуказанную вершину для графа с рёбрами произвольной длины

(см. рис. 6.1):

1)из 9 в 3; 2) из 9 в 4; 3) из 9 в 6; 4) из 9 в 5; 5) из 8 в 1; 6) из 2 в 9; 7) из 3 в 9; 8) из 4 в 9; 9) из 6 в 9; 10) из 9 в 2.

Задание 2. Создать в программе GRINграф проективной плоскости Фано с различными весами рёбер по заданной матрице смежности (рис. 6.2).

Рис. 6.2. Матрица смежности графа Фано с различными весами рёбер

Найтикратчайшийпутьизвершины1 ввершину 3 (рис. 6.3).

Пример решения задачи коммивояжёра методом полного перебора вариантов.

Задание 3. Решить задачу коммивояжёра для графа

(рис. 6.4).

56

Рис. 6.3. Кратчайший путь в графе Фано из вершины 1 в вершину 3

1

 

5

2

11

6

12

10

3 8

Рис. 6.4. Задача коммивояжёра

Для полного перебора маршрутов будем строить дерево обхода вершин, обозначая каждую вершину дерева последовательностью из номеров уже пройденных вершин (рис. 6.5).

Таким образом, лучшие маршруты (1,2,3,4) и (1,4,3,2,1) «стоят» 31 условную единицу. Здесь в скобках указаны последовательности вершин графа.

57

 

 

 

 

(1)

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

5

11

12

 

 

 

 

 

(1,2)

 

(1,3)

 

(1,4)

 

 

 

 

2

 

3

 

4

 

 

 

6

10

6

 

8

10

8

 

(1,2,3)

 

(1,2,4)

(1,3,2)

 

(1,3,4)

(1,4,2)

 

(1,4,3)

5

 

6

7

 

8

9

 

10

8

 

8

10

 

10

6

 

6

(1,2,3,4)

 

(1,2,4,3)

(1,3,2,4)

 

(1,3,4,2)

(1,4,2,3)

 

(1,4,3,2)

11

 

12

13

 

14

15

 

16

12

 

11

12

 

5

11

 

5

(1,2,3,4,1)=31

(1,2,4,3,1)=34

(1,3,2,4,1)=39

(1,3,4,2,1)=34

(1,4,2,3,1)=39

(1,4,3,2,1)=31

17

 

18

19

 

20

21

 

22

Рис. 6.5. Дерево перебора маршрутов в задаче коммивояжёра

Задание 4. Решить задачу коммивояжёра путём построения дерева обхода вершин для графа, изображенного на рис. 6.6.

1

 

5

2

 

 

 

2

 

3

 

 

 

 

11

6

12

10

5

 

 

5

 

3

3

 

8

 

 

Рис. 6.6. Задача коммивояжёра 2

58

Пример решения задачи «проведения дорог» Задание 5. Найти минимальное стягивающее дерево для

заданного графа (рис. 6.7).

Рис. 6.7. Минимальное стягивающее дерево

Подготовьте отчёт и будьте готовы к ответу на вопросы по занятию:

1.Как производится разметка графа с рёбрами произвольной длины?

2.Когда заканчивается разметка такого графа?

3.Чему равна длина кратчайшего пути?

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

срёбрами различной длины?

5.Что такое минимальное стягивающее дерево?

6.В чём суть алгоритма Краскала?

59

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 7. РЕШЕНИЕ ЭКСТРЕМАЛЬНЫХ ЗАДАЧ НА ГРАФАХ.

НАХОЖДЕНИЕ МАКСИМАЛЬНОГО ПОТОКА В ТРАНСПОРТНОЙ СЕТИ (FLOW NETWORK).

АЛГОРИТМ ФОРДА–ФАЛКЕРСОНА

1.Опрос по теоретическому материалу – особенности графа «Транспортная сеть».

2.Коллективное решение задачи по теме занятия у доски «вручную».

3.Самостоятельная работа по вариантам – на ПЭВМ в программе GRIN.

4.«Летучка» – решение задач по вариантам «вручную».

Нахождение полного потока в транспортной сети

Ищем путь, все дуги которого не насыщены, и увеличиваем поток на +1 до тех пор, пока он не станет полным. Путь μ1 = х0, х1, х3, z: насыщается дуга х0,х1; ϕ(μ1) = 1:

Путь μ2 = х0, х2, х4, х3, z: насыщаются дуги х4, х3 и х3, z;

ϕ(μ2) = 1:

60