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

книги / 256

.pdf
Скачиваний:
2
Добавлен:
07.06.2023
Размер:
958.19 Кб
Скачать

 

Оценки расстояний до вершин

 

Расстояния

2

3

4

5

6

7

d3

 

20

115

= 20

80

100

115

30

d7

= 30

 

 

 

 

 

 

 

Шаг 3. Список достижимости L7 базовой вершины 7 содержит вершины 1, 4, 5 и 6. Вершина 1 исключена из рассмотрения; поэтому пытаемся улучшить оценки вершин 4, 5 и 6 по формуле:

kj = min {kj, d7 + c7j}, j = 4, 5, 6.

Имеем

k4 = min {k4, d7 + c74} = min {80, 30 + 30} = 60; k5 = min {k5, d7 + c75} = min {100, 30 + 20} = 50; k6 = min {k6, d7 + c76} = min {115, 30 + 90} = 115.

Обратите внимание, что оценка вершины 6 не изменилась.

Вершину 5 с минимальной оценкой 50 переносим в M = {1, 3, 7, 5}, исключаем из дальнейшего рассмотрения и делаем базовой. Оценку вершины 5 записываем в последний столбец таблицы: d5 = k5 = 50.

 

Оценки расстояний до вершин

 

Расстояния

2

3

4

5

6

7

d3

 

20

115

= 20

80

100

115

30

d7

= 30

60

50

115

 

d5

= 50

 

 

 

 

 

 

Шаг 4. Список достижимости L5 базовой вершины 5 содержит только вершину 6; пытаемся улучшить оценку вершины 6:

k6 = min {k6, d5 + c56} = min {115, 50+35} = 85. Остальные оценки не меняются.

Вершину 4 с минимальной оценкой 60 переносим в M = {1, 3, 7, 5, 4}, исключаем из дальнейшего рассмотрения и делаем базовой. Оценку вершины 4 записываем в последний столбец таблицы: d4 = k4 = 60.

 

Оценки расстояний до вершин

 

Расстояния

2

3

4

5

6

7

d3

 

20

115

= 20

80

100

115

30

d7

= 30

 

 

 

 

 

 

 

 

 

 

101

 

 

 

 

60

50

115

d5

= 50

60

 

85

d4

= 60

 

 

 

 

 

Шаг 5. Список достижимости L4 базовой вершины 4 содержит только вершину 5, которая уже исключена из рассмотрения на предыдущем шаге. Значит, на этом шаге пересчитывать оценки не надо.

Вершину 6 с минимальной оценкой 85 переносим в M = {1, 3, 7, 5, 4, 6}, исключаем из дальнейшего рассмотрения и делаем базовой. Оценку вершины 6 записываем в последний столбец таблицы: d6 = k6 = 85.

 

Оценки расстояний до вершин

 

Расстояния

2

3

4

5

6

7

d3 = 20

20

115

80

100

115

30

d7 = 30

60

50

115

 

d5 = 50

60

 

85

d4 = 60

 

85

d6 = 85

 

 

 

Шаг 6. Список достижимости L6 базовой вершины 6 содержит только вершину 7, которая уже исключена из рассмотрения; поэтому просто переносим в M = {1, 3, 7, 5, 4, 6, 2} вершину 2, а её оценку записываем в последний столбец: d2 = k2 = ∞.

Поскольку M = V, процесс завершён.

 

Оценки расстояний до вершин

 

Расстояния

2

3

4

5

6

7

d3 = 20

20

115

80

100

115

30

d7 = 30

60

50

115

 

d5 = 50

60

 

85

d4 = 60

 

85

d6 = 85

 

d2 = ∞

 

 

102

Рисунок 18.3.

Как видим, расстояние до вершины 2 осталось бесконечным; такой результат отражает тот факт, что в данном графе отсутствует путь с началом в вершине 1 и концом в вершине 2.

Ответ переписываем из последнего столбца таблицы: d2 = ∞, d3 = 20, d4 = 60, d5 = 50, d6 = 85, d7 = 30.

Условие не отрицательности весов cij ≥ 0 является для метода Дейкстры существенным. Проще говоря, этот метод не умеет работать с отрицательными весами.

Пример. В графе, изображённом на рисунке 18.3, присутствует ребро

(4, 3) с отрицательным весом c43 = 70.

Применив к этому графу алгоритм Дейкстры, получим расстояние d3 до вершины 3, равное 40 (убедитесь в этом самостоятельно).

