Mitä on BFS-algoritmi (leveys-ensimmäinen haku)?
Leveys-ensimmäinen haku (BFS) on algoritmi, jota käytetään tietojen piirtämiseen tai puiden tai kulkevien rakenteiden etsimiseen. BFS: n koko muoto on leveyshaku.
Algoritmi vierailee tehokkaasti ja merkitsee kaikki avainkohdat kaaviossa tarkasti leveydeltään. Tämä algoritmi valitsee kaaviosta yhden solmun (alku- tai lähdekohdan) ja vierailee sitten kaikki valitun solmun vieressä olevat solmut. Muista, että BFS käyttää näitä solmuja yksitellen.
Kun algoritmi vierailee ja merkitsee aloitussolmun, se siirtyy kohti lähimpiä avaamattomia solmuja ja analysoi ne. Vierailun jälkeen kaikki solmut on merkitty. Nämä iteraatiot jatkuvat, kunnes kaavion kaikki solmut on vierailtu ja merkitty onnistuneesti.
Tässä algoritmin opetusohjelmassa opit:
- Mikä on BFS-algoritmi (Breadth-First Search)?
- Mikä on kaavion läpikäynti?
- BFS-algoritmin arkkitehtuuri
- Miksi tarvitsemme BFS-algoritmia?
- Kuinka BFS-algoritmi toimii?
- Esimerkki BFS-algoritmista
- BFS-algoritmin säännöt
- BFS-algoritmin sovellukset
Mikä on kaavion kulku?
Kaavion läpikäynti on yleisesti käytetty menetelmä kärkipisteen paikantamiseksi kaaviossa. Se on edistynyt hakualgoritmi, joka pystyy analysoimaan kuvaajan nopeudella ja tarkkuudella sekä merkitsemään vierailtujen pisteiden järjestyksen. Tämän prosessin avulla voit käydä nopeasti kaavion jokaisessa solmussa lukitsematta sitä äärettömään silmukkaan.
BFS-algoritmin arkkitehtuuri
- Tietojen eri tasoilla voit merkitä minkä tahansa solmun aloitukseksi tai alkusolmu liikkumisen aloittamiseksi. BFS vierailee solmussa, merkitsee sen käydyksi ja sijoittaa sen jonoon.
- Nyt BFS vierailee lähimmissä ja vierailemattomissa solmuissa ja merkitsee ne. Nämä arvot lisätään myös jonoon. Jono toimii FIFO-mallin mukaan.
- Samalla tavalla kaaviossa jäljellä olevat lähimmät ja vierailemattomat solmut analysoidaan merkittynä ja lisätään jonoon. Nämä kohteet poistetaan jonosta vastaanottona ja tulostetaan tuloksena.
Miksi tarvitsemme BFS-algoritmia?
BFS-algoritmia on olemassa useita syitä käyttää tietojoukkosi hakemiseen. Joitakin tärkeimpiä näkökohtia, jotka tekevät tästä algoritmista ensimmäisen valinnan, ovat:
- BFS on hyödyllinen kaavion solmujen analysoimiseksi ja niiden läpi kulkevan lyhimmän polun rakentamiseksi.
- BFS voi kulkea kaavion läpi pienimmässä määrin iteraatioita.
- BFS-algoritmin arkkitehtuuri on yksinkertainen ja kestävä.
- BFS-algoritmin tuloksen tarkkuus on korkea verrattuna muihin algoritmeihin.
- BFS-iteraatiot ovat saumattomia, eikä ole mahdollista, että tämä algoritmi tarttuisi loputtomaan silmukkaongelmaan.
Kuinka BFS-algoritmi toimii?
Kaavion läpikäynti edellyttää, että algoritmi käy, tarkistaa ja / tai päivittää jokaisen yksittäisen solmun, joka ei ole käynyt puumaisessa rakenteessa. Kaavioiden kulku on luokiteltu järjestyksessä, jossa ne käyvät kaavion solmuissa.
BFS-algoritmi aloittaa operaation kaavion ensimmäisestä tai alkusolmusta ja kulkee sen läpi perusteellisesti. Kun se kulkee onnistuneesti alkuperäisen solmun läpi, käydään ja merkitään kaavion seuraava ylittämätön kärkipiste.
Voit siis sanoa, että kaikki nykyisen kärjen vieressä olevat solmut vierailevat ja kulkevat ensimmäisessä iteraatiossa. BFS-algoritmin toiminnan toteuttamiseen käytetään yksinkertaista jonomenetelmää, ja se koostuu seuraavista vaiheista:
Vaihe 1)
Jokainen kaavion kärki tai solmu tunnetaan. Voit esimerkiksi merkitä solmun V: ksi.
Vaihe 2)
Jos kärkipistettä V ei käytetä, lisää kärkipiste V BFS-jonoon.
Vaihe 3)
Aloita BFS-haku ja merkitse lopuksi kärki V vierailuksi.
Vaihe 4)
BFS-jono on edelleen ole tyhjä, poista siis kaavion kärki V jonosta.
Vaihe 5)
Hae kaikki jäljellä olevat pisteet kaaviossa, joka on kärkipisteen V vieressä
Vaihe 6)
Sanotaan jokaiselle vierekkäiselle kärjelle V1, jos siinä ei vielä käydä, lisää sitten V1 BFS-jonoon
Vaihe 7)
BFS käy versiossa V1, merkitsee sen vierailuksi ja poistaa sen jonosta.
Esimerkki BFS-algoritmista
Vaihe 1)
Sinulla on kaavio seitsemän numeroa välillä 0 – 6.
Vaihe 2)
0 tai nolla on merkitty juurisolmuksi.
Vaihe 3)
0 käydään, merkitään ja lisätään jonotietorakenteeseen.
Vaihe 4)
Jäljellä olevista 0 vierekkäisestä ja käymättömästä solmusta käydään, merkitään ja lisätään jonoon.
Vaihe 5)
Liikkuvia iteraatioita toistetaan, kunnes kaikki solmut käydään.
BFS-algoritmin säännöt
Tässä ovat tärkeitä sääntöjä BFS-algoritmin käyttämiselle:
- Jono (FIFO-First in First Out) -tietorakenne käyttää BFS.
- Merkitset minkä tahansa kaavion solmun juureksi ja aloitat tiedon kulkemisen siitä.
- BFS kulkee kaikki kaavion solmut ja pudottaa ne valmiiksi.
- BFS vierailee viereisen vierailemattoman solmun kohdalla, merkitsee sen valmiiksi ja lisää sen jonoon.
- Poistaa edellisen kärjen jonosta, jos vierekkäistä kärkeä ei löydy.
- BFS-algoritmi toistuu, kunnes kaikki kaavion pisteet kulkevat ja merkitään valmiiksi.
- BFS ei aiheuta silmukoita datan kulkiessa mistä tahansa solmusta.
BFS-algoritmin sovellukset
Otetaan tarkastele joitain tosielämän sovelluksia, joissa BFS-algoritmien toteutus voi olla erittäin tehokasta.
- Painottamattomat kaaviot: BFS-algoritmi voi helposti luoda lyhimmän polun ja pienimmän kattavan puun vierailla kaikissa kaavion kärjet mahdollisimman lyhyessä ajassa suurella tarkkuudella.
- P2P-verkot: BFS voidaan toteuttaa paikantamaan kaikki lähimmät tai vierekkäiset solmut vertaisverkossa. Tämä löytää tarvittavat tiedot nopeammin. .
- Verkkoindeksoijat: Hakukoneet tai indeksointirobotit voivat helposti rakentaa useita hakemistotasoja käyttämällä BFS: ää. BFS-toteutus alkaa lähteestä, joka on verkkosivu, ja sitten se vierailee kaikki kyseisen lähteen linkit. .
- Navigointijärjestelmät: BFS voi auttaa löytämään kaikki vierekkäiset sijainnit pää- tai lähdepaikasta.
- Network Broadcast BFS-algoritmi ohjaa lähetettyä pakettia etsimään ja saavuttamaan kaikki solmut, joille se on osoitettu.
Yhteenveto
- Kuvaajan läpikäynti on ainutlaatuinen prosessi, joka vaatii algoritmin vierailemaan, tarkistamaan ja / tai päivittämään kaikki yksittäiset vierailemattomat solmut puumainen rakenne. BFS-algoritmi toimii samalla periaatteella.
- Algoritmista on hyötyä kaavion solmujen analysoimiseksi ja niiden läpi kulkevan lyhimmän polun rakentamiseksi.
- Algoritmi kulkee kuvaajan pienimmässä määrin iteraatioita ja mahdollisimman lyhyessä ajassa.
- BFS valitsee kaaviosta yhden solmun (alku- tai lähdekohdan) ja vierailee sitten kaikki valitun solmun vieressä olevat solmut. BFS käyttää näitä solmuja yksitellen.
- BFS sijoittaa vieraat ja merkityt tiedot jonoon. Jono toimii ensin ensin ulos -periaatteella. Siksi kaavioon ensin sijoitettu elementti poistetaan ensin ja tulostetaan sen seurauksena.
- BFS-algoritmi ei voi koskaan jäädä loputtomaan silmukkaan.
- Suuren tarkkuuden ja vankan toteutuksen vuoksi BFS: ää käytetään useissa tosielämän ratkaisuissa, kuten P2P-verkoissa, Web-indeksoijissa, ja verkkolähetys.