Эйлеровы цепи и циклы
Классической в теории графов является следующая задача. В городе Кенигсберге имеется два острова, соединенных семью мостами с берегами реки Преголь и друг с другом , как показано на рисунке.
Задача состоит в следующем: осуществить прогулку таким образом, чтобы , пройдя по одному разу по каждому мосту, вернуться обратно. Решение этой задачи сводится к поиску некоторого специального маршрута.
Пусть G(V, X) – псевдограф. Цепь (цикл) в G(V, X) называется эйлеровой (эйлеровым), если она (он) проходит по одному разу через каждое ребро графа G(V, X).
Поставим в соответствие схеме мультиграф , в котором каждой части суши соответствует вершина, а мостам – ребра. На языке теории графов задача прозвучит так : найти эйлеров цикл в мультиграфе G(V, X).
V1 V2 V3 V4
Прежде чем решать задачу о выделении эйлерова цикла или эйлеровой цепи, очевидно нужно выяснить , существуют ли они. Необходимым условием существования эйлерова цикла или цепи является связность графа.
Ответы на вопросы о существовании в графе эйлерова цикла и цепи дают ниже приводимые утверждения. Для их доказательства понадобятся вспомогательные утверждения.
Если в псевдографе G имеется хотя бы одно ребро и отсутствуют висячие вершины, то G содержит хотя бы один простой цикл.
Доказательство проведем по индукции.
Пусть G содержит только одно ребро, тогда это ребро – петля, т.к. нет висячих вершин, а петля – это простой цикл.
v
x
Пусть G содержит два ребра, тогда это кратные ребра. И, следовательно, простым циклом является v x1 w x2 v:
Пусть граф не содержит кратных ребер, т.е G – граф и v1 , v2 – произвольные смежные вершины графа. Рассмотрим последовательность v1, v2, v3…вершин графа G такую, что для любого i 3 вершины vi , v i-1 смежны и vi vi-2 :
vi-2 vi-1 vi
Поскольку в графе нет висячих вершин, то такую последовательность можно продолжать неограниченно. Используя конечность множества вершин графа, получаем, что обязательно произойдет совпадение vi = vj , где 1 i < j – 2. Пусть это будет первое совпадение, т.е. совпадение с наименьшим номером j. Тогда последовательность vi v i+1 v i+2…vj – простой цикл в графе.
Введем обозначения: если 1 и 2 – циклы псевдографа G , имеющие хотя бы одну общую вершину и не имеющие общих ребер, то, очевидно, существует цикл, проходящий через все ребра , входящие в 1 и 2 . Обозначим 1 + 2 любой из таких циклов. Для любого цикла обозначим V() и X() соответственно множество вершин и множество ребер, входящих в .
Пусть - цикл без петель. Тогда для v V() количество ребер в Х(), инцидентных v , четно.
Поскольку в цикле отсутствуют петли и все ребра попарно различны, то с каждым новым вхождением в вершины v в этот цикл войдут также два новых инцидентных ей ребра, а следовательно, общее число ребер в Х() инцидентных v , четно.
Следствие. Если вершина входит в некоторый цикл. То она не может быть висячей.
Теперь сформулируем и докажем теорему о существовании в графе эйлерова цикла.
Для того, что бы связный псевдограф G обладал эйлеровым циклом, необходимо и достаточно, что бы степени его вершин были четными.
Необходимость. Пусть G обладает эйлеровым циклом.
Удалим из G все петли. Получим мультиграф G’ , который также обладает эйлеровым циклом. Т.к эйлеров цикл мультиграфа G' содержит все ребра из G', а следовательно, и все вершины из G', то в силу утверждения 2 степени всех вершин мультиграфа G' четны, откуда, учитывая то, что вклад петли в степень вершины, инцидентной этой петле, равен 2, получаем четность степеней всех вершин графа G.
Достаточность. Пусть m – количество ребер в G.
При m = 1 связный псевдорграф G с вершинами четной степени может выглядить только следующим образом: G(V, X), где V = {v}, X = {x = {v, v}}. Значит, G(V, X) – петля, а петля – это эйлеров цикл.
Предположим , что для некоторого целого m 2 достаточность доказана для всякого псевдографа с m -1 ребрами. Докажем справедливость для псевдографа с m ребрами.
Пусть в связном псевдографе G c m ребрами степени вершин четны. В силу утверждения 1 в G имеется простой цикл 0 . Если 0 содержит все ребра из G , то эйлеров цикл найден. В противном случае удаляем из G все ребра , содержащиеся в 0. в результате получим псевдограф G' , каждая компонента связности которогоявляется либо изолированной вершиной, либо псевдографом, степень каждой вершины которого четна. Пусть Gi , где i = 1, 2, …р – компоненты связности графа G',отличные от изолированных вершин. По предположеню, для каждого псевдографа Gi можно построить эйлеров цикл I . В силу связности G цикл 0 имеет общие вершины с любым из циклов i , где i = 1, 2, …р. Тогда искомым эйлеровым циклом в G является цикл :
= (…((0 + 1 ) + 2) + …+ р).
Сформулируем и докажем теорему о существовании эйлеровой цепи в графе.
Для того, что бы связный псевдограф G обладал эйлеровой цепью, необходимо и достаточно, что бы он имел ровно две вершины нечетной степени.
Необходимость. Пусть G имеет эйлерову цепь, соединяющую v и w. Добавим к G дополнительное ребро {v, w}. Получим псевдограф G', обладающий эйлеровым циклом, а следовательно, степени вершин графа G' четны. Но тогда четны и степени вершин псевдографа G, за исключением вершин v и w.
Достаточность. Пусть G имеет ровно две вершины v и w нечетной степени. Добавим к G новое ребро {v, w}. Получим связный псевдограф G' со всеми вершинами четной степени. Тогда в графе G' существует эйлеров цикл. Исключив из этого цикла ребро {v, w}, получим эйлерову цепь , соединяющуя вершины v и w.
Замечание. Эйлерова цепь соединяет вершины нечетной степени. Вернемся к задаче о Кенигсбергских мостах. Необходимое условие существования эйлерова цикла или эйлеровой цепи выполняется, т.к граф связный. Найдем степени вершин графа: (v1) = (v2) = (v4) = 3, (v3) =5. Значит, граф не обладает ни эйлеровым циклом , ни эйлеровой цепью.
Познакомимся с алгоритмами выделения эйлерова цикла и эйлеровой цепи.
Алгоритм 1 выделения эйлерова цикла в связном мультиграфе G(V,X), где Х и степени вершин четны..
Выделить из G цикл 1. Положить k = 1 (k - число циклов), G' = G.
Удалить из G' ребра, принадлежащие множеству Х(k). Полученный псевдограф снова обозначить G'. Если в G' отсутствуют ребра, то переходим к шагу 4. В противном случае выделяем из G' цикл k+1 и перейти к шагу 3.
Присвоить k: = k + 1 и перейти к шагу 2.
По построению 1 , …, k – циклы. Если k = 1, то 1 – искомый эйлеров цикл, работа алгоритма заканчивается. В противном случае находим цикл i такой, что V(i) V(1) , где 2 i k. Перейти к шагу 5.
Присвоить к: = i – 1, 1 : 1 + i , j : j+1 , j = I, …, k. Перейти к шагу 4.
Применим этот алгоритм для выделения эйлерового цикла для псевдографа с четными степенями вершин..
Удалим из G петли. Получим связный мультиграф G’, степени которого четны. Пусть в G’ имеется хотя бы одно ребро. Тогда, применяя к G' приведенный алгоритм, найдем эйлеров цикл в графе G'. Добавляем в этот цикл удаленные петли, получим эйлеров цикл в G.
Рассмотрим теперь применения этого алгоритма для выделения эйлеровой цепи в связном псевдографе, имеящим ровно две вершины v, w нечетной степени., где Х . Добавляя к G ребро {v, w}, получим псевдограф G' с четными степенями вершин. Выделив в G' эйлеров цикл и удалив из него ребро {v, w} , получим эйлерову цепь.
Алгоритм 2 выделения эйлерова цикла в связном мультиграфе G(V,X), где Х и степени вершин четны.
Выбрать произвольно некоторую вершину v.
Выбрать произвольно некоторое ребро х, инцидентное v , и присвоить ему номер 1.
Каждое пройденное ребро вычеркивать и присваивать ему номер, на единицу больший номера предыдущего вычеркнутого ребра.
Находясь в вершине vi , не выбирать ребра, соединяющего vi с v, если есть возможность другого выбора.
Находясь в вершине vi , не выбирать ребра, которое является мостом (при удалении которого граф, образованный незачеркнутыми ребрами, распадается на две компоненты связности, имеющие хотя бы по одному ребру).
После того, как в графе будут занумерованы все ребра, цикл , образованный ребрами с номерами от 1 до n, где n – число ребер в графе, есть эйлеров цикл.
Для использования этого алгоритма для построения эйлеровой цепи первый пункт будет таким: выбрать вершину с нечетной степенью. Остальные шаги не изменятся.
Пример. Построить эйлеров цикл, используя оба алгоритма.
Применим первый алгоритм.
Данный псевдограф - связный. Найдем степени вершин: (v1) = 4, (v2) = 4, (v3) = 6, (v4) = 4, (v5) = 4. Все степени вершин четные, следовательно, граф обладает эйлеровым циклом. Построим его.
Используем первый алгоритм.
Удалим петли х10 и х11. Получим мультиграф. Выделим цикл v3x4x2x5v3 – обозначим 1. Удалим ребра x4, x2, x5 . Снова выделяем цикл v3x3x1x6v3 - 2 . V(1)V(2) = {v1, v2, v3}. Удалим ребра. Выделяем цикл v3x7x9x8v3 - 3. V(2)V(3) = {v3}. В мультиграфе построили эйлеров цикл 1 + 2 + 3 . Добавим удаленные петли и получим цикл в заданном графе: v3x4x2x5 x3x1x6 x7 x10 x9 x11 x8v3.
Используем второй алгоритм.
Как и в первом алгоритме, удалим петли , получим мультиграф. Выберем любую вершину, например, v3. Выберем инцидентное ей ребро, например, х7 . Присвоим ему номер 1, т.е. х71 и вычеркнем. Выбираем инцидентное ребро вершине v4 – это ребро х9, присвоим ему номер 2 – х92 , вычеркнем. Выбираем инцидентное ребро вершине v5 – это ребро х8, присвоим ему номер 3 – х83 , вычеркнем. Далее аналогичным образом выбираем ребра х4, х2, х5 и х3, х1, х6. В мультиграфе эйлеров цикл построен. Добавим в него удаленные петли. Окончательно получим эйлеров цикл в данном графе: v3x7x10x9 x11x8x4 x2 x5 x3 x1 x6v3.
Yandex.RTB R-A-252273-3
- Лекция 2
- Лекция 3
- Лекция 4
- Лекция 5
- Лекция 13
- Лекция 14
- Лекция 16
- Основные понятия
- Понятие множества. Способы задания множеств.
- Понятие множества. Способы задания множеств.
- Отношения между множествами.
- 3, Операции над множествами.
- Алгебра множеств.
- Теорема о количестве подмножеств конечного множества.
- Формула включений и исключений.
- Лекция 2
- 1.Понятие вектора. Прямое произведение множеств.
- 2.Теорема о количестве элементов прямого произведения.
- Понятие вектора. Прямое произведение множеств.
- Теорема о количестве элементов прямого произведения.
- Лекция 3
- 2. Понятие высказывания.
- 3. Логические операции над высказываниями
- 4.Формулы алгебры логики.
- Лекция 4
- 2. Важнейшие равносильности алгебры логики.
- 3.Равносильные преобразования формул.
- Задачи для самостоятельного решения
- Лекция 5
- Дизъюнктивная нормальная форма.
- Конъюнктивная нормальная форма.
- Проблема разрешимости.
- Лекция 6
- Функции алгебры логики.
- 3. Представление произвольной функции алгебры логики в виде формулы алгебры логики.
- 4.Приложения алгебры логики в технике (релейно-контактные схемы).
- Контрольные вопросы
- Лекция 7
- Совершенная дизъюнктивная нормальная форма.
- Совершенная конъюнктивная нормальная форма.
- Совершенная дизъюнктивная нормальная форма.
- 2.Совершенная конъюнктивная нормальная форма.
- Лекция 8
- 2.Понятие минимальной днф. Метод минимизирующих карт.
- 3.Метод Квайна.
- 4.Метод Карно.
- 5.Постановка задачи минимизации в геометрической форме.
- 6.Сокращенная днф.
- 7.Тупиковая днф. Днф Квайна.
- Лекция 9
- Некоторые логические операции. Двоичное сложение.
- Полином Жегалкина.
- Некоторые логические операции. Двоичное сложение.
- Полином Жегалкина.
- Лекция 10
- Полная система . Достаточное условие полноты.
- Критерий полноты системы булевых функций.
- Независимые системы. Базис замкнутого класса.
- Полная система. Достаточное условие полноты.
- Критерий полноты системы булевых функций.
- 3. Независимые системы. Базис замкнутого класса.
- Лекция 11
- Понятие предиката.
- Логические операции над предикатами.
- 1. Понятие предиката
- 2. Логические операции над предикатами
- Лекция 12
- 2. Формулы логики предикатов.
- Значение формулы логики предикатов.
- 4. Равносильные формулы логики предикатов.
- Лекция 13
- Построение противоположных утверждений.
- 3. Прямая, обратная и противоположная теоремы.
- 4. Необходимые и достаточные условия.
- 5. Доказательство методом от противного.
- Задачи для самостоятельного решения
- Лекция 14
- 2. Использование метода математической индукции для нахождения сумм конечного числа слагаемых
- 3. Использование метода математической индукции для доказательства неравенств и делимости выражений, зависящих от n на некоторое число
- 4. Обобщение метода математической индукции
- Контрольные вопросы
- Лекция 15
- Операции над бинарными отношениями.
- 3. Свойства бинарных отношений.
- 4. Специальные бинарные отношения.
- Контрольные вопросы
- Лекция 16
- Функция
- 1. 4. Отображение
- Обратная функция
- 2. Свойства отображений и функций
- 3.Операции над функциями. Свойства операций
- Контрольные вопросы
- Лекция 17
- Основные понятия .
- 2. Смежность, инцидентность, степени вершин.
- 3. Способы задания графов
- Маршруты в неориентированном графе
- Операции над графами.
- Связность. Компоненты связности
- Контрольные вопросы
- Лекция 18
- 2. Метрические характеристики неориентированного графа
- Минимальные маршруты в нагруженных графах
- Задачи на деревьях
- Цикловой ранг графа. Цикломатическое число
- Контрольные вопросы
- Лекция 19
- Эйлеровы цепи и циклы
- Гамильтоновы циклы и цепи
- Эйлеровы цепи и циклы
- Гамильтоновы циклы и цепи.
- Контрольные вопросы
- Лекция 20
- Двудольный граф. Условие существования двудольного графа
- Паросочетания . Реберные покрытия
- Двудольный граф. Условие существования двудольного графа
- Паросочетания. Реберные покрытия
- Контрольные вопросы
- Лекция 21
- Основные определения
- Алгоритм плоской укладки графа
- Контрольные вопросы
- Лекция 22
- Способы задания ориентированного графа
- Путь в ориентированном графе
- 4. Связность. Компоненты связности в орграфе
- Контрольные вопросы
- Лекция 23
- 2. Минимальные пути в нагруженных орграфах
- 3. Порядковая функция орграфа без контуров
- Контрольные вопросы