Правильным ответом, очевидно, является расстояние d3 = 20, которое соответствует кратчайшему пути P: (1, 2), (2, 4), (4, 3), содержащему дугу с отрицательным весом.

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

Если граф F имеет n вершин, то алгоритм Дейкстры выполняется за

n1 шаг, причём на каждом шаге производится не более n операций, следовательно, общее количество операций составит не более

n∙(n1) = n2 n.

При оценке сложности алгоритма удерживают только слагаемое большего порядка; таким образом, максимальная сложность метода Дейкстры имеет порядок n2.

п. 18.3. Нахождение кратчайшего пути

После того как расстояния от вершины-источника 1 до остальных вершин определены, можно восстановить кратчайший путь из вершины 1 в заданную вершину j, j ≠ 1.

103

Поиск пути осуществляется «от конца к началу», т.е. сначала ищется предпоследняя вершина, затем вершина, предшествующая предпоследней вершине, и т.д., пока не доберёмся до вершины 1.

Пусть x – это пока неизвестная нам предпоследняя вершина искомого пути:

Очевидно, что сумма расстояния до этой вершины и веса дуги (x, j) равна расстоянию до вершины j, т.е. выполняется соотношение:

dx + cxj = dj.

(18.2)

Просматривая список предшественников (см. § 6) backj вершины j, ищем в нём ту вершину x, для которой выполняется равенство (18.2). Если таких вершин несколько, то в качестве x можно взять любую из них.

После того как вершина x найдена, переходим к поиску вершины y:

Для этого в списке предшественников backx вершины x ищем ту вершину y, для которой выполняется равенство:

dy + cyx = dx.

(18.3)

Аналогичным образом процесс продолжается до тех пор, пока не «упрёмся» в начало пути – вершину 1.

Пример. По известным расстояниям восстановить кратчайший путь из вершины 1 в вершину 6 (см. рисунок 18.2).

Решение. Расстояния мы уже определили (см. п. 18.2):

d2 = ∞, d3 = 20, d4 = 60, d5 = 50, d6 = 85, d7 = 30.

Сначала выпишем списки предшественников (см. § 6) данного ориентированного графа:

back1: 7;

back2: ;

back3: 1, 2;

back4: 3, 7;

back5: 3, 4, 7;

back6: 1, 5, 7;

back7: 3, 6.

 

 

1. Восстановление пути начинаем с нахождения предпоследней вершины x:

104

Список back6 содержит вершины 1, 5, 7; среди них ищем ту вершину, для которой выполняется равенство (18.2) при j = 6.

Пусть x = 1: проверяем, верно ли что d1 + c16 = d6, т.е. 0 + 115 = 85? Равенство ложное, т.е. 1 не подходит.

Пусть x = 5: проверяем, верно ли что d5 + c56 = d6, т.е. 50 + 35 = 85? Это равенство истинное; полагаем x = 5; вершину 7 можно не проверять.

2. Переходим к нахождению вершины y:

Список back5 содержит вершины 3, 4, 7; среди них ищем ту вершину, для которой выполняется равенство dy + cy5 = d5.

Пусть y = 3: проверяем, верно ли что d3 + c35 = d5, т.е. 20 + 80 = 50? Равенство ложное, т.е. 3 не подходит.

Пусть y = 4: проверяем, верно ли что d4 + c45 = d5, т.е. 60 + 10 = 50? Равенство ложное, т.е. 4 не подходит.

Пусть y = 7: проверяем, верно ли что d7 + c75 = d5, т.е. 30 + 20 = 50? Это равенство истинное; полагаем y = 7.

3. Переходим к нахождению вершины z:

Список back7 содержит вершины 3, 6; среди них ищем ту вершину, для которой выполняется равенство dz + cz7 = d7.

Пусть z = 3: проверяем, верно ли что d3 + c37 = d6, т.е. 20 + 10 = 30? Это равенство истинное; полагаем z = 3; вершину 6 можно не проверять.

105

4. Переходим к нахождению вершины t:

Список back3 содержит вершины 1, 2; среди них ищем ту вершину, для которой выполняется равенство dt + ct 3 = d3.

Пусть t = 1: проверяем, верно ли что d1 + c13 = d3, т.е. 0 + 20 = 20? Это равенство истинное.

Мы добрались до вершины-источника; искомый путь найден:

