BFS i DFS

Anonim

BFS vs DFS

Prvo traženje (također poznato kao BFS) je metoda pretraživanja koja se koristi za proširivanje svih čvorova određenog grafikona. Taj zadatak postiže pretraživanjem svako pojedinačno rješenje kako bi se ispitali i proširili ti čvorovi (ili kombinacija sekvenci u njemu). Kao takav, BFS ne koristi heuristički algoritam (ili algoritam koji traži rješenje kroz više scenarija). Nakon što su svi čvorovi dobiveni, oni se dodaju u red čekanja poznat kao Prvi u, First Out red. Ti čvorovi koji nisu istraženi "spremljeni" u spremniku s oznakom "otvoreni"; jednom su istraživali da se prevoze u kontejner označen "zatvorenim".

Dubina prve pretrage (također poznata kao DFS) je metoda pretraživanja koja se dublje ulazi u dječji čvor traženja dok se ne postigne cilj (ili dok ne postoji čvor bez ikakvih drugih permutacija ili "djeca"). Nakon što se pronađe jedan cilj, pretraži povratak na prethodni čvor koji je otišao s rješenjem, ponavljajući postupak sve dok su svi čvorovi uspješno pretraženi. Kao takav, čvorovi se i dalje stavljaju na stranu za daljnje istraživanje - to se naziva ne-rekurzivna implementacija.

Značajke BFS-a su prostor i vrijeme složenost, cjelovitost, dokaz potpunosti i optimalnosti. Složenost prostora odnosi se na udio broja čvorova na najdubljoj razini pretraživanja. Složenost vremena odnosi se na stvarnu količinu vremena koja se upotrebljava za razmatranje svakog puta čvora koju će tražiti. Potpunost je, u suštini, pretraga koja pronalazi rješenje u grafu bez obzira na to kakav je to grafikon. Dokaz cjelovitosti je najgore razine na kojoj se cilj nalazi u čvoru na određenoj dubini. Konačno, optimalnost se odnosi na BFS koji nije ponderiran - to je grafikon koji se koristi za jedinični trošak.

DFS je najprostornija izlazna stabla koja obuhvaća stablo - što je stablo sastavljeno od svih vrhova i nekih rubova u neupravljenom grafikonu. U ovoj formaciji grafikon je podijeljen u tri klase: rubovi prema naprijed, pokazujući od čvora do djetetovog čvora; stražnji rubovi, pokazujući od čvora do ranijih čvorova; i križnih rubova, koji ne rade ni jedan od tih.

Sažetak:

1. BFS pretražuje svako pojedinačno rješenje na grafikonu kako bi proširio svoje čvorove; DFS buši duboko u dječjoj čvoru dok se ne postigne cilj.

2. Značajke BFS-a su prostor i vrijeme složenost, cjelovitost, dokaz cjelovitosti i optimalnosti; najprostornija izlazna jedinica za DFS je rasprostranjeno stablo s tri klase: prednji rubovi, rubovi i križevi.