Изменения

Перейти к: навигация, поиск

Эйлеровость графов

6799 байт добавлено, 19:18, 4 сентября 2022
м
rollbackEdits.php mass rollback
==Эйлеров путьОсновные определения==Путь <math>p</math> <math>u_0 -> u_0u_1 -> u_1 -> u_1u_2 -> ...-> u_(k-1)u_k -> u_k</math> в графе <math>G {{Определение|definition= (V, E)</math> <br/>называется '''Эйлеровымпутем'''(англ. ''Eulerian path'') в графе называется [[Основные определения теории графов|путь]], если содержит все ребра <math>G</math>который проходит по каждому ребру, причем каждое - только ровно один раз. <br/>}}
{{Определение|definition=='''Эйлеров цикл==обход''' (англ. ''Eulerian circuit'') {{---}} обход графа, посещающий эйлеров путь.}}
Цикл <math>p</math> <math>u_0 -> u_0u_1 -> u_1 -> u_1u_2 -> ...-> u_ku_0-> u_0</math> в графе <math>G {{Определение|definition= '''Эйлеров цикл''' (V, E)</math> <br/>называется англ. ''ЭйлеровымEulerian cycle'', если содержит все ребра <math>G</math>, причем каждое ) {{- только один раз--}} замкнутый эйлеров путь. <br/>}}
{{Определение|id = euler_graph|definition=Граф называется '''эйлеровым'''Эквивалентно:(англ. ''Eulerian graph'Эйлеровым циклом является Эйлеров '), если он содержит эйлеров цикл. Граф называется '''полуэйлеровым''', если он содержит эйлеров путь, являющийся цикломно не содержит эйлеров цикл.}}
==Эйлеров графКритерий эйлеровости=={{Теорема|id ===Определение==eulerTheorem|statement=Граф Для того, чтобы граф <mathtex>G = (V, E)</mathtex> называется Эйлеровым, если содержит Эйлеров циклбыл эйлеровым необходимо чтобы:1. Все вершины имели четную степень.<br/>
Граф2. Все компоненты связности, кроме, может быть, одной, не содержали ребер.|proof=1. Допустим в графе существует вершина с нечетной степенью. Рассмотрим эйлеров обход графа. Заметим, содержащий Эйлеров путьчто при попадании в вершину и при выходе из нее мы уменьшаем ее степень на два (помечаем уже пройденые ребра), если эта вершина не являющийся цикломявляется стартовой(она же конечная для цикла). Для стартовой(конечной) вершины мы уменьшаем ее степень на один в начале обхода эйлерова цикла, называют полуэйлеровыми на один при завершении. Следовательно вершин с нечетной степенью быть не может. Наше предположение неверно. <br/>
===Критерий Эйелеровости=======Неориентированный граф===='''Теорема'''<br/>Неориентированный связный граф <math>G = (V2. Если в графе существует более одной компоненты связности с ребрами, E)</math> является Эйлеровым тогда и только тогдато очевидно, когда не содержит вершин нечетной степеничто нельзя пройти по их ребрам одним путем.<br/><br/>}}
'''Доказательство'''<br/>Достаточность<br/>Рассмотрим Эйлеров цикл <math>p</math> в <math>G</math>[[Файл:Euler_path_1.png|160px|thumb|left|Эйлерова пути нет.<br/>Каждое вхождение вершины в цикл(кроме первого и последнего вхождения начальной вершины) добавляет 2 к ее Количество вершин нечетной степенибольше двух.<br/>]]Для начальной вершины ее первое и последнее вхождение также суммарно добавляют 2 к ее степени[[Файл:Euler_path_2.png|230px|thumb|none|Две компоненты связности, одна имеет ребра.<br/><br/>Необходимость<br/><br/>]]
'''Следствие'''<br/>{{Теорема|statement=Неориентированный связный граф В графе <mathtex>G = (V, E)</mathtex> является полуэйлеровым существует эйлеров цикл тогда и только тогда, когда содержит ровно две вершины нечетной степени.<br/>:
====Ориентированный граф===='''Теорема'''<br/>Ориентированный граф <math>G = (V, E) </math> является Эйлеровым тогда и только тогда, входная 1. Все вершины имеют четную степень любой вершины равна ее выходной степени.<br/><br/>'''Доказательство'''<br/>Достаточность<br/>Необходимость<br/>
2. Все компоненты связности, кроме, может быть, одной, не содержат ребер. |proof= Необходимость мы доказали ранее. Докажем достаточность, используя индукцию по числу вершин <tex>n</tex>. База индукции: <tex>n = 0</tex> цикл существует. Предположим что граф имеющий менее <tex>n<br/tex>вершин содержит эйлеров цикл. Рассмотрим связный граф <tex>G = (V, E)</tex> с <tex>n > 0</tex> вершинами, степени которых четны. Пусть <tex>v_1</tex> и <tex>v_2</tex> {{---}} вершины графа. Поскольку граф связный, то существует путь из <tex>v_1</tex> в <tex>v_2</tex>. Степень <tex>v_2</tex> {{---}} чётная, значит существует неиспользованное ребро, по которому можно продолжить путь из <tex>v_2</tex>. Так как граф конечный, то путь, в конце концов, должен вернуться в <tex>v_1</tex>, следовательно мы получим замкнутый путь (цикл). Назовем этот цикл <tex>C_1</tex>. Будем продолжать строить <tex>C_1</tex> через <tex>v_1</tex> таким же образом, до тех пор, пока мы в очередной раз не сможем выйти из вершины <tex>v_1</tex>, то есть <tex>C_1</tex> будет покрывать все ребра, инцидентные <tex>v_1</tex>. Если <tex>C_1</tex> является эйлеровым циклом для <tex>G</tex>, тогда доказательство закончено. Если нет, то пусть <tex>G'</tex> {{---}} подграф графа <tex>G</tex>, полученный удалением всех рёбер, принадлежащих <tex>C_1</tex>. Поскольку <tex>C_1</tex> содержит чётное число рёбер, инцидентных каждой вершине, то каждая вершина подграфа <tex>G'</tex> имеет чётную степень. А так как <tex>C_1</tex> покрывает все ребра, инцидентные <tex>v_1</tex>, то граф <tex>G'Следствие</tex> будет состоять из нескольких компонент связности. Рассмотрим какую-либо компоненту связности <tex>G'</tex>. Поскольку рассматриваемая компонента связности <tex>G'</tex> имеет менее, чем <tex>n</tex> вершин, а у каждой вершины графа <tex>G'<br/tex>чётная степень, то у каждой компоненты связности <tex>G'</tex> существует эйлеров цикл. Пусть для рассматриваемой компоненты связноти это цикл <tex>C_2</tex>. У <tex>C_1</tex> и <tex>C_2</tex> имеется общая вершина <tex>a</tex>, так как <tex>G</tex> cвязен. Теперь можно обойти эйлеров цикл, начиная его в вершине <tex>a</tex>, обойти <tex>C_1</tex> , вернуться в <tex>a</tex>, затем пройти <tex>C_2</tex> и вернуться в <tex>a</tex>. Если новый эйлеров цикл не является эйлеровым циклом для <tex>G</tex>, продолжаем использовать этот процесс, расширяя наш эйлеров цикл, пока, в конце концов, не получим эйлеров цикл для <tex>G</tex>. }}{{Теорема|about=следствие|statement=В графе <tex>G = (V, E) </tex> существует эйлеров путь тогда и только тогда, когда:1. Количество вершин с нечетной степенью меньше или равно двум.2. Все компоненты связности кроме, может быть одной, не содержат ребер.|proof=Добавим ребро, соединяющее вершины с нечетной степенью. Теперь можно найти эйлеров цикл, после чего удалить добавленное ребро. Очевидно найденный цикл станет путем.}} ====[[Основные определения теории графов|Ориентированный граф ]]===={{Теорема|statement=В ориентированном графе <mathtex>G = (V, E)</mathtex> является полуэйлеровым существует эйлеров цикл тогда и только тогда, когда содержит ровно одну вершину: 1. Входная степень любой вершины равна ее выходной степени. 2. Все компоненты слабой связности кроме, может быть одной, не содержат ребер.|proof=Доказательство аналогично случаю неориентированного графа.}} {{Теорема|about=cледствие|statement=В ориентированном графе <tex>G = (V, входная E)</tex> существует эйлеров путь если:1. Входная степень которойлюбой вершины равна ее выходной степени, кроме двух вершин графа, для одной из которых <tex>\operatorname{deg}^+ - \operatorname{deg}^- = 1</tex>, а для другой <tex>\operatorname{deg}^+ - \operatorname{deg}^- = -1<br/tex>.на единицу больше выходной2. Все компоненты слабой связности кроме, может быть одной, и ровно одну не содержат ребер.|proof=Соединим ориентированным ребром вершинус большей входящей степенью с вершиной с большей исходящей степенью. Теперь можно найти эйлеров цикл, выходная степень которой на единицу больше входнойпосле чего удалить добавленное ребро. Очевидно найденный цикл станет путем.}} ==См. также== * [[Алгоритм построения Эйлерова цикла]] == Источники информации== * Ф.Харари Теория графов. Глава 7. Обходы графов. Эйлеровы графы.* Уилсон Р. Введение в теорию графов. {{---}} М.: Мир, 1977* [http://e-maxx.<brru/algo/>euler_path Нахождение эйлерова пути] [[Категория: Алгоритмы и структуры данных]][[Категория: Обходы графов]][[Категория: Эйлеровы графы]]
1632
правки

Навигация