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

5. Эйлеровы и гамильтоновы графы.

5.1. Эйлеровы графы.

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

Рис. 18

В этом графе вершины v1 и v4 соответствуют берегам, а v2 и v3 – островам. Ребра отображают мосты. Таким образом, на языке теории графов исходная задача формулируется следующим образом: существует ли в указанном мультиграфе цикл, содержащий все ребра данного мультиграфа?

Определение: Цепь (цикл), содержащая все ребра графа и притом по одному разу, называется эйлеровой цепью (эйлеровым циклом). Граф, содержащий эйлеров цикл, называется эйлеровым грфом.

Теорема. Для того, чтобы конечный связный неориентированный мультиграф был эйлеровым необходимо и достаточно, чтобы все его вершины имели чётные степени.

Д о к а з а т е л ь с т в о:

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

Достаточность. Предположим, что все вершины связного графа G имеют чётные степени. Тогда, в силу связности графа G, для всех его вершин выполняется условие d(v)>0. Кроме того, в силу чётности вершин, должно быть d(v)2 для всех v. По теореме Эйлера имеем: .Это значит, что: или , и следовательно граф G не является деревом, а поэтому он содержит хотя бы один простой цикл Z1 (Z1 - множество ребер), тогда G\Z1 – остовный подграф, в котором все степени вершин также четные. Исключим из рассмотрения изолированные вершины, тогда в графе G\Z1 существует простой цикл Z2G\Z1, далее выделим Z3 и т.д. В результате этого получается разбиение множества ребер на простые циклы, то есть: ,где .

Далее, возьмем какой либо простой цикл из полученного разбиения. Если , то теорема доказана. Если нет, то в силу связности графа G, существуют цикл и вершина v1 такие, что и . Маршрут, объединяющий и , является циклом. Если , то теорема доказана. Если нет, то имеется чикл , при котором существует вершина v2 такая, что и . Далее будем наращивать эйлеров цикл до тех пор, пока не исчерпаем всё разбиение. В результате получаем эйлеров цикл. всего графа.

5. 2. Алгоритм построения эйлерова цикла в эйлеровом графе

Этот алгоритм задается следующими правилами:

  1. Выбирается произвольная вершина v.

  2. Выбирается ребро e инцидентное вершине v и ему присваивается номер 1 (это ребро называется пройденным).

  3. Каждое пройденное ребро вычеркивается и присваивается номер на 1 больший номера предыдущего вычеркнутого ребра.

  4. При нахождении в произвольной вершине x, не выбирается ребро, соединяющее x с v, если есть возможность другого выбора.

  5. Ребро не проходится, если оно является перешейком. Перешейк – это ребро, при удалении которого, граф, образованный невычеркнутыми ребрами, распадается на две компоненты связности, каждая из которых имеет хотя бы одно ребро.

  6. После того, как в графе будут занумерованы все ребра, образуется эйлеров цикл, нумерация рёбер которого соответствует последовательности обхода ребер.

Пример. Найти эйлеров цикл в эйлеровом графе

П осле выбора вершины v и прохождения рёбер 1 и 2 имеется три возможности: выбрать 3,6 или 7. Ребро 7 является пере-

Рис. 19

шейком, поэтому выбирается любое из оставшихся рёбер, например 3. Далее идёт обход оставшихся рёбер получается эйлеров цикл.