Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diskretnaya_matematika.doc
Скачиваний:
121
Добавлен:
10.02.2015
Размер:
1.39 Mб
Скачать

Вторая итерация

Шаг 2.G(p) =G(x7) = {х2, х4, хб, х9}.Пометки всех этих вершин временные. Из (8) получим:l(х2) = 5,l(х4) = 7,l(х6)=17,l(х9) = 12.

Шаг 3.min(5, 7, 17, 6, 12,) = 5.

х2 х4 х6 х8 х9 х3, х5

Вершина х2 получает постоянную пометку 1(х2) = 5+.

Далее р = x2.

Шаг 4. Значения пометок приведены на рис. 3.36. Переходим к шагу 2.

Рис. 3.36. Пометки в начале третьей итерации

Третья итерация

Шаг 2.G(p) =G(x2) = {х1, х3, х7, х9}. Только вершины х3и х9 имеют временные пометки. Из (8) получим:l(х3) =min(,5++18) = 23, аналогично 1(х9) =12.

Шаг 3.min(23, 7, 17, 6, 12,) = 6,

х3 х4 х6 х8 х9 х5

Вершина х8 получает постоянную пометку 1(х8) = 6+, р=x8.

Шаг 4. Перейти к шагу 2 (рис. 3.37).

Рис. 3.37. Пометки в начале четвертой итерации

Продолжая итерационный процесс, получим в итоге постоян­ные пометки для всех вершин графа (рис.3.38) и кратчайшие пути от вершины х1ко всем остальным вершинам. Эти пути выделены жирными линиями.

Для нахождения кратчайшего пути между вершиной х2и на­чальной вершинойх1последовательно используем соотношениеl(хi) + С(хi, хi) =l(хi). Полагаяi= 2 находим вершину х2', непосред­ственно предшествующей х2в кратчайшем пути от х1к х2:

1(х2') + С(х2', х2) =l(х2) = 5. Этому соотношению удов­ле­­творяет вершина х7. Следовательно, х2' = х7. Полагаяi= 7 и применяя соот­ношение еще раз, получим х7' = х1Поэтому кратчайший путь со­стоит из вершин х1, х7, х2. Аналогичным образом находим все крат­чайшие пути от х1к остальным вершинам.

Рис. 3.38. Пометки и кратчайшие пути в графе

3.9. Обход графа

В теории графов есть понятие обход графа. Это маршрут, содержащий все ребра или вершины графа и обладающий определенными свойствами. Наиболее известными обходами графа являются эйлеровы и гамильтоновы цепи и циклы.

3.9.1. Эйлеровы маршруты

Эти понятия возникли в статье Эйлера в 1735 г., в которой он решал задачу о Кенигсбергских мостах и впервые ввел понятие графа. На рис. 3.39, а приведен план расположения семи мостов в Кенигсберге (ныне Калининграде). Задачасостоит в том, чтобы пройти каждый мост по одному разу и вер­нуться в исходную точку С. Поскольку в конце обхода нужно вернуться в исходную часть города, и на каждом мосту нужно побывать по одному разу, этот маршрут является простым циклом, содержащим все ребра графа. В дальнейшем такие циклы стали называть эйлеровыми, а графы, имеющие эйлеров цикл – эйлеровыми графами.

а) б)

Рис. 3.39. Схема Кенигсбергских мостов и соответствующий граф

Эйлеров цикл можно считать следом пера, вычерчивающего этот граф, не отрываясь от бумаги. Таким образом, эйлеровы графы – это графы, которые можно изобразить одним росчерком пера, причем процесс такого изображения начинается и заканчивается в одной и той же точке.

Обнаружив, что в данном графе не существует циклических обходов, проходящих по всем ребрам по одному разу, Эйлер обра­тился к общей задаче: при каких условиях в графе можно найти та­кой цикл? Ответ на этот вопрос дает следующая теорема.

Теорема 1 (Эйлера). Конечный связный неориен­тиро­ванный мультиграф является эйлеровым графом тогда и только тогда, когдав нем отсутствуют вершины нечетной степени.

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

