Розуміння евлерійського контуру в теорії графа

У героїнському контурі є закрита прогулянка, яка переходить на кожен край графіка, точно один раз і повертається до початкової вершини. Концепція походить від відомих семи міст Königsberg задачі, встановлених Леонардом Euler 1736. Euler довели, що така схема існує тільки якщо кожен вершин у графі має навіть ступінь і граф підключений (підписання ізольованих вершин). Цей фундаментальний результат укладав основу для теорії графіки і залишається вирішальним в мережевому аналізі, проектування схеми та розчісної оптимізації.

Для стану він формально: Let G = (V], E]) бути непрямим графом. Eulerian схема існує, якщо і тільки якщо кожен вершин v]]] direct ]V має навіть ступінь, і графік підключений при розгляді тільки вершини з нетермо-ступом. Для рівних, що не є одностороннім, що є неоднорідними, що не є неоднорідними, що

Що таке Алгоритм Hierholzer?

Алгоритм Hierholzer, опублікований німецькою математикою Карлом Хіерхолзером 1873 року, є ефективним методом побудови Eulerian схеми при необхідності влаштовується. Він будує схему, знаходячи ряд циклів і зважуючи їх. Алгоритм працює в лінійному часі O(E]) по відношенню до кількості країв, що робить його оптимальним для щільного і спаринського графіків так.

Ключові поняття

  • Виявлення діжок: Початок з вершини, слідувати невикористаними краями до повернення до початкового вершини. Це формує простий цикл.
  • Мергійні цикли: Коли вершина на поточному контурі ще не з'яві краї, новий цикл утворюється з цього вершини і вставляється в контур.
  • Вилучення ел. Як використовуються краї, вони позначені або видалені, щоб уникнути їх перевізування.

Покроковий опис альгорітему Hierholzer

Алгоритм можна реалізовувати прямо або ітеративно. Ядро ідея полягає в тому, щоб побудувати схему, багаторазово ширивши під-замикання. Нижче наведено детальне розбиття.

Крок 1: Виберіть початок Vertex

Виберіть будь-який вершину з принаймні одним краєм. Оскільки графік підключений і всі ступені навіть, будь-який вершина буде працювати. Зазвичай алгоритм починається в вершини v.

Крок 2: Перевернути цикл

З поточного вершини слідувати будь-яким невикористаним краєм сусіду. Продовжувати переміщення по невикористаних краях, розмітивши кожен край, як використовується, поки ви повернетеся до початкової вершини. Це виробляє цикл C]. Якщо цикл містить всі краї графіка, алгоритм припиняється – у нас є Eulerian схема.

Крок 3: Знайти Вертики з невикористаними краями

Сканування поточного контуру для будь-якого вершини u], який ще має інцидент невикористаних країв. Якщо нікому не існує, алгоритм завершено. В іншому випадку, дайте u], такий вершинний.

Крок 4: Створіть новий цикл u

Початок C′], повторення процесу циклу, що використовується в невикористаних краях. Це створює новий цикл C′], який починається і закінчується u.

Крок 5: Злийте новий цикл у основну схему

Вставте C′] в основну схему на позиції u]]. Отримана прогулянка все ще є контуром (закрито) і охоплює всі краї, які відвідали так далеко. Повернутися до кроку 3.

Оскільки кожен вершина має навіть ступінь, процес ніколи не отримує застряг: коли ви вводите вершину, завжди буде невикористаний край, щоб залишити, поки ступінь вершини стає нульовим. Алгоритм гарантує, що фінальна прогулянка включає в себе кожен край точно один раз.

Приклад: Побудова Євлерійського контуру

3D-типи 3D-A-E-C-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-D-

