Obsah

BFS (Breadth-First Search)

Prohledávání do šířky je jeden ze základních algoritmů teorie grafů. Jeho hlavní charakteristikou je, že prozkoumává všechny uzly v aktuální vzdálenosti od startu předtím, než se přesune k uzlům, které jsou o krok dále.

1. Jak BFS funguje?

Algoritmus využívá datovou strukturu fronta (queue) pracující na principu FIFO (First-In, First-Out).

1. Vložte startovní uzel do fronty a označte jej jako navštívený.
2. Dokud není fronta prázdná:
  * Vyjměte uzel z čela fronty.
  * Prozkoumejte všechny jeho sousedy, které jste ještě nenavštívili.
  * Každého takového souseda označte jako navštíveného a vložte jej na konec fronty.

2. Klíčové vlastnosti a výhody

3. Praktické využití

BFS je základem pro mnoho moderních technologií:

4. Srovnání: BFS vs. DFS

Vlastnost BFS (Do šířky) DFS (Do hloubky)
Princip Šíření ve vlnách. Jde co nejdále v jedné větvi.
Datová struktura Fronta (Queue). Zásobník (Stack) / Rekurze.
Hledání cíle Vhodné, pokud je cíl blízko startu. Vhodné, pokud je cíl hluboko v grafu.
Nalezení nejkratší cesty Ano (u neohodnocených grafů). Ne.
Analogie: Představte si, že hledáte klíče v domě. BFS znamená, že nejdříve prohledáte celou podlahu v předsíni, pak všechny plochy v předsíni, a teprve pak jdete do další místnosti. DFS znamená, že vběhnete do kuchyně, otevřete jednu skříňku, v ní krabičku, v ní obálku… a až když tam klíče nejsou, vracíte se zpět.

Zpět na Algoritmy