Для доказательства достаточности предположим, что всевершины графа имеют четные степени. Начнем цепь Р в произволь­ной вершине хiграфаG(рис. 3.40, а), и будем продолжать ее, на­сколько возможно, все время через новые ребра. Так как в каждой вершине число ребер четно, этот процесс может закончиться тольков xi. Если цикл Р содержит не все ребра графа G, то удалим из G часть, соответствующую циклу Р. Графы Р и G имеют четные степени всех вершин. То же долж­но быть справедливо и для оставшегося графа Р.

а) б)

Рис. 3.40. Иллюстрация доказательства теоремы Эйлера (а) и пример построения эйлерова цикла (б)

Так как граф Gсвязен, в циклеPдолжна найтись вершинаxj,инцидентная также ребрам Р. Из хj можно построить новую цепь Р', содержащую только ребра изР. И снова такая цепь может за­кончиться только при возвращении в хj .

Процесс построения эйлерова цикла иллюстрирует рис. 3.40, б. Объединяя, например, циклы (x1, х2, х3, х4, х5, х6,x1) и (х3, х7, х8,x3,x5, x1 x3), получим эйлеров цикл (x1, x2, x3, x7, x8, х3, х5, х1, х3, х4, х5, х6, x1).

Как граф с эйлеровым циклом можно рассмотреть схему обхо­да выставки по различным коридорам, которую посетители должныпройти согласно указателям так, чтобы увидеть каждый экспонат по одному разу.

Эйлеровой цепью называется цепь, включающая все ребра данного конечного неориентированного графаG(X), но имеющаяразличные начало xi и конец xj. Чтобы в графе существовала эйлеро­ва цепь, он должен быть связным и все вершины в нем, кроме хi и xj, долж­ны иметь четные степени. Степени вершин хi и xj должны быть не­четными, что естественно, так как из xi мы лишний раз выходим, а в xj мы лишний раз входим. Эти условия являются достаточными для существования эйлеровой цепи.

Важен также следующий вопрос: каково наименьшее количе­ство не пересекающихся по ребрам цепей, покрывающих конеч­ный связный граф G(X) (покрыть – значит включить все ребра графа в цепь)? На этот вопрос отвечает теорема 2.

Теорема 2.В конечном связном неориентированном графеG(X) сkвершинами нечетной степени минимальное число непере­секающихся по ребрам цепей, покрывающих G(X) равно k/2.

Доказательство. Пусть G(X) не является эйлеро­вым графом и k– число его вершин нечетной степени. Ранее было доказано, чтоkчетно. Каждая вершина нечетной степени должна быть концом хотя бы одной из покрывающих граф цепей. Следовательно, число такихцепей не меньше, чем k/2. Но можно показать, что и не больше. Со­единим попарно вершины нечетной степени k/2 ребрами. Тогда сте­пень каждой вершины увеличится на единицу и станет четной. По­лучится эйлеров граф, в котором существует эйлеров цикл. Теперь будем постепенно выбрасывать присоединенные ребра. При выбра­сывании первого ребра эйлеров цикл превратится в эйлерову цепь, апри выбрасывании каждого последующего ребра одна из возникших к этому моменту цепей разобьется на две части. Таким образом, об­щее число этих цепей равно k/2.

Следствие. Из теоремы 2 следует, что ес­ли в связном неориентированном мультиграфе имеются две вершины нечетной степени xi и xj, то сущест­вует эйлерова цепь, начинающаяся в хi, и кончающаяся в xj.

Вкачестве примера рассмот­рим граф на рис. 3.41. В нем х1, х2, х3, х5 – вершины нечет­­ной степени. Добавим два ребра: (х2, х5), (х1 х3) (штриховые линии). Получим эй­леров граф с эйлеровым циклом (x1, x2, х3, х4, х5, х2, x5, х6, х1, х3, х1). Убрав (х3, х1), по­лу­чим эйле­рову цепь. Убрав (х2, х5), получим 2 по­крыва­ющих цепи: (x1, х2, х3, х4, х5, х2) и (х5, х6, х1, х3).

Рассмотрим теперь случай конечного ориентиро­ван­ного гра­фа. Чтобы в конечном ориентированном графе существовал эйлеров цикл(контур), необходимо и достаточно, чтобы полустепени исхо­да и захода вершин этого графа по входящим и исходящим дугам были равны:

m'(xi) = m"(хi),  xi  X.

Доказательство то же, что и для неориентированного графа.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]