BFS

Материал из Public ATP Wiki
Версия от 02:34, 15 мая 2020; Algocourselecturenotes (обсуждение | вклад) (Алгоритм)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Breadth-first search (сокр. BFS, рус. Поиск в ширину, Обход в ширину) - один из алгоритмов обхода графа. Является довольно простым и эффективным. Часто используется для поиска кратчайшего пути в графе.

Задача

Пусть задан неориентированный граф G = (V, E). Пусть все ребра имеют одинаковый вес, равный, например, 1. Пусть также задана некоторая начальная вершина S. Пусть расстояние между вершинами - сумма весов рёбер, по которым нужно пройти, чтобы попасть из одной вершины в другую. И пусть, наконец, нужно найти кратчайшее расстояние от начальной вершины до всех остальных. Решим задачу, используя BFS.

Алгоритм

Лемма I

Кратчайшие пути в графе образуют дерево.

Доказательство: