BFS a DFS

Anonim

BFS vs DFS

První vyhledávání šablon (také známé jako BFS) je vyhledávací metoda používaná k rozšíření všech uzlů konkrétního grafu. Dosahuje tohoto úkolu vyhledáním každého jednotlivého řešení za účelem zkoumání a rozšíření těchto uzlů (nebo kombinace sekvencí v nich). Jako takový BFS nepoužívá heuristický algoritmus (nebo algoritmus, který hledá řešení pomocí několika scénářů). Po získání všech uzlů jsou přidány do fronty známého jako fronta First In, First Out. Tyto uzly, které nebyly prozkoumány, jsou uloženy v kontejneru označeném jako "otevřený"; jakmile jsou prozkoumány, jsou přepravovány do kontejneru označeného "uzavřeno".

Hloubka prvního vyhledávání (také známá jako DFS) je metoda vyhledávání, která se hlouběji prohlubuje do podřízeného uzlu vyhledávání, dokud není dosaženo cíle (nebo dokud není uzel bez dalších permutací nebo "dětí"). Po nalezení jednoho cíle se hledá zpět do předcházejícího uzlu, který prošel řešením, opakováním procesu, dokud nebudou všechny uzly úspěšně prohledány. Jako takové jsou uzly i nadále vyhrazeny pro další zkoumání - nazývá se to nerekurzivní implementace.

Funkce BFS jsou prostorová a časová složitost, úplnost, důkaz úplnosti a optimality. Složitost vesmíru se vztahuje k podílu počtu uzlů na nejhlubší úrovni vyhledávání. Časová složitost se vztahuje na skutečné množství "času", které se používá pro posouzení každé cesty, kterou uzel provede při hledání. Úplnost je v podstatě hledání, které nalezne řešení v grafu bez ohledu na to, jaký graf je. Dokladem o úplnosti je nejjemnější úroveň, ve které je cíl nalezen v uzlu v určité hloubce. Nakonec optimalita odkazuje na BFS, která není vážená - to je graf použitý pro jednotkové náklady.

DFS je nejpřirozenější výstup pomocí stromu spanning - což je strom sestávající ze všech vrcholů a některých hran v nezměněném grafu. V tomto formátu je graf rozdělen do tří tříd: Přední hrany, směřující od uzlu k podřízenému uzlu; zadní hrany, ukazující od uzlu k dřívějšímu uzlu; a příčné hrany, které neudělají ani jeden z nich.

Souhrn:

1. BFS hledá každé řešení v grafu a rozšiřuje své uzly; DFS se hnízdí hluboko uvnitř dětského uzlu, dokud není dosaženo cíle.

2. Funkce BFS jsou prostorová a časová složitost, úplnost, důkaz úplnosti a optimality; nejpřirozenější výstup pro DFS je strom se třemi třídami: přední hrany, zadní hrany a příčné hrany.