
- •В. Н. Степанов дискретная математика: графы и алгоритмы на графах
- •Предисловие
- •1. Основные понятия теории графов
- •1.1. Граф и его разновидности
- •1.2. Морфизмы графов
- •1.3. Степени вершин
- •1.4. Маршруты, цепи, циклы, связность
- •1.5. Операции над графами
- •1.6. Примеры графов
- •1.7. Метрические характеристики графов
- •1.8. Представления графов
- •2. Алгоритмы и сложность
- •2.1. Понятие алгоритма
- •2.2. Сложность алгоритма
- •2.3. Запись алгоритма
- •3. Обходы графов
- •3.1. Поиск в глубину на графе
- •3.2. Поиск в ширину на графе
- •3.3. Алгоритм выделения компонент связности
- •4. Деревья
- •4.1. Деревья. Свойства деревьев
- •4.2. Остовы. Теорема Кирхгофа
- •4.3. Теорема Кэли
- •4.4. Фундаментальная система циклов. Цикломатическое число
- •4.5. Алгоритм отыскания фундаментального множества циклов на графе
- •5. Остов минимального веса. Алгоритм Краскала и Прима
- •5.1. Алгоритм д. Краскала
- •5.2. Алгоритм р. Прима
- •6. Кратчайшие пути между вершинами графа
- •6.1. Алгоритм Дейкстры
- •6.2. Алгоритм Флойда
- •7. Эйлеровы графы
- •7.1. Теорема Эйлера
- •7.2. Алгоритм Флёри
- •8. Гамильтоновы графы
- •8.1. Гамильтоновы маршруты. Задача коммивояжера
- •8.2. Существование гамильтоновых маршрутов
- •9. Алгоритмы отыскания гамильтоновых циклов
- •9.1. Алгоритм с возвратом (полного перебора)
7. Эйлеровы графы
7.1. Теорема Эйлера
Начало теории графов, как раздела математики, связывают с так называемой задачей о кёнигсбергских мостах. Эта знаменитая в свое время задача состоит в следующем. В городе Кёнигсберге были расположены семь мостов на реке Преголь, как показано на рис. 7.1.1. Спрашивалось, можно ли, выйдя из дома, вернуться обратно, пройдя в точности один раз по каждому мосту. Поставим в соответствие плану города (рис. 7.1.1) граф , вершины которого соответствуют берегам и двум островам, а ребра – мостам (рис. 7.1.2). Тогда задача о кёнигсбергских мостах на языке теории графов формулируется так: существует ли в мультиграфе хотя бы один цикл, содержащий все ребра этого графа?
В
1736 г. Л. Эйлер в трудах петербургской
академии наук доказал, что не существует
цикла, включающего каждое ребро графа
по одному разу.
Цикл (цепь) в графе называется эйлеровым (полуэйлеровой), если он (она) содержит все ребра графа. Связный граф, в котором есть эйлеров цикл (цепь), называется эйлеровым (полуэйлеровой) графом. Такой граф можно нарисовать, не отрывая карандаша от бумаги и не повторяя линий. Например, граф, изображенный на рис. 7.2.1, является эйлеровым, поскольку он содержит эйлеров цикл. В этом графе есть и другие эйлеровы циклы. Ясно, что любые два таких цикла отличаются друг от друга только порядком обхода ребер.
Теорема 7.1.1. [Эйлер Л., 1736 г.]. Связный граф является эйлеровым тогда и только тогда, когда степени всех его вершин четны.
Доказательство. Предположим, что P является эйлеровым циклом в графе G. Тогда при всяком прохождении цикла через любую вершину графа используется одно ребро для входа и одно ребро для выхода. Поскольку каждое ребро используется один раз, то каждая вершина должна иметь четную степень.
Обратное утверждение доказывается индукцией по числу ребер в графе G. Пусть граф G связен и степень каждой вершины четна. На основании теоремы 1.4.1 граф содержит цикл C. Если C содержит каждое ребро, то все доказано. Если же нет, то удаляем из графа G все ребра, принадлежащие циклу C. Получаем новый граф , возможно несвязный. Число ребер в меньше, чем в G, и каждая вершина имеет четную степень. По индуктивному предположению в каждой компоненте графа имеется эйлеров цикл. В силу связности графа G каждая компонента графа имеет общие вершины с циклом C. Теперь проходим ребра графа G следующим образом: идем по ребрам цикла C до первой неизолированной вершины графа . Затем проходим эйлеров цикл в компоненте графа , затем снова двигаемся по циклу C до следующей неизолированной вершины графа . Ясно, что процесс заканчивается в исходной вершине, что и показывает существование эйлерова цикла.
Следствие 7.1.1. Связный граф является полуэйлеровым тогда и только тогда, когда он имеет две вершины нечетной степени.
Доказательство. Доказательство необходимости такое же, как и в теореме. Достаточность условия доказывается так. Пусть в графе ровно две вершины нечетной степени. Соединим эти вершины новым ребром, тогда, согласно теореме Эйлера, получим эйлеров граф. Построим в новом графе эйлеров цикл; удаление ранее добавленного ребра приводит к эйлеровой цепи в исходном графе.
В заключение отметим, что для случайно построенного графа вероятность его эйлеровости (при большом числе вершин) мала, то есть почти все графы не являются эйлеровыми.
Теорема
7.1.2.
[Рейд Р., 1962 г.] Пусть
– множество всех помеченных графов с
вершинами,
– множество всех помеченных эйлеровых
графов с
вершинами. Тогда
Доказательство.
Пусть
– множество всех простых помеченных
графов с
вершинами, степень каждой из которых
четна. Связные графы из
составляют подмножество эйлеровых
графов
;
поэтому
и
.
Каждый граф из
определяется некоторым подмножеством
ребер полного графа
,
содержащего
ребер, поэтому
.
Оценим мощность множества
.
Так как в любом графе число вершин
нечетной степени – четно, то любой граф
из
можно получить из некоторого графа
,
если добавить новую вершину и соединить
её со всеми старыми вершинами нечетной
степени. Следовательно,
.
Далее просто:
,
при
.