Bc. Vojtěch Hordějčuk

„Kdo byl někdy na horách, ví, co je parciální derivace.” - L. Zajíček

Domů » Wiki » Grafové algoritmy » Prohledávání do šířky

Prohledávání do šířky (Breadth-first Search)

Prohledávání do šířky (BFS) je základní grafový algoritmus pro procházení grafu. Tento algoritmus systematicky prochází graf od počátečního uzlu, pro dočasné ukládání nenavštívených uzlů používá frontu.

Pseudokód

  1. Všem uzlům x nastav příznak VISIT(x) = FALSE.
  2. Počátečnímu uzlu s nastav příznak VISIT(x) = TRUE.
  3. Vlož počáteční uzel do fronty.
  4. Vezmi první uzel z fronty a označ jej u.
  5. Každý uzel v, do kterého vede hrana z uzlu u a jeho příznak VISIT(v) je roven FALSE, přidej na konec fronty a změň jeho příznak VISIT(v) = TRUE.
  6. Krok 4 opakuj tak dlouho, dokud není fronta prázdná.

Asymptotická složitost

Asymptotická složitost algoritmu je:

O(V+E)
  • V – počet uzlů
  • E – počet hran

Příklad

Mějme následující graf. Počátečním uzlem je START, sousední uzly budou do fronty přidávány v abecedním pořadí.

ukázka průchodu grafem pomocí algoritmu BFS

Algoritmus bude postupovat v následujících krocích:

Krok Fronta (první prvek: vlevo) Navštívené uzly
1 START
2 E, G START
3 G, B, C, D START, E
4 B, C, D START, E, G
5 C, D START, E, G, B
6 D START, E, G, B, C
7 F START, E, G, B, C, D
8 START, E, G, B, C, D, F

Uzly byly navštíveny v tomto pořadí: START, E, G, B, C, DF

začátek průchodu

další krok

další krok

další krok

další krok