Forskel mellem BFS og DFS Forskel mellem

Anonim

BFS vs DFS

Bredde Første søgning (også kendt som BFS) er en søgemetode, der bruges til at udvide alle noder af en særlig graf. Det udfører denne opgave ved at søge hver eneste løsning for at undersøge og udvide disse noder (eller en kombination af sekvenser deri). Som sådan bruger en BFS ikke en heuristisk algoritme (eller en algoritme, der søger efter en løsning gennem flere scenarier). Når alle knudepunkter er opnået, tilføjes de til en kø kendt som første i, første udkøen. De noder, der ikke er blevet udforsket, er 'opbevaret' i en beholder mærket 'åben'; Når de er udforsket, transporteres de til en beholder mærket 'lukket'.

Dybde Første søgning (også kendt som DFS) er en søgemetode, der går dybere ind i en barneknude i en søgning, indtil et mål er nået (eller indtil der er en node uden andre permutationer eller ' børn "). Efter at der er fundet et mål, søger søgningen tilbage til en tidligere node, der er gået med en løsning, og gentager processen, indtil alle nøglerne er blevet søgt. Som sådan fortsætter knuderne til side for yderligere efterforskning - det kaldes ikke-rekursiv implementering.

Funktionerne i BFS er rum- og tidskompleksitet, fuldstændighed, bevis for fuldstændighed og optimitet. Rumkompleksitet refererer til andelen af ​​antallet af noder på det dybeste niveau af en søgning. Tidskompleksitet refererer til den faktiske mængde "tid", der bruges til at overveje hver vej, en knude vil tage i en søgning. Fuldstændighed er i det væsentlige en søgning, der finder en løsning i en graf uanset hvilken slags graf det er. Beviset om fuldstændigheden er det mindste niveau, hvor et mål findes i en knude på en bestemt dybde. Endelig refererer optimitet til en BFS, der ikke vægtes - det er en graf, der bruges til enhedspris.

En DFS er den mest naturlige produktion ved hjælp af et spændende træ - hvilket er et træ bestående af alle hjørner og nogle kanter i en ikke-rettet graf. I denne formation er grafen opdelt i tre klasser: Fremadkanter, peger fra en node til et barneknudepunkt; bagkanter, peger fra en knude til et tidligere knudepunkt; og kryds kanter, som ikke gør en af ​​disse.

Sammendrag:

1. En BFS søger hver enkelt løsning i en graf for at udvide dens noder; en DFS græsser dybt inde i en barneknude, indtil et mål nås.

2. Funktionerne i en BFS er rum- og tidskompleksitet, fuldstændighed, bevis for fuldstændighed og optimitet; Den mest naturlige udgang til en DFS er et spændende træ med tre klasser: fremkanter, bagkanter og tværkanter.