Урок 06. Пути в графе и количество путей

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

Понадобятся тетрадь и карандаш. Каждый граф сначала нарисуй в тетради по списку рёбер: так задачу проще понять.

Все уроки · Перейти к заданиям

Материалы к уроку

Главное

Повторим граф одной строкой. Города — это вершины, дороги между ними — рёбра. Если дорога односторонняя, рисуют стрелку: так граф становится ориентированным. Запись А→Б значит «можно ехать из А в Б». Обратно по этой стрелке ехать нельзя.

Что такое путь. Путь — это последовательность вершин, в которой каждая следующая вершина связана с предыдущей ребром (а в ориентированном графе — стрелкой, идущей вперёд). Например, А → Б → В — путь из трёх вершин. Его длина — число рёбер, то есть здесь 2.

Два пути считаются разными, если у них разные последовательности вершин. Путь А → В и путь А → Б → В — это два разных пути из А в В.

Правило умножения. Если из А в Б ведут 3 дороги, а из Б в В — 2 дороги, то из А в В через Б можно проехать способами. Почему: для каждой из 3 дорог первой части есть 2 варианта второй части, всего комбинаций. Умножаем, когда части пути идут одна за другой.

Правило сложения. Если до В можно добраться либо через Б (4 способа), либо через Г (3 способа), то всего способов. Складываем, когда варианты взаимоисключающие: выбрана либо одна дорога, либо другая.

Метод подписей у вершин. Это главный способ. Число путей из старта А в вершину X обозначим . Правила:

  1. Для старта : добраться из А в А можно одним способом — никуда не идти.
  2. Для любой другой вершины X: — сумма подписей всех вершин, из которых идёт стрелка в X.

Почему сумма. Последний шаг любого пути в X — это одна из стрелок, входящих в X. Если последняя стрелка идёт из Y, то перед ней нужно дойти до Y, и таких способов . Разные входящие стрелки дают разные пути, поэтому результаты складываем.

Порядок: подписывай вершины так, чтобы все вершины, из которых в неё идут стрелки, уже имели подписи. В учебных графах это обычно порядок А, Б, В, Г…

Пример. Рёбра: А→Б, А→В, Б→В, Б→Г, В→Г.

ВершинаОткуда идут стрелки в вершинуПодпись
Астарт1
БА1
ВА и Б1 + 1 = 2
ГБ и В1 + 2 = 3

Ответ: из А в Г ведут 3 пути. Проверка перечислением: А-Б-Г, А-Б-В-Г, А-В-Г.

Путь через вершину и не через вершину. Путей через вершину X равно , где — число путей из старта в X, а — число путей из X в финиш. Путей, которые не проходят через X, равно «все пути минус пути через X».

Неориентированный граф. Рёбра можно проходить в обе стороны, метод подписей здесь не работает: можно ходить по кругу. Поэтому вершину в пути повторять нельзя, а пути выписывают перебором: от текущей вершины идёшь по каждому ещё не пройденному ребру, как по ветвям дерева.

Связь с матрицей смежности (для интереса). Число путей из X в Y длиной ровно 2 равно сумме по всем вершинам : берём строку X и столбец Y и перемножаем их по ячейкам. Для примера выше строка А — (0, 1, 1, 0), столбец Г — (0, 1, 1, 0). Получаем пути длиной 2: А-Б-Г и А-В-Г.

Наглядная схема

flowchart LR
    A["А: 1"] --> B["Б: 1"]
    A --> V["В: 2"]
    B --> V
    B --> G["Г: 3"]
    V --> G
    classDef startNode fill:#d3f9d8,stroke:#2b8a3e,color:#212529;
    classDef finishNode fill:#d0ebff,stroke:#1971c2,color:#212529;
    class A startNode;
    class G finishNode;

Тренировка по шагам

Нарисуй граф в тетради. Потом подписывай вершины по порядку и каждый раз проверяй, какие стрелки в неё входят.

Шаг 1. Что такое путь

Рёбра ориентированного графа: А→Б, Б→В, А→В. Выпиши все пути из А в В.

Ответ ученика

Запиши пути как последовательности вершин.

Шаг 2. Длина пути

Какова длина каждого из путей из шага 1?

Ответ ученика

Длина — число рёбер, а не вершин.

Шаг 3. Правило умножения

Из А в Б ведут 3 дороги, из Б в В ведут 2 дороги. Сколько способов проехать из А в В через Б?

Ответ ученика

Подумай, сколько вариантов второй части для каждой дороги первой.

Шаг 4. Правило сложения

Из А в В можно проехать через Б или через Г. Из А в Б ведут 2 дороги, из Б в В — 2 дороги. Из А в Г ведёт 1 дорога, из Г в В — 3 дороги. Сколько всего способов?

Ответ ученика

Сначала посчитай каждый маршрут отдельно, потом сложи.

Шаг 5. Метод подписей

Рёбра: А→Б, А→В, Б→В, Б→Г, В→Г. Сколько путей из А в Г? Сделай таблицу подписей.

Ответ ученика

Начни с N(А) = 1 и подписывай по порядку.

Шаг 6. Другой граф

Рёбра: А→Б, А→В, Б→Г, В→Г, В→Д, Г→Е, Д→Е. Сколько путей из А в Е?

Ответ ученика

Подпиши А, Б, В, Г, Д, Е по порядку.

Шаг 7. Подписи растут быстро

Рёбра: А→Б, А→В, Б→В, Б→Г, В→Г, В→Д, Г→Д, Г→Е, Д→Е. Сколько путей из А в Е?

Ответ ученика

Выписывать все пути здесь неудобно — используй подписи.

Шаг 8. Проверка перечислением

Для графа из шага 5 выпиши все пути из А в Г и убедись, что их 3.

Ответ ученика

Начни с А и на каждой развилке иди по всем стрелкам.

Шаг 9. Путь через вершину

В графе из шага 7 найди число путей из А в Е, которые проходят через вершину Г.

Ответ ученика

Умножь число путей до Г на число путей от Г до Е.

Шаг 10. Путь не через вершину

В графе из шага 7 сколько путей из А в Е не проходят через вершину В?

Ответ ученика

Из всех путей вычти пути через В.

Шаг 11. Неориентированный граф

Неориентированные рёбра: А—Б, А—В, Б—В, Б—Г, В—Г. Сколько путей из А в Г, если вершины повторять нельзя?

Ответ ученика

Выпиши пути перебором, как ветви дерева.

Шаг 12. Исправь ошибку

Рёбра: А→Б, Б→В, А→В, В→Г, Б→Г. Ученик написал: «Рёбер 5, значит, из А в Г ведут 5 путей». Найди ошибку и найди ответ правильно.

Ответ ученика

Число рёбер и число путей — разные величины.

Шаг 13. Граф по матрице

Дана двоичная матрица ориентированного графа. Строка — «откуда», столбец — «куда». Восстанови стрелки и найди число путей из А в Г.

АБВГ
А0110
Б0011
В0001
Г0000

Ответ ученика

Единица в строке X и столбце Y означает стрелку X→Y.

Шаг 14. Вершина без входящих стрелок

Рёбра: А→Б, Б→В, Г→В, В→Д. Сколько путей из А в Д? Чему равна подпись N(Г)?

Ответ ученика

Считаем только пути, которые начинаются в А.

Шаг 15. Через вершину и не через другую

В графе из шага 7 (А→Б, А→В, Б→В, Б→Г, В→Г, В→Д, Г→Д, Г→Е, Д→Е) сколько путей из А в Е проходят через Б и не проходят через Г?

Ответ ученика

Выпиши пути, проходящие через Б, и вычеркни те, где есть Г.

Шаг 16. Построй граф сам

Нарисуй ориентированный граф из четырёх вершин А, Б, В, Г, в котором из А в Г ровно 4 пути. Проверь подписями.

Ответ ученика

Можно добавить прямую стрелку А→Г и стрелки между Б и В.

Как оценить результат

Можно переходить дальше, если не менее 13 из 16 шагов выполнены верно, ученик отличает путь от ребра, объясняет, когда числа умножают, а когда складывают, подписывает вершины по порядку и сам проверяет результат перечислением на небольшом графе.

Вопросы ученика

Предыдущий урок · Следующий урок: графы по таблице