🚀 Начать

← к каталогу методов

E6b Графы: обходы, эйлеровы пути

Раздел: E · Классы: 9, 10, 11 · Сложность: 4/5

Рекомендуется для: ВсОШ заключ., Турнир городов

📖 Определение

Идея метода: многие задачи о движении по маршруту, о рисовании фигуры «не отрывая карандаша» или о прохождении всех рёбер ровно по одному разу сводятся к вопросу о существовании эйлерова пути или цикла в соответствующем графе.

Метод состоит в том, чтобы:
1. Перевести условие задачи в язык теории графов: объекты → вершины, связи/переходы → рёбра.
2. Применить критерий Эйлера: граф имеет эйлеров цикл тогда и только тогда, когда он связен и все вершины имеют чётную степень; эйлеров путь (без возврата в начало) существует тогда и только тогда, когда ровно 2 вершины имеют нечётную степень.

Аналогия из жизни: представьте карту улиц, где нужно объехать каждую улицу ровно один раз — вопрос «можно ли это сделать» решается подсчётом количества перекрёстков с нечётным числом улиц.

Метод важен тем, что критерий Эйлера даёт точный ответ (да/нет) из одного числового признака и часто позволяет сразу снять вопрос о существовании без перебора конкретных маршрутов.

📐 Главные теоремы и формулы

  • Теорема Эйлера (эйлеров цикл): Связный граф $G$ содержит эйлеров цикл (замкнутый обход, проходящий по каждому ребру ровно один раз) тогда и только тогда, когда степень каждой вершины чётна: $\deg(v) \equiv 0 \pmod{2}$ для всех $v$. Условие: граф связен и без изолированных вершин. Когда использовать: задача о замкнутом маршруте через все рёбра.

  • Теорема об эйлеровом пути: В связном графе $G$ существует эйлеров путь (незамкнутый обход всех рёбер) тогда и только тогда, когда ровно 2 вершины имеют нечётную степень. Путь начинается в одной из них и заканчивается в другой. Когда использовать: задача о рисовании «одним росчерком».

  • Лемма о рукопожатиях: $\sum_{v} \deg(v) = 2|E|$ — сумма степеней вершин равна удвоенному числу рёбер. Следствие: число вершин нечётной степени всегда чётно. Когда использовать: чтобы убедиться, что граф вообще может удовлетворять условию задачи.

  • Критерий связности: граф связен, если между любыми двумя вершинами есть путь. Для применения теоремы Эйлера связность обязательна. Когда использовать: до применения теоремы Эйлера проверьте, что граф не распадается на компоненты.

💡 Типичные техники

  • Кодирование задачи в граф: чётко определите, что является вершинами (клетки, перекрёстки, состояния), а что — рёбрами (переходы, рёбра фигуры, улицы).

  • Подсчёт степеней вершин: для каждой вершины посчитайте число инцидентных рёбер. Вершины с нечётной степенью — «проблемные».

  • Добавление фиктивного ребра: если эйлерова цикла нет, но нужен эйлеров путь — добавьте ребро между двумя вершинами нечётной степени и ищите цикл.

  • Анализ компонент связности: проверьте, что граф связен (или что все рёбра лежат в одной компоненте); без этого теорема Эйлера не применима.

  • Доказательство невозможности: если вершин нечётной степени более 2 — эйлеров путь не существует. Это часто единственный вывод, который требуется.

  • Алгоритм Флёри: для построения конкретного эйлерова пути — двигайтесь по любому ребру, избегая «мостов» (рёбер, удаление которых разъединяет граф), пока не пройдёте все рёбра.

🎯 Когда применять (триггеры)

Поверхностные признаки (что буквально написано):
- «Нарисовать фигуру, не отрывая карандаша».
- «Пройти по каждой дороге/ребру ровно один раз».
- «Можно ли обойти все клетки/узлы, совершая переходы по правилу...».

Структурные признаки (форма выражения, объекты):
- Задача задаёт набор объектов и переходов между ними, которые нужно использовать ровно по одному разу.
- Фигура или граф с явно выраженными узлами (вершинами) и соединениями (рёбрами).
- Сетка, карта, лабиринт, где движение идёт по рёбрам.

Цель задачи (что от тебя хотят):
- Доказать возможность или невозможность такого обхода.
- Найти конкретный маршрут (тогда нужно строить эйлеров путь явно).
- Найти минимальное число «повторных» рёбер, если эйлеров путь невозможен.

✅ Разобранный пример

