Обход графа. Поиск в ширину. Алгоритм BFS.
Определение
Обход графа - это процесс посещения всех вершин графа в определённом порядке. Существует несколько способов обхода графа, один из которых - поиск в ширину (Breadth-First Search, BFS)
.
Алгоритм BFS
Поиск в ширину - это алгоритм обхода графа, который посещает все вершины графа, начиная с заданной вершины, и двигается в ширину, то есть посещает все соседние вершины до тех пор, пока не будет достигнута цель или не будет посещена вся графа.
Алгоритм BFS работает следующим образом:
- Создается очередь, в которую добавляется стартовая вершина. Пока очередь не пуста, выполняются следующие шаги:
- Извлекается вершина из очереди.
- Если вершина не была посещена ранее, она помечается как посещенная.
- Все соседние вершины, которые не были посещены ранее, добавляются в очередь
- Алгоритм продолжается до тех пор, пока очередь не будет пуста.
Сложность O(n+m), где n и m - кол-во вершин и ребер соответственно.
Преимущества BFS
- BFS является эффективным алгоритмом для поиска кратчайшего пути в неориентированном графе.
- BFS может быть использован для поиска связанных компонентов в графе.
- BFS может быть использован для поиска циклов в графе.
Недостатки BFS
- BFS может быть медленным для очень больших графов.
- BFS не может быть использован для поиска кратчайшего пути в ориентированном графе.