Информатика · тема 4 из 13 · ОГЭ № 3 · ЕГЭ № 1, 13

Графы, таблицы и подсчёт путей

Как читать схему дорог и таблицу смежности, искать кратчайший путь и считать число путей на схеме без циклов — задания, которые решаются за две минуты, если знать приём.

20 мин чтенияОГЭЕГЭ16 заданий

Коротко

главное за 30 секунд
  1. Граф — вершины и рёбра; степень вершины — число рёбер, выходящих из неё
  2. Сумма степеней всех вершин = 2 × число рёбер
  3. Число путей в схеме без циклов: N(v) = сумма N по всем предшественникам v
  4. Кратчайший путь — алгоритм Дейкстры: уточняйте расстояния до вершин по возрастанию
  5. Соответствие «таблица ↔ граф» находят по степеням вершин и уникальным весам

Что такое граф

Граф состоит из вершин (пунктов) и рёбер (дорог), которые их соединяют. Если у рёбер есть числа — это взвешенный граф (длины дорог, стоимость). Если у рёбер есть направление — граф ориентированный (односторонние дороги).

739456ABCDEF
Взвешенный граф: вершины A–F, числа на рёбрах — длины дорог. Степени: A и B — 3, C и D — 2, E и F — 1
Степень вершины — число рёбер при ней. Сумма степеней = 2 × число рёбер, поэтому вершин нечётной степени всегда чётное число. Дерево — связный граф без циклов; у дерева с $n$ вершинами ровно $n-1$ ребро.
Проверь себя. В графе 9 рёбер. Чему равна сумма степеней всех его вершин?

Ответ: 18

Таблица смежности и соответствие граф ↔ таблица

Граф записывают таблицей: на пересечении строки $i$ и столбца $j$ стоит длина дороги между пунктами $i$ и $j$ (пусто — дороги нет). Таблица симметрична относительно главной диагонали, если дороги двусторонние.

В задании ЕГЭ-1 дан граф с буквами и таблица с номерами; нужно понять, какая цифра — какая буква. Порядок действий:

  1. посчитайте степени вершин в графе и число заполненных клеток в каждой строке таблицы;
  2. вершина с уникальной степенью определяется сразу;
  3. остальные — по соседям уже найденных вершин и по весам.
Если в таблице у пункта ровно одна дорога — это «висячая» вершина; в графе ищите вершину, из которой выходит одно ребро.
ABCDABCDA0110B1010C1101D0010
Рис. 1. Граф и таблица смежности: 1 в клетке — между вершинами есть ребро (таблица симметрична)

Кратчайший путь

Идея алгоритма Дейкстры: у каждой вершины держим лучшую известную длину пути от старта. Берём ближайшую ещё не закрытую вершину, закрываем её и «подтягиваем» соседей: $d(v) = \min(d(v),\ d(u) + w(u,v))$.

Пример. Дороги: AB = 3, AC = 5, BC = 1, BD = 7, CD = 4, CE = 8, DE = 2. Кратчайший путь из A в E.

Старт: $d(A)=0$. Закрываем A: $d(B)=3$, $d(C)=5$. Ближайшая B: $d(C)=\min(5, 3+1)=4$, $d(D)=10$. Ближайшая C: $d(D)=\min(10, 4+4)=8$, $d(E)=12$. Ближайшая D: $d(E)=\min(12, 8+2)=10$. Ответ: 10 (A–B–C–D–E).

Ловушка. Путь с наименьшим числом дорог не обязательно кратчайший: A–C–E имеет всего 2 ребра, но длина 13.

Число путей на схеме без циклов

Пусть дороги односторонние и циклов нет. Число путей из A в вершину $v$ равно сумме чисел путей во все вершины, из которых в $v$ ведёт дорога. Считаем по порядку от A.

Пример. Дороги: А→Б, А→В, Б→Г, В→Г, В→Д, Г→Е, Д→Е, Е→Ж. Число путей из А в Ж.

$N(А)=1$; $N(Б)=1$; $N(В)=1$; $N(Г)=N(Б)+N(В)=2$; $N(Д)=N(В)=1$; $N(Е)=N(Г)+N(Д)=3$; $N(Ж)=3$.

«Через вершину X»: число путей A→X умножить на число путей X→конец. «Не через X»: все пути минус пути через X — или просто удалите X из схемы и пересчитайте.
Проверь себя. В схеме A→B, A→C, B→D, C→D, D→E, D→F, E→G, F→G сколько путей из A в G?

Ответ: 6

АN = 1БN = 1ВN = 1ГN = 2ДN = 2ЕN = 4
Рис. 2. Число путей на схеме без циклов: N(вершины) — сумма N вершин, из которых в неё ведут дороги; N(А) = 1
Практика

Закрепите тему: 16 заданий для ОГЭ и ЕГЭ

От простых к сложным: базовый уровень — 6, повышенный — 7, высокий — 3. Мгновенная проверка, подсказки, подробные решения и тренажёр ошибок.

Решать задания по теме Флеш-карточки