Skillnad mellan BFS och DFS

BFS vs DFS

Breddens första sökning (även känd som BFS) är en sökmetod som används för att bredda alla noder i en viss graf. Det åstadkommer denna uppgift genom att söka varje enskild lösning för att undersöka och expandera dessa noder (eller en kombination av sekvenser däri). Som sådan använder en BFS inte en heuristisk algoritm (eller en algoritm som söker efter en lösning genom flera scenarier). När alla noder är uppnådda, läggs de till i en kö som är känd som första in, första utkön. De noder som inte har undersökts lagras i en behållare som är märkt "öppen"; när de utforskas transporteras de till en behållare som är märkt "stängd".

Djup Första Sökningen (även känd som DFS) är en sökmetod som gräver djupare in i en barnnod för en sökning tills ett mål uppnås (eller tills det finns en nod utan några andra permutationer eller "barn"). När ett mål har hittats, springer sökningen tillbaka till en tidigare nod som har gått med en lösning och upprepar processen tills alla noder har sökts framgångsrikt. Som sådan fortsätter knutpunkterna att avsättas för vidare prospektering - det kallas icke-rekursiv implementering.

Funktionerna i BFS är utrymme och tidskomplexitet, fullständighet, bevis på fullständighet och optimitet. Rymkomplexitet refererar till andelen av antalet noder på den djupaste nivån av en sökning. Tidskomplexitet avser den faktiska mängden "tid" som används för att överväga varje väg som en nod ska ta i en sökning. Fullständighet är i huvudsak en sökning som hittar en lösning i ett graf oavsett vilken typ av graf det är. Beviset för fullständigheten är den grundaste nivån vid vilken ett mål hittas i en nod på ett bestämt djup. Slutligen refererar optimitet till en BFS som inte vägs - det är ett diagram som används för enstaka kostnad.

En DFS är den mest naturliga produktionen med ett spannande träd - vilket är ett träd som består av alla hörn och några kanter i en oriktad graf. I denna formation är grafen indelad i tre klasser: Framåtkanter, pekar från en nod till en barnnod; bakkanter, pekar från en nod till en tidigare nod; och kors kanter, som inte gör någon av dessa.

Sammanfattning:

1. En BFS söker varje enskild lösning i ett diagram för att expandera sina noder; en DFS gräver djupt inuti en barnnod tills ett mål uppnås.

2. Funktionerna hos en BFS är utrymme och tidskomplexitet, fullständighet, bevis på fullständighet och optimitet; Den mest naturliga produktionen för en DFS är ett spannande träd med tre klasser: framkanter, bakkanter och tvärkanter.