Эйлеровость графов
Эйлеров обход
| Определение: |
| Эйлеров обход - обход графа, посещающий эйлеров путь. |
Эйлеров путь
| Определение: |
| Эйлеровым путем в графе называется путь, который проходит по каждому ребру, причем ровно один раз. |
Эйлеров цикл
| Определение: |
| Эйлеров цикл - эйлеров путь, который является циклом. |
Эйлеров граф
| Определение: |
| Граф называется эйлеровым, если он содержит эйлеров цикл. Граф, содержащий эйлеров путь, не являющийся циклом, называют полуэйлеровым. |
Критерий эйлеровости
Необходимое условия:
1. Количество вершин нечетной степени не превосходит двух.
2. Все компоненты связности кроме, может быть одной, не имеют ребер.
| Теорема: |
В графе существует эйлеров цикл тогда и только тогда, когда:
1. Все вершины имеют четную степень. 2. Все компоненты связности кроме, может быть одной, не имеют ребер. |
| Доказательство: |
|
База индукции: цикл существует. При доказано. Рассмотрим граф в котором количество вершин с четной степенью больше нуля. Рассмотрим произвольную вершину . Из нее выходит ребро. Пойдем по нему и будем действовать далее также. Таким образом можно дойти до и найти цикл. Выкинем ребра цикла из графа. Первое условие сохранится. Второе может не выполниться. |
Следствие
В графе существует эйлеров путь тогда и только тогда, когда:
1. Количество вершин с нечетной степенью меньше или равно двум.
2. Все компоненты связности кроме, может быть одной, не имеют ребер.
Доказательство
Добавим ребро, соединяющее вершины с нечетной степенью. Теперь можно найти эйлеров цикл, после чего удалить добавленное ребро.
Ориентированный граф
| Теорема: |
Ориентированный почти связный граф является эйлеровым тогда и только тогда, когда входная степень любой вершины равна ее выходной степени. |
Алгоритм построения эйлерова цикла, эйлерова пути
Запускаем алгоритм от вершины :
procedure FindEulerPath (V)
1. перебрать все рёбра, выходящие из вершины V; каждое такое ребро удаляем из графа, и вызываем FindEulerPath из второго конца этого ребра; 2. добавляем вершину V в ответ.