Математика EN

Тренажёры · Глава 46

Задачи о графах

Степени вершин и лемма о рукопожатиях, можно ли обойти все рёбра по разу, кратчайший путь по алгоритму Дейкстры и формула Эйлера V − E + F = 2.

Как решать

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

По шагам

  1. Степени: сумма степеней равна $2E$, поэтому должна быть чётной. Если нечётна — такого графа нет.
  2. Обход всех рёбер по разу (эйлеров путь): граф связен и нечётных вершин $0$ (можно вернуться в начало) или $2$ (путь от одной нечётной до другой). Иначе нельзя.
  3. Кратчайший путь (Дейкстра): отмечайте вершины по одной — каждый раз ближайшую к старту из неотмеченных — и обновляйте расстояния до её соседей.
  4. Плоский связный граф: $V - E + F = 2$, где грани считаются вместе с внешней.
Число вершин. Число рёбер. Число граней — частей плоскости, включая внешнюю. Пример: $14$ вершин и $29$ рёбер: $F = 2 - 14 + 29 = 17$ граней.

Где ошибаются

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

Пример

Главы курса