Эйлеровость графов — различия между версиями
Строка 62: | Строка 62: | ||
|proof= | |proof= | ||
}} | }} | ||
+ | |||
+ | ==Алгоритм построения эйлерова цикла, эйлерова пути== | ||
+ | |||
+ | Запускаем алгоритм от вершины <tex>v</tex>: | ||
+ | procedure FindEulerPath (V) | ||
+ | 1. перебрать все рёбра, выходящие из вершины V; | ||
+ | каждое такое ребро удаляем из графа, и | ||
+ | вызываем FindEulerPath из второго конца этого ребра; | ||
+ | 2. добавляем вершину V в ответ. | ||
[[Категория: Алгоритмы и структуры данных]] | [[Категория: Алгоритмы и структуры данных]] | ||
[[Категория: Обходы графов]] | [[Категория: Обходы графов]] |
Версия 08:06, 30 ноября 2011
Содержание
Эйлеров обход
Определение: |
Эйлеров обход - обход графа, посещающий эйлеров путь. |
Эйлеров путь
Определение: |
Эйлеровым путем в графе называется путь, который проходит по каждому ребру, причем ровно один раз. |
Эйлеров цикл
Определение: |
Эйлеров цикл - эйлеров путь, который является циклом. |
Эйлеров граф
Определение: |
Граф называется эйлеровым, если он содержит эйлеров цикл. Граф, содержащий эйлеров путь, не являющийся циклом, называют полуэйлеровым. |
Критерий эйлеровости
Необходимое условия:
1. Количество вершин нечетной степени не превосходит двух.
2. Все компоненты связности кроме, может быть одной, не имеют ребер.
Теорема: |
В графе существует эйлеров цикл тогда и только тогда, когда:
1. Все вершины имеют четную степень. 2. Все компоненты связности кроме, может быть одной, не имеют ребер. |
Доказательство: |
База индукции: Рассмотрим граф цикл существует. При доказано. в котором количество вершин с четной степенью больше нуля. Рассмотрим произвольную вершину . Из нее выходит ребро. Пойдем по нему и будем действовать далее также. Таким образом можно дойти до и найти цикл. Выкинем ребра цикла из графа. Первое условие сохранится. Второе может не выполниться. |
Следствие
В графе
существует эйлеров путь тогда и только тогда, когда:1. Количество вершин с нечетной степенью меньше или равно двум.
2. Все компоненты связности кроме, может быть одной, не имеют ребер.
Доказательство
Добавим ребро, соединяющее вершины с нечетной степенью. Теперь можно найти эйлеров цикл, после чего удалить добавленное ребро.
Ориентированный граф
Теорема: |
Ориентированный почти связный граф является эйлеровым тогда и только тогда, когда входная степень любой вершины равна ее выходной степени. |
Алгоритм построения эйлерова цикла, эйлерова пути
Запускаем алгоритм от вершины
:procedure FindEulerPath (V)
1. перебрать все рёбра, выходящие из вершины V; каждое такое ребро удаляем из графа, и вызываем FindEulerPath из второго конца этого ребра; 2. добавляем вершину V в ответ.