Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lectures / Лекція 28. Ейлерові та гамільтонові цикли.doc
Скачиваний:
158
Добавлен:
12.05.2015
Размер:
143.87 Кб
Скачать

167

Основи Дискретної Математики :: Ейлерові та гамільтонові цикли

Лекція 28. Ейлерові та гамільтонові цикли

28.1. Ейлерів цикл

У першій лекції цього розділу (лекція 21) ми розглядали приклади задач на графах. І серед них – задачу про кенігсберзькі мости. Нами згадувалось ім’я Ейлера – видатного математика, який показав, що ця задачі не має розв’язків. Задачу про кенігсберзькі мости можна сформулювати наступним чином в термінах теорії графів: чи існує в мультиграфі G цикл, який містить усі ребра цього мультиграфа? Нагадаємо, що в циклі ребра не повторюються, а вершини можуть повторюватись.

Означення 28.1. Ейлеровим циклом у зв’язаному графі G називають цикл, який містить усі ребра графа. Ейлеровим шляхом - маршрут, що містить усі ребра графа.

На рис. 28.1 зображені три графи. Грай G1 має ейлерів цикл, наприклад, a, e, d, c, e, b, a; граф G3 не має ейлеревого циклу, але має ейлерів маршрут: a, d, c, e, b, c, a, b; граф G2 не має ні ейлерового циклу, ні ейлерового ланцюгу.

G1

G2

G3

Рис. 28.1.

Існує простий критерій (необхідна й достатня умова) для виявлення того, чи має граф ейлерів цикл.

Теорема 28.1. Зв’язаний граф або мультиграф G має ейлерів цикл тоді й тільки тоді, коли степені всіх його вершин парні.

Доведення. (Необхідність). Нехай у графі G існує ейлерів цикл. Тоді він проходить через кожну вершину графа та входить до неї по одному ребру, а виходить по іншому. Це означає, що кожна вершина інцидентна парній кількості ребер ейлерового циклу. Оскільки такий цикл містить усі ребра графа G, то звідси випливає парність степенів усіх його вершин.

Рис. 28.2.

(Достатність). Припустимо тепер, що всі вершини графа G мають парний степінь. Почнемо маршрут P1 із довільної вершини v1 і продовжимо його, наскільки це можливо, вибираючи щоразу нове ребро. Позаяк степені всіх вершин парні, то, увійшовши в будь-яку вершину, відмінну від v1, ми завжди маємо можливість вийти з неї через іще не пройдене ребро. Тому шлях P1 завершиться у вершині v1, тобто P1 обов’язково виявиться циклом. Якщо з’ясується, що маршрут P1 містить усі ребра графа G, то це ейлерів цикл. У протилежному випадку вилучимо з G всі ребра циклу P1 і всі вершини, інцидентні лише вилученим ребрам. Отримаємо якийсь зв’язаний граф G1. Оскільки P1 та G мають вершини лише парних степенів, то, очевидно, і граф G1, матиме цю властивість. Окрім того, позаяк граф G зв’язаний, то графи P1 і G1 мають принаймні одну спільну вершину v2. Тепер із вершини v2 побудуємо цикл P2 в графі G1аналогічно до того, як ми будували цикл P1 у графі G. Цикл P2 вставимо в цикл P1 на місце вершини v2. Одержимо цикл P3. Описані побудови показано на рис. 28.2.

Цикл P3 = v1,v4,v3,P2,v1=v1,v4,v3,v2,v5,v6,v2,v1 ейлерів. Якби він виявився не ейлеровим, то потрібно продовжувати аналогічні побудови й отримати ще більший цикл. Цей процес закінчиться побудовою ейлерового циклу. Зазначимо, що доведення достатності має конструктивний характер: подано алгоритм побудови ейлерового циклу. ►

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

Алгоритм Флері побудови ейлерового циклу

Робота алгоритму полягає в нумерації ребер у процесі побудови ейлерового циклу.

  1. Починаємо з довільної вершини u та присвоюємо довільному ребру {u, b} номер 1. Викреслюємо ребро {u, b} й переходимо у вершину v.

  2. Нехай v – вершина, у яку ми перейшли на попередньому кроці, k–останній присвоєний номер. Вибираємо довільне ребро, інцидентне вершині v, причому міст вибираємо лише тоді, коли немає інших можливостей. Присвоюємо вибраному ребру номер (k+1) і викреслюємо його.

  3. Якщо всі ребра графа викреслено та пронумеровано – ці номери задають послідовність ребер в ейлеревому циклі. Інакше перейти на крок 2.

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

Рис. 28.3.

Теорема 28.2. Зв’язаний мультиграф має ейлерів маршрут, але не має ейлерового циклу тоді й лише тоді, коли він має точно дві вершини непарного степеня.

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

Означення 28.2. Граф, який має ейлерів цикл називають ейлеровим графом.

Треба відмітити той факт, що ейлерових графів майже не існує.

Означення 28.3. Ейлеровим циклом у слабко зв’язаному орієнтованому графі або мультиграфі називають орієнтований цикл, який містить усі дуги графа.

Теорема 28.3.Орієнтований слабко зв’язаний граф або мультиграф має ейлерів цикл тоді й тільки тоді, коли напівстепінь входу кожної вершини дорівнює її напівстепеню виходу.