Альгоритм гонщика:

  • Почати з вершини 1. Слідувати краях: 1‐2 (use), 2‐3 (use), тепер о 3. Виберіть невикористаний край 3‐4 (use), 4‐5 (use), 5‐3 (use). Повернутися до 3, але початкова початкова точка була 1. Ми ще не повернулися до 1. Насправді алгоритм потрібно сформувати цикл, який повертається до початкової вершини. Давайте слід правильно: починаючи від 1, перейдіть 1‐2, 2‐3, тепер від 3 ми можемо піти 3‐1 (невикористано) – що дає цикл 1‐2‐3‐3‐1. Після цього краю залишили: 3‐ 4,3‐ 4,3
  • Scan C1: vertex 3 невикористані краї. Початок нового циклу 3‐4, 4‐5, 5‐3. Цикл C2 = 3‐4‐5‐3.
  • Займіть C2 в C1 в вершині 3: вийшов контур: 1‐2‐3‐4‐5‐3‐3‐3‐3‐1. Всі краї, які використовуються, схема є Eulerian.

Цей приклад ілюструє елегантність алгоритму: цикли відкриті і поєднуються безшовно.

Розгляд та оцінка термінів реалізації

Hierholzer Algorithm працює в O V + E]]) час при використанні представлення списку оголошень та ефективних структур даних для видалення краю (наприклад, використання ітераторів або пов'язаних списків). Алгоритм оптимально підходить, оскільки кожен край обробляється точно один раз. Наклади пам'яті O([V[[F:10[F:10[F:]

Для керованих графіків, тим самим підходом графіка є Євген (у ембріаті, що дорівнює аутсоліду на кожному вершині). Вимоги алгоритму навіть перекладається на спрямований випадок, а також.

Порівняння алгоритму «Флері»

Цей алгоритм може бути адаптований до його використання. Проте, якщо він не має значення, то він може бути використаний для його використання.

Застосування Алгоритму Hierholzer

Уміння знайти евлерійський контур ефективно має багато реальних ‐world-застосувань.

Китайський постман Проблем

У китайській задачі постмана (ройот-інспекція), мета полягає в пошуку найбільш коротких замкнених ходів, які покриває кожен край принаймні один раз. Для графіків, які вже є Євгеном, розчин є просто Eulerian схема. алгоритм Hierholzer забезпечує цей контур. Для не‐Eulerian графіків проблема знижує до занурення країв, щоб зробити всі рівні навіть, а потім застосувати Hierholzer's.

Розробка та підтримка мережі

У дизайні ефективних маршрутів для вуличних шпонів, збору сміття та передачі мережевих пакетів, де кожен зв'язок повинен бути перерізаний точно один раз. Алгоритм допомагає мінімізувати надмірні подорожі.

Асамблея ДНК Фрагмента

У обчислювальній біології, де Бруїн графічний підхід до складання геномів спирається на пошук евлерійських шляхів або схем через k‐mer графіки. Алгоритм Hierholzer є основною складовою багатьох колекціонерів, що дозволяє реконструкцію контигузних послідовностей з коротких читань.

Комп'ютерна графіка та Maze Generation

У генеруючих вражень використовуються стежки з генеруючими вадами та в певних алгоритмах малювання графа, де потрібно малювати краю без підйому ручки. Алгоритм забезпечує оптимальне будівництво.

Інтегроване тестування схем

У дуже великий-Scale Integration (VLSI) дизайн, тестування всіх підключень можна моделювати як задача Eulerian схема, мінімізуючий рух тестера.

Подальші читання та зовнішні ресурси

Для поглиблення розуміння алгоритму Евлерійського контуру та алгоритму Хіерхолзера рекомендується наступні ресурси:

Висновок

Алгоритм Hierholzer залишається вектором графічної траверсальної для його витонченості, швидкості та широкого застосування. Розкладання проблеми в пошуку та зведення циклів, це забезпечує прямий і оптимальний рішення для побудови Eulerian ланцюгів. Чи є ви проектування мережевих маршрутів, збір геномів або вирішення головоломок, розуміння цього алгоритму оснащено потужним інструментом для обробки графіків з навіть ‐degree вершинами. Його лінійна часова складність і проста рекурсивна структура роблять його улюбленим серед алгоритмів ентузіастів і практикуючих практик.