Задача 1. Кёнигсбергские мосты (классическая)

Условие: Город разделён рекой на 4 части: $A$, $B$, $C$, $D$. Между ними 7 мостов: $AB$ — 2 моста, $AC$ — 1, $AD$ — 1, $BC$ — 1, $BD$ — 1, $CD$ — 1. Можно ли обойти все мосты, пройдя каждый ровно один раз?

Источник: классическая задача Эйлера, 1736

Как думать (рассуждение ученика$):
1. $Что вижу? Нужно пройти каждый мост ровно один раз — это эйлеров путь в графе, где берега = вершины, мосты = рёбра.$2. *$Первый ход: посчитаю степени вершин: $\deg(A) = 2+1+1 = 4$, $\deg(B) = 2+1+1 = 4$, $\deg(C) = 1+1+1 = 3$, $\deg(D) = 1+1+1 = 3$.$3. *$Ключевая идея: вершин с нечётной степенью — 2 ($C$ и $D$). Значит, эйлеров путь существует (от $C$ до $D$ или наоборот).

Подождём — у Эйлера 7 мостов, пересчитаем: $A$-$B$ два моста, итого $\deg(A)=4$ (AB×2, AC, AD), $\deg(B)=4$ (AB×2, BC, BD), $\deg(C)=3$ (AC, BC, CD), $\deg(D)=3$ (AD, BD, CD). Вершин с нечётной степенью ровно 2 — значит эйлеров путь существует (исторически у Эйлера было 4 нечётных вершины, но данная модификация с 7 мостами как выше допускает путь$).

$Историческая справка: у Эйлера было 7 мостов с другим распределением, там все 4 вершины нечётной степени — путь невозможен.

Ответ: При данном расположении мостов эйлеров путь существует.

Что главное: степени вершин — единственное, что нужно посчитать.


Задача 2. Рисование фигуры одним движением

Условие: Дана фигура — граф, у которого 6 вершин со степенями 3, 3, 4, 4, 2, 2. Можно ли нарисовать её одним непрерывным движением карандаша, не отрывая его от бумаги и не проводя ни одно ребро дважды?

Источник: тренировочная

Как думать (рассуждение ученика$):
1. $Что вижу? «Одним движением, не повторяя» — это эйлеров путь.$2. *$Первый ход: считаю вершины нечётной степени: степени 3, 3, 4, 4, 2, 2 — нечётные степени у двух вершин (обе со степенью $3).
3.
$Применяю теорему: ровно 2 вершины нечётной степени → эйлеров путь существует, начиная из одной вершины степени 3 и заканчивая в другой.$4. *$Проверяю связность: граф связен по условию.

Решение: Число вершин нечётной степени равно 2. По теореме об эйлеровом пути: если граф связен и имеет ровно 2 вершины нечётной степени, то эйлеров путь существует. Граф связен (по условию). Следовательно, нарисовать фигуру одним движением можно — начав из одной вершины степени 3 и закончив в другой.

Ответ: Да, можно.

Что главное: не нужно строить явный маршрут — достаточно подсчитать вершины нечётной степени.

⚠️ Подводные камни

  • Ошибка: не проверяют связность графа. Теорема Эйлера требует связности. Если граф распадается на 2 компоненты, даже при нулевом числе нечётных вершин эйлерова цикла нет. Как избежать: всегда проверяйте, можно ли попасть из любой вершины в любую другую.

  • Ошибка: путают эйлеров путь и гамильтонов путь. Эйлеров путь — через все РЁБРА ровно по одному разу. Гамильтонов — через все ВЕРШИНЫ. Это разные задачи. Как избежать: перечитайте условие: что нужно пройти — рёбра или вершины?

  • Ошибка: неправильно считают степени при мультирёбрах. Если между вершинами $A$ и $B$ два ребра, они дают вклад 2 в степень каждой из $A$ и $B$. Как избежать: для каждого ребра прибавляйте 1 к степени обоих его концов.

  • Ошибка: забывают, что путь (не цикл) допускает ровно 2 нечётные вершины. Часто пишут «если есть нечётные вершины — эйлерова обхода нет», не различая цикл и путь. Как избежать: запомните: цикл — 0 нечётных вершин; путь — ровно 2.

  • Ошибка: не учитывают изолированные вершины. Вершина степени 0 — не проблема для эйлерова цикла по нечётности, но нарушает связность. Как избежать: изолированные вершины исключить из рассмотрения или учесть при проверке связности.

---
Ожидание... 1