BFS ja DFS

Anonim

BFS vs. DFS

Leveys Ensimmäinen haku (tunnetaan myös nimellä BFS) on hakumenetelmä, jota käytetään laajentamaan tietyn kaavion kaikki solmut. Se suorittaa tämän tehtävän etsimällä jokaisen ratkaisun näiden solmujen (tai sekvenssien yhdistelmän) tutkimiseksi ja laajentamiseksi. Sellaisena 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ä First In, First Out queue. Ne solmut, joita ei ole tutkittu, "varastoidaan" säiliöön, joka on merkitty "auki"; kun he tutkivat, että ne kuljetetaan "suljettuun" konttiin.

Syvyys Ensimmäinen haku (tunnetaan myös nimellä DFS) on hakumenetelmä, joka syöksyy syvemmälle etsinnän lapsen solmuun, kunnes tavoite saavutetaan (tai kunnes solmu on ilman muita permutaatioita tai "lapsia"). Kun yksi tavoite on löydetty, haku palauttaa aiemman solmun, joka on mennyt ratkaisuun, toistamalla prosessi, kunnes kaikki solmut on etsitty. Sellaisina, solmuja jätetään edelleen sivuun lisätutkimukselle - tätä kutsutaan ei-rekursiiviseksi toteutukseksi.

BFS: n ominaisuudet ovat tilan ja ajan monimutkaisuus, täydellisyys, täydellisyyden todistus ja optimaalisuus. Avaruuden monimutkaisuus tarkoittaa solmujen lukumäärän osuutta etsinnän syvimmällä tasolla. Aika-monimutkaisuus viittaa varsinaiseen "aika" määrään, jota käytetään tarkastelemaan jokaista reittiä, johon solmu hakee. Täydellisyys on lähinnä haku, joka löytää ratkaisun kaaviosta riippumatta siitä, minkälainen kuvaaja se on. Täydellisyyden todiste on matalin taso, jolla tavoite löytyy solmusta tietyllä syvyydellä. Lopuksi, optimaalisuus viittaa BFS: hen, jota ei painoteta - eli graafi, jota käytetään yksikkövaiheen kustannuksina.

DFS on luonnollisin lähdö, joka käyttää puomiä - joka on puu, joka koostuu kaikista huippupisteistä ja joidenkin reunoista ei-suunnatusta kaaviosta. Tässä muodostelmassa kaavio on jaettu kolmeen luokkaan: etureunat, jotka osoittavat solmusta lapsen solmuun; takareunat osoittavat solmusta aikaisemmalle solmulle; ja poikkileikkaukset, jotka eivät tee kumpaakaan näistä.

Yhteenveto:

1. BFS hakee jokaisen yksittäisen ratkaisun kaaviossa laajentaakseen solmunsa; DFS-syöksyy syvälle lapsen solmussa, kunnes tavoite saavutetaan.

2. BFS: n ominaisuudet ovat tilan ja ajan monimutkaisuus, täydellisyys, täydellisyyden todistus ja optimaalisuus; DFS: n luonnollisin lähdö on kolmeen luokkaan kuuluva puu: etureunat, takareunat ja ristikkäiset reunat.