Breadth First Search (BFS) Algoritm med EXEMPEL
โก Smart sammanfattning
Breadth First Search (BFS) รคr en algoritm som gรฅr igenom en graf nivรฅ fรถr nivรฅ och besรถker alla grannar till en nod innan den gรฅr djupare. Den anvรคnder en FIFO-kรถ och hittar den kortaste vรคgen i oviktade grafer utan oรคndliga loopar.
Vad รคr BFS Algorithm (Bredth-First Search)?
Bredd-fรถrst-sรถkning (BFS) รคr en algoritm som anvรคnds fรถr att rita data grafiskt eller sรถka i ett trรคd eller korsa strukturer. Den fullstรคndiga formen av BFS รคr bredd-fรถrst-sรถkning.
Algoritmen besรถker och markerar effektivt alla nyckelnoder i en graf pรฅ ett exakt breddmรคssigt sรคtt. Denna algoritm vรคljer en enda nod (initialpunkt eller kรคllpunkt) i en graf och besรถker sedan alla noder intill den valda noden. Kom ihรฅg att BFS kommer รฅt dessa noder en efter en.
Nรคr algoritmen besรถker och markerar startnoden, flyttar den sig mot de nรคrmaste obesรถkta noderna och analyserar dem. Nรคr de har besรถkts รคr alla noder markerade. Dessa iterationer fortsรคtter tills alla noder i grafen har besรถkts och markerats.
Vad รคr Graph-traversals?
En graftraversering รคr en vanlig metod fรถr att lokalisera vertexpositionen i grafen. Det รคr en avancerad sรถkalgoritm som kan analysera grafen med hastighet och precision tillsammans med markering av sekvensen fรถr de besรถkta hรถrnen. Denna process gรถr att du snabbt kan besรถka varje nod i en graf utan att vara lรฅst i en oรคndlig slinga.
Arkitekturen fรถr BFS-algoritmen
- Pรฅ de olika datanivรฅerna kan du markera vilken nod som helst som start- eller initialnod fรถr att bรถrja passera. BFS:en besรถker noden, markerar den som besรถkt och placerar den i kรถn.
- Nu kommer BFS att besรถka de nรคrmaste och obesรถkta noderna och markera dem. Dessa vรคrden lรคggs ocksรฅ till i kรถn. Kรถn fungerar pรฅ FIFO-modell.
- Pรฅ liknande sรคtt analyseras, markeras och lรคggs de รฅterstรฅende nรคrmaste och obesรถkta noderna i grafen till i kรถn. Dessa objekt tas bort frรฅn kรถn allt eftersom de tas emot och skrivs ut som resultat.
Varfรถr behรถver vi BFS Algorithm?
Det finns mรฅnga anledningar att anvรคnda BFS-algoritmen fรถr att sรถka i din datauppsรคttning. Nรฅgra av de viktigaste aspekterna som gรถr den hรคr algoritmen till ditt fรถrstahandsval รคr:
- BFS รคr anvรคndbart fรถr att analysera noderna i en graf och konstruera den kortaste vรคgen att korsa genom dessa.
- BFS kan gรฅ igenom en graf i det minsta antalet iterationer.
- Arkitekturen fรถr BFS-algoritmen รคr enkel och robust.
- Resultatet av BFS-algoritmen hรฅller en hรถg nivรฅ av noggrannhet i jรคmfรถrelse med andra algoritmer.
- BFS-iterationer รคr sรถmlรถsa och det finns ingen mรถjlighet att den hรคr algoritmen fastnar i ett problem med oรคndlig loop.
Hur fungerar BFS-algoritmen?
Genomgรฅng av grafer krรคver att algoritmen besรถker, kontrollerar och/eller uppdaterar varje enskild obesรถkt nod i en trรคdliknande struktur. Grafรถvergรฅngar kategoriseras efter den ordning i vilken de besรถker noderna pรฅ grafen.
BFS-algoritm startar operationen frรฅn den fรถrsta eller startnoden i en graf och gรฅr igenom den ordentligt. Nรคr den vรคl har passerat den initiala noden, besรถks och markeras nรคsta icke-traverserade vertex i grafen.
Dรคrfรถr kan man sรคga att alla noder intill det aktuella hรถrnet besรถks och passeras i den fรถrsta iterationen. En enkel kรถmetodik anvรคnds fรถr att implementera en BFS-algoritm, och den bestรฅr av fรถljande steg:
Steg 1)
Varje vertex eller nod i grafen รคr kรคnd. Du kan till exempel markera noden som V.
Steg 2)
Om vertex V inte nรฅs, lรคgg dรฅ till vertex V i BFS-kรถn.
Steg 3)
Starta BFS-sรถkningen och markera punkt V som besรถkt nรคr den รคr klar.
Steg 4)
BFS-kรถn รคr fortfarande inte tom, ta bort vertex V pรฅ grafen frรฅn kรถn.
Steg 5)
Hรคmta alla รฅterstรฅende noder pรฅ grafen som grรคnsar till noden V.
Steg 6)
Fรถr varje angrรคnsande noddel, lรฅt oss sรคga V1, om den inte รคr besรถkt รคn, lรคgg dรฅ till V1 i BFS-kรถn.
Steg 7)
BFS kommer att besรถka V1, markera den som besรถkt och ta bort den frรฅn kรถn.
Exempel BFS-algoritm
Steg 1)
Du har en graf med sju tal frรฅn 0 till 6.
Steg 2)
0 eller noll har markerats som en rotnod.
Steg 3)
0 besรถks, markeras och infogas i kรถdatastrukturen.
Steg 4)
De รฅterstรฅende 0-intilliggande och obesรถkta noderna besรถks, markeras och infogas i kรถn.
Steg 5)
Traverserande iterationer upprepas tills alla noder har besรถkts.
Regler fรถr BFS Algorithm
Hรคr รคr viktiga regler fรถr att anvรคnda BFS-algoritmen:
- En kรถ (FIFO โ Fรถrst in, fรถrst ut) datastruktur anvรคnds av BFS.
- Du markerar valfri nod i grafen som rot och bรถrjar bearbeta data frรฅn den.
- BFS passerar alla noder i grafen och fortsรคtter att slรคppaping dem som fรคrdiga.
- BFS besรถker en intilliggande obesรถkt nod, markerar den som klar och infogar den i en kรถ.
- Den tar bort den fรถregรฅende vertexen frรฅn kรถn om ingen intilliggande vertex hittas.
- BFS-algoritmen itererar tills alla noder i grafen har passerats och markerats som slutfรถrda.
- Det finns inga slingor som orsakas av BFS under korsning av data frรฅn nรฅgon nod.
Tillรคmpningar av BFS Algorithm
Lรฅt oss ta en titt pรฅ nรฅgra av de verkliga applikationerna dรคr en BFS-algoritmimplementering kan vara mycket effektiv.
- Oviktade grafer: BFS-algoritmen kan enkelt skapa den kortaste vรคgen och ett minsta mรถjliga omspรคnnande trรคd fรถr att besรถka alla grafens noder pรฅ kortast mรถjliga tid med hรถg noggrannhet.
- P2P-nรคtverk: BFS kan implementeras fรถr att lokalisera alla nรคrmaste eller angrรคnsande noder i ett peer-to-peer-nรคtverk. Detta kommer att hitta den nรถdvรคndiga informationen snabbare.
- Webbsรถkare: Sรถkmotorer eller sรถkrobotar kan enkelt bygga flera nivรฅer av index genom att anvรคnda BFS. BFS-implementering startar frรฅn kรคllan, som รคr webbsidan, och sedan besรถker den alla lรคnkar frรฅn den kรคllan.
- Navigationssystem: BFS kan hjรคlpa till att hitta alla nรคrliggande platser frรฅn huvud- eller kรคllplatsen.
- Nรคtverkssรคndning: Ett utsรคnt paket styrs av BFS-algoritmen fรถr att hitta och nรฅ alla noder som det har adressen till.