Алгоритм восстановления кратчайшего пути по известным расстояниям, в худшем случае, анализирует все m дуг данного ориентированного графа; поэтому его максимальная сложность имеет порядок m.

Задания для самостоятельной работы

1. В данном нагруженном орграфе:

а) с помощью алгоритма Дейкстры найти расстояния от вершиныисточника 1 до остальных вершин;

б) по известным расстояниям восстановить кратчайший путь от вер- шины-источника 1 до вершины 4.

. В данном нагруженном орграфе с помощью алгоритма Дейкстры найти расстояния

а) между вершинами 2 и 5;

106

б) между вершинами 7 и 4.

По известным расстояниям восстановить соответствующие кратчайшие пути.

Указание.

а) в качестве вершины-источника принять вершину 2; б) в качестве вершины-источника принять вершину 7.

Контрольные вопросы

1.Что называется расстоянием между вершинами в нагруженном ориентированном графе?

2.Опишите алгоритм Дейкстры нахождения расстояний от вершины-ис- точника до остальных вершин.

3.Какой величиной оценивается сложность алгоритма Дейкстры?

4.Опишите алгоритм восстановления кратчайшего пути по известным расстояниям.

5.Какой величиной оценивается сложность алгоритма восстановления кратчайшего пути?

107

ЛИТЕРАТУРА

1.Ахо Альфред В. , Хопкрофт Джон Э., Ульман Джеффри Д. Структуры данных и алгоритмы. М.: Вильямс, 2010. 400 с.

2.Берж К. Теория графов и её применения. М.: Книга по Требованию, 2012. 320 с.

3.Иванов Б.Н. Дискретная математика. Алгоритмы и программы: Учеб. пособие. М.: Лаборатория базовых знаний, 2003. 288 с.

4.Емеличев В.А., Зверович И.Э., Мельников О.И., Сарванов В.И., Тышкевич Р.И. Теория графов в задачах и упражнениях. Более 200 задач с подробными решениями. М.: Либроком, 2013. 416 с.

5.Осипова В.А. Основы дискретной математики. М.: Изд-во Форум, Ин- фра-М, 2012. 160 с.

6.Новиков Ф.А. Дискретная математика. Спб: Питер, 2012. - 400 с.

7.Оре О. Теория графов. М.: Либроком, 2009. 354 с.

8.Уилсон Р. Введение в теорию графов. М.: Книга по Требованию, 2012. 208 с.

9.Харари Ф. Теория графов. М.: Либроком, 2009. 302 с.

108

ОГЛАВЛЕНИЕ

 

ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

§ 1. Элементы теории множеств . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

§ 2. Основы комбинаторики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

§ 3. Графы, их вершины, рёбра и дуги . . . . . . . . . . . . . . . . . . . . . . .

25

§ 4. Количество графов с n помеченными вершинами . . . . . . . . .

31

§ 5. Операции над графами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

§ 6. Способы задания псевдографов . . . . . . . . . . . . . . . . . . . . . . . . .

37

§ 7. Степени вершин . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

§ 8. Отношение связности для вершин неориентированного

 

графа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

§ 9. Отношение достижимости для вершин орграфа . . . . . . . . . . .

52

§ 10. Эйлеров псевдограф и условия его существования . . . . .

58

§ 11. Гамильтонов граф и условия его существования . . . . . . .

62

§ 12. Деревья и их свойства. Цикломатическое число . . . . . . . .

69

§ 13. Формула Кэли . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

§ 14. Минимальное остовное дерево . . . . . . . . . . . . . . . . . . . . . . . . .

76

§ 15. Двудольный граф . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

§ 16. Планарность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

§ 17. Раскраска графов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

89

§ 18. Нахождение кратчайших путей . . . . . . . . . . . . . . . . . . . . . . . . .

92

ЛИТЕРАТУРА . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

103

109

Ланина Наталья Романовна

ТЕОРИЯ ГРАФОВ

Учебно-методическое пособие для студентов заочной формы обучения по направлению подготовки

080500.62 «Бизнес-информатика»

Подписано в печать 03.04.2014 г. Формат 60×90/16. Усл. печ. л. 6,5. Тираж 50 экз.

Отпечатано в редакционно-издательском отделе (РИО) МГГУ с готового оригинал-макета.

Мурманский государственный гуманитарный университет. 183720, г. Мурманск, ул. Капитана Егорова, 15.

110

Соседние файлы в папке книги