Найти тему
Computer Science

BFS - поиск в ширину

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

С задачей поиска кратчайшего пути справится и DFS но для этого алгоритм должен обойти все пути в графе, которыми соединены вершины.

В свою очередь алгоритму BFS нет необходимости обходить все пути в графе, чтобы найти кратчайший путь между двумя вершинами. Потому что как только с помощью BFS найден путь между двумя вершинами этот путь и является кратчайшим.

На рисунке 1 присутствуют вершины [A, B, C, D, E]. Между вершинами A и B есть два пути. Первый путь [A, C, D, B], второй [A, E, B]. Очевидно [A, E, B] кратчайший путь между A и B.

Рис. 1
Рис. 1

В теории графов основное применение поиска в ширину:

1. Обход всех вершин в графе
2. Поиск кратчайшего пути между вершинами в графе, где все рёбра имеют одинаковый положительный вес.