Тропа в графе, которая посещает каждое ребро один раз
В теории графов эйлеров путь (или эйлеров путь ) — это путь в конечном графе , который посещает каждое ребро ровно один раз (с учетом повторного посещения вершин). Аналогично, эйлеров контур или эйлеров цикл — это эйлеров путь, который начинается и заканчивается в одной и той же вершине . Впервые они были рассмотрены Леонардом Эйлером при решении знаменитой задачи о семи мостах Кенигсберга в 1736 году. Математически задачу можно сформулировать следующим образом:
Учитывая граф на изображении, возможно ли построить путь (или цикл , т. е. путь, начинающийся и заканчивающийся в одной и той же вершине), который посещает каждое ребро ровно один раз?
Эйлер доказал , что необходимым условием существования эйлеровых цепей является то, что все вершины в графе имеют четную степень , и заявил без доказательства, что связные графы со всеми вершинами четной степени имеют эйлерову цепь. Первое полное доказательство этого последнего утверждения было опубликовано посмертно в 1873 году Карлом Хирхольцером . [1] Это известно как теорема Эйлера:
Термин эйлеров граф имеет два общих значения в теории графов. Одно значение — граф с эйлеровым контуром, а другое — граф, в котором каждая вершина имеет четную степень. Эти определения совпадают для связных графов. [2]
Для существования эйлеровых путей необходимо, чтобы ни одна или две вершины имели нечетную степень; это означает, что граф Кёнигсберга не является эйлеровым. Если вершин нечетной степени нет, все эйлеровы пути являются контурами. Если вершин нечетной степени ровно две, все эйлеровы пути начинаются в одной из них и заканчиваются в другой. Граф, имеющий эйлеров путь, но не имеющий эйлерова контура, называется полуэйлеровым .
Определение
Эйлеров путь , [ примечание 1] или прогулка Эйлера , в неориентированном графе — это прогулка, которая использует каждое ребро ровно один раз. Если такая прогулка существует, граф называется проходимым или полуэйлеровым . [3]
Эйлеров цикл , [ примечание 1] также называемый эйлеровым контуром или эйлеровым туром , в неориентированном графе — это цикл , который использует каждое ребро ровно один раз. Если такой цикл существует, граф называется эйлеровым или уникурсальным . [4] Термин «эйлеров граф» также иногда используется в более слабом смысле для обозначения графа, в котором каждая вершина имеет четную степень. Для конечных связных графов эти два определения эквивалентны, в то время как возможно несвязный граф является эйлеровым в более слабом смысле тогда и только тогда, когда каждый связный компонент имеет эйлеров цикл.
Определение и свойства эйлеровых путей, циклов и графов справедливы также для мультиграфов .
Эйлерова ориентация неориентированного графа G — это назначение направления каждому ребру графа G таким образом, что в каждой вершине v степень захода v равна степени выхода v . Такая ориентация существует для любого неориентированного графа , в котором каждая вершина имеет четную степень , и может быть найдена путем построения эйлерова тура в каждом связном компоненте графа G и последующего ориентирования ребер в соответствии с туром. [5] Каждая эйлерова ориентация связного графа является сильной ориентацией , ориентацией, которая делает полученный ориентированный граф сильно связным .
Характеристики
Неориентированный граф имеет эйлеров цикл тогда и только тогда, когда каждая вершина имеет четную степень, и все его вершины с ненулевой степенью принадлежат одному связному компоненту . [6]
Неориентированный граф можно разложить на реберно-непересекающиеся циклы тогда и только тогда, когда все его вершины имеют четную степень. Таким образом, граф имеет эйлеров цикл тогда и только тогда, когда его можно разложить на реберно-непересекающиеся циклы, а его вершины ненулевой степени принадлежат одной связной компоненте.
Неориентированный граф имеет эйлеров путь тогда и только тогда, когда ровно ноль или две вершины имеют нечетную степень, и все его вершины с ненулевой степенью принадлежат одному связному компоненту [6]
Ориентированный граф имеет эйлеров путь тогда и только тогда, когда не более одной вершины имеет ( исходную степень ) − ( входную степень ) = 1, не более одной вершины имеет (входную степень) − (исходную степень) = 1, каждая другая вершина имеет одинаковую входную и исходную степени, и все ее вершины с ненулевой степенью принадлежат одному связному компоненту базового неориентированного графа. [6]
Построение эйлеровых путей и схем
Алгоритм Флери
Алгоритм Флери — элегантный, но неэффективный алгоритм, который датируется 1883 годом. [7] Рассмотрим граф, в котором, как известно, все ребра находятся в одном компоненте и не более двух вершин нечетной степени. Алгоритм начинается с вершины нечетной степени или, если граф не имеет ни одной, он начинается с произвольно выбранной вершины. На каждом шаге он выбирает следующее ребро на пути, удаление которого не приведет к разрыву графа, если только такого ребра нет, в этом случае он выбирает оставшееся ребро, оставшееся в текущей вершине. Затем он переходит к другой конечной точке этого ребра и удаляет ребро. В конце алгоритма не остается ребер, и последовательность, из которой были выбраны ребра, образует эйлеров цикл, если граф не имеет вершин нечетной степени, или эйлеров путь, если есть ровно две вершины нечетной степени.
В то время как обход графа в алгоритме Флери линеен по числу ребер, т. е . , нам также необходимо учесть сложность обнаружения мостов . Если мы повторно запустим линейный по времени алгоритм поиска мостов Тарьяна [8] после удаления каждого ребра, алгоритм Флери будет иметь временную сложность . Динамический алгоритм поиска мостов Торупа (2000) позволяет улучшить это до , но это все еще значительно медленнее, чем альтернативные алгоритмы.
Алгоритм Хирхольцера
В статье Хирхольцера 1873 года предлагается другой метод нахождения циклов Эйлера, который более эффективен, чем алгоритм Флери:
Выберите любую начальную вершину v и следуйте по цепочке ребер от этой вершины до возвращения в v . Невозможно застрять ни в какой вершине, кроме v , поскольку четная степень всех вершин гарантирует, что когда цепочка входит в другую вершину w , из w должно выходить неиспользованное ребро . Образованный таким образом тур является замкнутым, но может не охватывать все вершины и ребра исходного графа.
Пока существует вершина u , принадлежащая текущему туру, но имеющая смежные ребра, не являющиеся частью тура, начать другой путь из u , следуя неиспользованным ребрам до возвращения в u , и присоединить сформированный таким образом тур к предыдущему туру.
Поскольку мы предполагаем, что исходный граф связен , повторение предыдущего шага исчерпает все ребра графа.
Используя структуру данных, такую как двусвязный список, для поддержания набора неиспользуемых ребер, инцидентных каждой вершине, для поддержания списка вершин в текущем туре, которые имеют неиспользуемые ребра, и для поддержания самого тура, отдельные операции алгоритма (поиск неиспользуемых ребер, выходящих из каждой вершины, поиск новой начальной вершины для тура и соединение двух туров, которые имеют общую вершину) могут быть выполнены за постоянное время каждая, поэтому общий алгоритм занимает линейное время , . [9]
Этот алгоритм также может быть реализован с помощью deque . Поскольку застревание возможно только тогда, когда deque представляет собой замкнутый маршрут, следует вращать deque, удаляя ребра из хвоста и добавляя их в голову, пока не отклеятся, а затем продолжать, пока не будут учтены все ребра. Это также занимает линейное время, так как количество выполненных вращений никогда не превышает (интуитивно, любые «плохие» ребра перемещаются в голову, в то время как новые ребра добавляются в хвост)
Теорема BEST впервые сформулирована в этой форме в "примечании, добавленном в доказательство" к статье Аарденне-Эренфеста и де Брейна (1951). Первоначальное доказательство было биективным и обобщало последовательности де Брейна . Это вариация более раннего результата Смита и Тутте (1941).
Подсчет числа эйлеровых контуров на неориентированных графах гораздо сложнее. Известно, что эта задача является #P-полной . [10] В положительном направлении, считается, что подход Монте-Карло с цепями Маркова , посредством преобразований Коцига (введенных Антоном Коцигом в 1968 году), дает точное приближение для числа эйлеровых контуров в графе, хотя пока нет доказательств этого факта (даже для графов ограниченной степени).
Особые случаи
Асимптотическая формула для числа эйлеровых контуров в полных графах была определена Маккеем и Робинсоном (1995): [11]
Аналогичная формула была позднее получена М.И. Исаевым (2009) для полных двудольных графов : [12]
Приложения
Эйлеровы пути используются в биоинформатике для реконструкции последовательности ДНК из ее фрагментов. [13] Они также используются в проектировании схем КМОП для поиска оптимального порядка логических вентилей . [14] Существуют некоторые алгоритмы обработки деревьев , которые основаны на обходе Эйлера дерева (где каждое ребро рассматривается как пара дуг). [15] [16] Последовательности де Брейна могут быть построены как эйлеровы пути графов де Брейна . [17]
В бесконечных графиках
В бесконечном графе соответствующим понятием эйлеровой цепи или эйлерова цикла является эйлерова линия, дважды бесконечная цепь, которая покрывает все ребра графа. Для существования такой цепи недостаточно, чтобы граф был связным и чтобы все степени вершин были четными; например, показанный бесконечный граф Кэли со всеми степенями вершин, равными четырем, не имеет эйлеровой линии. Бесконечные графы, содержащие эйлеровы линии, были охарактеризованы Эрдёшем, Грюнвальдом и Вайсфельдом (1936). Для того чтобы бесконечный граф или мультиграф G имел эйлерову линию, необходимо и достаточно, чтобы выполнялись все следующие условия: [18] [19]
Удаление любого конечного подграфа S из G оставляет не более двух бесконечных связных компонентов в оставшемся графе, и если S имеет четную степень в каждой из своих вершин, то удаление S оставляет ровно один бесконечный связный компонент.
Неориентированные эйлеровы графы
Эйлер сформулировал необходимое условие для конечного графа быть эйлеровым, поскольку все вершины должны иметь четную степень. Хирхольцер доказал, что это достаточное условие в статье, опубликованной в 1873 году. Это приводит к следующему необходимому и достаточному утверждению о том, что должно быть у конечного графа, чтобы быть эйлеровым: Неориентированный связный конечный граф является эйлеровым тогда и только тогда, когда каждая вершина графа G имеет четную степень. [20]
Следующий результат был доказан Вебленом в 1912 году: неориентированный связный граф является эйлеровым тогда и только тогда, когда он является несвязным объединением некоторых циклов. [20]
Хирхольцер разработал линейный алгоритм построения эйлерова тура в неориентированном графе.
Направленные эйлеровы графы
Возможно иметь направленный граф , который имеет все четные исходящие степени, но не является эйлеровым. Поскольку эйлеров цикл покидает вершину столько же раз, сколько входит в нее, необходимым условием для существования эйлерова цикла является равенство входящей и исходящей степеней в каждой вершине. Очевидно, что связность также необходима. Кёниг доказал, что эти условия также достаточны. То есть направленный граф является эйлеровым тогда и только тогда, когда он связен, а входящая и исходящая степени равны в каждой вершине. [20]
В этой теореме не имеет значения, означает ли «связный» «слабо связанный» или «сильно связанный», поскольку для эйлеровых графов они эквивалентны.
Линейный алгоритм времени Хирхольцера для построения эйлерова тура применим также к ориентированным графам. [20]
Смешанные эйлеровы графы
Все смешанные графы , которые являются одновременно четными и симметричными, гарантированно являются эйлеровыми. Однако это не является необходимым условием, поскольку можно построить несимметричный четный граф, который является эйлеровым. [20]
В 1962 году в своей книге «Потоки в сетях» Форд и Фулкерсон доказали необходимое и достаточное условие для того, чтобы граф был эйлеровым, а именно, что каждая вершина должна быть четной и удовлетворять условию баланса, т. е. для каждого подмножества вершин S разница между числом дуг, выходящих из S и входящих в S, должна быть меньше или равна числу ребер, инцидентных S. [20]
Процесс проверки того, является ли смешанный граф эйлеровым, сложнее, чем проверка того, является ли неориентированный или ориентированный граф эйлеровым, поскольку условие сбалансированного множества касается каждого возможного подмножества вершин.
Лемма о рукопожатии , доказанная Эйлером в его оригинальной статье, показывающая, что любой неориентированный связный граф имеет четное число вершин нечетной степени.
Гамильтонов путь — путь, который посещает каждую вершину ровно один раз.
Задача проверки маршрута , поиск кратчайшего пути, проходящего через все ребра, возможно, повторяющегося, если эйлерова пути не существует.
Теорема Веблена , которая утверждает, что графы с четной степенью вершин можно разбить на циклы, не пересекающиеся по ребрам, независимо от их связности.
Примечания
^ ab Некоторые люди оставляют термины путь и цикл для обозначения несамопересекающегося пути и цикла. (Потенциально) самопересекающийся путь известен как тропа или открытый путь ; и (потенциально) самопересекающийся цикл, контур или замкнутый путь . Этой двусмысленности можно избежать, используя термины эйлеров путь и эйлеров контур, когда самопересечение разрешено.
^ Флери, Пьер-Анри (1883), «Две проблемы геометрии ситуации», Journal de mathématiques élémentaires , 2-я серия. (на французском языке), 2 : 257–261..
^ Тарьян, Р. Эндре (1974), «Заметка о поиске мостов графа», Information Processing Letters , 2 (6): 160–161, doi :10.1016/0020-0190(74)90003-9, MR 0349483.
^ Флейшнер, Герберт (1991), «X.1 Алгоритмы для эйлеровых путей», Эйлеровы графы и смежные темы: Часть 1, Том 2, Анналы дискретной математики, т. 50, Elsevier, стр. X.1–13, ISBN978-0-444-89110-5.
^ Брайтвелл и Винклер , «Заметка о подсчете эйлеровых цепей», 2004.
^ Брендан Маккей и Роберт В. Робинсон, Асимптотическое перечисление эйлеровых цепей в полном графе, Combinatorica , 10 (1995), № 4, 367–377.
^ М. И. Исаев (2009). «Асимптотическое число эйлеровых циклов в полных двудольных графах». Труды 52-й конференции МФТИ . М.: 111–114.
^ Певзнер, Павел А.; Тан, Хайсю; Уотерман, Майкл С. (2001). «Подход Эйлерова следа к сборке фрагментов ДНК». Труды Национальной академии наук Соединенных Штатов Америки . 98 (17): 9748–9753. Bibcode : 2001PNAS ...98.9748P. doi : 10.1073/pnas.171285098 . PMC 55524. PMID 11504945.
^ Рой, Кунтал (2007). «Оптимальное упорядочение логических вентилей КМОП с использованием подхода Эйлера: некоторые идеи и объяснения». Журнал вычислительной техники и информационных технологий . 15 (1): 85–92. doi : 10.2498/cit.1000731 .
^ Беркман, Омер; Вишкин, Узи (апрель 1994 г.). «Поиск предков уровня в деревьях». J. Comput. Syst. Sci . 2. 48 (2): 214–230. doi :10.1016/S0022-0000(05)80002-9.
^ Сэвидж, Карла (январь 1997 г.). «Обзор комбинаторных кодов Грея». SIAM Review . 39 (4): 605–629. doi :10.1137/S0036144595295272. ISSN 0036-1445.
^ Комьят, Питер (2013), «Работа Эрдеша над бесконечными графами», столетие Эрдеша , Bolyai Soc. Математика. Студ., вып. 25, Янош Бояи Матем. Soc., Будапешт, стр. 325–345, doi :10.1007/978-3-642-39286-3_11, MR 3203602.
^ Боллобаш, Бела (1998), Современная теория графов, Graduate Texts in Mathematics, т. 184, Springer-Verlag, Нью-Йорк, стр. 20, doi :10.1007/978-1-4612-0619-4, ISBN0-387-98488-7, г-н 1633290.
^ abcdef Corberán, Ángel; Laporte, Gilbert, ред. (2015). Arc Routing: Problems, Methods, and Applications. Серия MOS-SIAM по оптимизации. SIAM. doi :10.1137/1.9781611973679. ISBN978-1-61197-366-2. Получено 19 августа 2022 г. .
Библиография
Эрдыш, Пал ; Грюнвальд, Тибор ; Вайсфельд, Эндре (1936), «Végtelen gráfok Euler vonalairól» [Об эйлеровых линиях бесконечных графов] (PDF) , Матем. Исправить. Лапок (на венгерском языке), 43 : 129–140.. Переводится как Эрдеш, П .; Грюнвальд, Т. ; Вассоньи, Э. (1938), «Über Euler-Linien unendlicher Graphen» [Об эйлеровых линиях в бесконечных графах] (PDF) , J. Math. Физ. (на немецком языке), 17 (1–4): 59–75, doi : 10.1002/sapm193817159.
Эйлер Л., «Решение проблем и геометрическое положение, соответствующее месту», Комментарий. Академии наук. И. Петрополитанае 8 (1736), 128–140.
Хирхольцер, Карл (1873), «Ueber die Möglichkeit, einen Linienzug ohne Wiederholung und ohne Unterbrechung zu umfahren», Mathematische Annalen , 6 (1): 30–32, doi : 10.1007/BF01442866, S2CID 119885172.
Лукас Э., Récréations Mathématiques IV , Париж, 1921.
Флери, «Две проблемы геометрии ситуации», Journal de Mathematiques Elementaires (1883), 257–261.