Cviceni Navrh Algoritmu I

Breadth First Search (BFS)

      Prohledavani do sirky, anglicky Breadth First Search (BFS), slouzi k prohledani orientovaneho ci neorientovaneho grafu pocinaje danym vrcholem a k pripadnemu urceni vzdalenosti vsech vrcholu od daneho. Urcena vzdalenost je vsak udana pouze v poctu hran, predpoklada se tedy, ze vsechny hrany maji stejnou vahu, a to 1. Pokud bychom meli ohodnoceny graf a chteli urcit delku nejkratsi cesty z daneho vrcholu ke vsem ostatnim, museli bychom pouzit Dijkstruv algoritmus.

Algoritmus BFS:
Vstup: graf G a pocatecni uzel s Vystup: pole dist obsahuje pro kazdy uzel u jeho vzdalenost od vychoziho uzlu s pole pred obsahuje pro kazdy uzel u jeho bezprostredniho predchudce na ceste z s do u

Poznamka: pokud bychom zamenili frontu za zasobnik, dostali bychom prohledavani do hloubky.

Poznamka: pokud bychom pracovali s ohodnocenym grafem a chteli urcit nejkratsi cesty z daneho uzlu, muzeme to udelat tak, ze si na zacatku zjistime pocty predchudcu u kazdeho vrcholu a budeme tento pocet zmensovat u kazdeho souseda aktivniho uzlu. Vzdalenost budeme upravovat stejne jako u Dijkstrova algoritmu a do fronty zaradime uzel vzdy az tehdy, kdyz pocet predchudcu klesne na nulu.