BFS vs DFS
První vyhledávání podle šířky (známé také jako BFS) je vyhledávací metoda používaná k rozšíření všech uzlů určitého grafu. Tento úkol provádí hledáním každého jednotlivého řešení, aby prozkoumal a rozšířil tyto uzly (nebo kombinaci sekvencí v nich). BFS jako takový nepoužívá heuristický algoritmus (nebo algoritmus, který hledá řešení prostřednictvím více scénářů). Po získání všech uzlů jsou přidány do fronty známé jako fronta First In, First Out. Uzly, které nebyly prozkoumány, jsou „uloženy“ v kontejneru označeném „otevřeno“; po prozkoumání jsou přepravovány do kontejneru označeného „uzavřeno“.
Hloubkové první vyhledávání (také známé jako DFS) je vyhledávací metoda, která se hlouběji vrací 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ání vrátí do předchozího uzlu, který přešel s řešením, a tento proces se opakuje, dokud všechny uzly nebyly úspěšně prohledány. Uzly jsou proto nadále vyhrazeny pro další průzkum - to se nazývá nerekurzivní implementace.
Mezi vlastnosti BFS patří prostorová a časová složitost, úplnost, důkaz úplnosti a optimálnost. Složitost prostoru označuje podíl počtu uzlů na nejhlubší úrovni vyhledávání. Časová složitost se vztahuje na skutečné množství „času“ použitého pro zvážení každé cesty, kterou bude uzel hledat. Úplnost je v podstatě vyhledávání, které najde řešení v grafu bez ohledu na to, jaký je graf. Důkazem úplnosti je nejmenší úroveň, na které je cíl nalezen v uzlu v určité hloubce. Konečně optimalita odkazuje na BFS, který není vážený - to je graf používaný pro náklady na jednotku kroku.
DFS je nejpřirozenější výstup využívající překlenovací strom - strom tvořený všemi vrcholy a některými hranami v nepřímém grafu. V této formaci je graf rozdělen do tří tříd: Přední hrany, směřující od uzlu k podřízenému uzlu; zadní hrany, směřující z uzlu na předchozí uzel; a příčné hrany, které žádný z nich nedělají.
Souhrn:
1. BFS prohledává každé jednotlivé řešení v grafu, aby rozšířil své uzly; DFS se posune hluboko v podřízeném 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ším výstupem pro DFS je překlenovací strom se třemi třídami: přední hrany, zadní hrany a příčné hrany.