Ero BFS n ja DFS n välillä

BFS vs. DFS

Leveyden ensimmäinen haku (tunnetaan myös nimellä BFS) on hakumenetelmä, jota käytetään laajentamaan tietyn kuvaajan kaikki solmut. Se suorittaa tämän tehtävän etsimällä jokaisesta ratkaisusta näiden solmujen (tai niiden sekvenssien yhdistelmän) tutkimiseksi ja laajentamiseksi. Sellaisenaan BFS ei käytä heuristista algoritmia (tai algoritmia, joka etsii ratkaisua useiden skenaarioiden kautta). Kun kaikki solmut on saatu, ne lisätään jonoon, joka tunnetaan nimellä Ensimmäinen sisään, ensimmäinen ulos -jono. Ne solmut, joita ei ole tutkittu, 'varastoidaan' säiliöön, jonka merkintä on 'avoin'; tutkittuaan ne kuljetetaan konttiin, jonka merkintä on "suljettu".

Ensimmäinen syvyyshaku (tunnetaan myös nimellä DFS) on hakumenetelmä, joka poistuu syvemmälle haun lapsisolmuun, kunnes tavoite saavutetaan (tai kunnes on solmu, jolla ei ole muita permutaatioita tai 'lapsia'). Kun yksi tavoite on löydetty, haku taaksepäin edelliseen solmuun, joka on mennyt ratkaisun kanssa, toistaa prosessia, kunnes kaikki solmut on suoritettu onnistuneesti. Sellaisina solmut jätetään edelleen syrjään jatkotutkimusta varten - tätä kutsutaan ei-rekursiiviseksi toteuttamiseksi.

BFS: n ominaisuuksia ovat tilan ja ajan monimutkaisuus, täydellisyys, todistus täydellisyydestä ja optimaalisuus. Avaruuden monimutkaisuus tarkoittaa solmujen määrän osuutta haun syvimmällä tasolla. Ajan monimutkaisuus tarkoittaa todellista 'ajan' määrää, jota käytetään harkitsemaan jokaista polkua, jonka solmu kulkee haussa. Täydellisyys on pääasiassa hakua, joka löytää ratkaisun graafista riippumatta siitä, millainen kuvaaja se on. Todistus täydellisyydestä on matalin taso, jolla tavoite löytyy solmusta tietyllä syvyydellä. Lopuksi, optimaalisuus viittaa BFS: ään, jota ei ole painotettu - se on käyrä, jota käytetään yksikkökohtaisessa kustannuksessa.

DFS on luonnollisin tulos, joka käyttää kaarevaa puuta - joka on puu, joka koostuu kaikista kärkeistä ja joistakin suunnistamattoman kuvaajan reunoista. Tässä muodostelmassa kuvaaja on jaettu kolmeen luokkaan: Eteenreunat osoittavat solmusta lapsisolmuun; takareunat osoittaen solmusta aikaisempaan solmuun; ja poikkireunat, jotka eivät tee yhtä näistä.

Yhteenveto:

1. BFS etsii jokaista ratkaisua kuvaajassa laajentaakseen solmujaan; DFS kaivaa syvälle lapsisolmulle, kunnes tavoite saavutetaan.

2. BFS: n ominaisuuksia ovat tilan ja ajan monimutkaisuus, täydellisyys, todistus täydellisyydestä ja optimaalisuus; DFS: n luonnollisin tulos on ulottuva puu, jolla on kolme luokkaa: etureunat, takareunat ja poikkireunat.