skillnad mellan BFS och DFS

den stora skillnaden mellan BFS och DFS är att BFS fortsätter nivå för nivå medan DFS följer först en sökväg från början till slutnoden (vertex), sedan en annan sökväg från början till slut, och så vidare tills alla noder besöks. Dessutom använder BFS kön för att lagra noderna medan DFS använder stacken för traversering av noderna.

BFS och DFS är de traverseringsmetoder som används för att söka i en graf. Graftraversal är processen att besöka alla noder i diagrammet. En graf är en grupp av hörn ’V’ och kanter ’E’ ansluter till hörn.

innehåll: BFS Vs DFS

  1. Comparison Chart
  2. Definition
  3. Key Differences
  4. Conclusion

Comparison Chart

Basis for comparison BFS DFS
Basic Vertex-based algorithm Edge-based algorithm
Data structure used to store the nodes Queue Stack
Memory consumption Inefficient Efficient
Structure av det konstruerade trädet bred och kort smal och lång
Traversing mode äldsta obesökta hörn utforskas först. hörn längs kanten utforskas i början.
optimalitet Optimal för att hitta det kortaste avståndet, inte i kostnad. inte optimal
ansökan undersöker tvådelad graf, ansluten komponent och kortaste vägen närvarande i en graf. undersöker tvåkantig ansluten graf, starkt ansluten graf, acyklisk graf och topologisk ordning.

Definition av BFS

bredd första sökning (BFS) är den genomgående metod som används i grafer. Den använder en kö för att lagra de besökta hörnen. I denna metod är betoningen på grafens hörn, en toppunkt väljs först då besöks den och markeras. Topparna intill det besökta toppunktet besöks sedan och lagras i kön i följd.

På samma sätt behandlas de lagrade vertikalerna en efter en, och deras intilliggande hörn besöks. En nod utforskas fullständigt innan du besöker någon annan nod i grafen, med andra ord, den korsar grundaste outforskade noder först.

exempel

Vi har ett diagram vars hörn är A, B, C, D, E, F, G. Med tanke på A som utgångspunkt. Stegen som är involverade i processen är:

  • Vertex a expanderas och lagras i kön.
  • hörn B, D och g efterföljare av A, expanderas och lagras i kön under tiden Vertex a avlägsnas.
  • nu tas B i den främre änden av kön bort tillsammans med lagring av dess efterföljande hörn E och F.
  • Vertex D är i den främre änden av kön tas bort, och dess anslutna nod F är redan besökt.
  • Vertex G tas bort från kön, och den har efterföljare E som redan är besökt.
  • nu tas E och F bort från kön, och dess efterträdare vertex C korsas och lagras i kön.
  • äntligen tas C också bort och kön är tom vilket innebär att vi är klara.
  • den genererade utgången är-A, B, D, G, E, F, C.

BFS-exempelapplikationer

BFS kan vara användbara för att hitta om grafen har anslutna komponenter eller inte. Och det kan också användas för att upptäcka en bipartitgraf.

en graf är tvådelad när grafpunkterna delas upp i två separata uppsättningar; inga två intilliggande hörn skulle ligga i samma uppsättning. En annan metod för att kontrollera en bipartitgraf är att kontrollera förekomsten av en udda cykel i diagrammet. En tvådelad graf får inte innehålla udda cykel.

BFS är också bättre på att hitta den kortaste vägen i diagrammet kan ses som ett nätverk.

Definition av DFS

djup första sökning (DFS) traversing metod använder stacken för att lagra de besökta hörn. DFS är den kantbaserade metoden och fungerar på rekursivt sätt där hörn utforskas längs en bana (kant). Utforskningen av en nod avbryts så snart en annan outforskad nod hittas och de djupaste outforskade noderna korsas framför allt. DFS korsar / besöker varje toppunkt exakt en gång och varje kant inspekteras exakt två gånger.

exempel

liknande BFS kan ta samma graf för att utföra DFS-operationer, och de inblandade stegen är:

  • med tanke på A som startpunkt som utforskas och lagras i stapeln.
  • b efterföljare vertex av A lagras i stapeln.
  • Vertex B har två efterträdare E och F, bland dem alfabetiskt e utforskas först och lagras i stapeln.
  • efterträdaren av vertex E, dvs G lagras i stapeln.
  • Vertex G har två anslutna hörn, och båda är redan besökta, så G poppas ut från stacken.
  • på samma sätt, E S också bort.
  • nu är vertex B högst upp i stapeln, dess en annan nod(vertex) F utforskas och lagras i stapeln.
  • Vertex F har två efterföljare C och D, mellan dem c korsas först och lagras i stapeln.
  • Vertex C har bara en föregångare som redan är besökt, så den tas bort från stacken.
  • nu vertex d ansluten till F besöks och lagras i stapeln.
  • eftersom vertex D inte har några obesökta noder tas därför D bort.
  • på samma sätt är F, B och A också poppade.
  • den genererade utgången är-A, B, E, G, F, C, D.

ansökan

tillämpningarna av DFS inkluderar inspektion av två kantanslutna grafer, starkt anslutna grafer, acykliska grafer och topologisk ordning.

en graf kallas två kanter anslutna om och endast om den förblir ansluten även om en av dess kanter tas bort. Denna applikation är mycket användbar, i datornätverk där felet på en länk i nätverket inte påverkar det återstående nätverket, och det skulle fortfarande vara anslutet.

starkt ansluten graf är ett diagram där det måste finnas en väg mellan ordnade par hörn. DFS används i den riktade grafen för att söka sökvägen mellan varje ordnat par hörn. DFS kan enkelt lösa anslutningsproblem.

viktiga skillnader mellan BFS och DFS

  1. BFS är vertexbaserad algoritm medan DFS är en kantbaserad algoritm.
  2. Ködatastruktur används i BFS. Å andra sidan använder DFS stack eller rekursion.
  3. minnesutrymme används effektivt i DFS medan rymdutnyttjande i BFS inte är effektivt.
  4. BFS är optimal algoritm medan DFS inte är optimal.
  5. DFS konstruerar smala och långa träd. Som mot, BFS konstruerar brett och kort träd.

slutsats

BFS och DFS, båda grafsökningsteknikerna har liknande körtid men olika rymdförbrukning, DFS tar linjärt utrymme eftersom vi måste komma ihåg en enda väg med outforskade noder, medan BFS håller varje nod i minnet.

DFS ger djupare lösningar och är inte optimal, men det fungerar bra när lösningen är tät medan BFS är optimal som söker det optimala målet först.

Lämna ett svar

Din e-postadress kommer inte publiceras.